RSS
 

Archive for the ‘Education’ Category

Functions, Objects & Arrays in Processing

24 May

As part of my exploration of the program Processing, I’ve been trying to work out the differences between Functions, Objects, and Arrays. In this first example, I made a car Function, where I can basically use one Function that describes the size of the rectangle to draw, and the relationship of the ‘wheels’ to the body of the car. I can make the color independent and here I call the car function three times, each with a different color. I can also offset the placement of the three cars, but since all three are tied to the same function, they move at the same speed, at the same distance from each other.

Rather than treating the car as a function, I can make a car object. This allows me to make as many cars as I like, all moving independently. I also decided to animate the yellow stripe on the road.

Adding an Array to the sketch, I can now cycle through a series of cars of each color that also decreases in size and opacity from the original, with the idea of adding a motion blur effect. I was too lazy to add the blur effect to the tires.

 

Back to Processing

17 May

About 9 months ago, maybe more, I put up a couple of examples of early attempts to grapple with the graphics/animation program called Processing. I was originally trying to learn the program because I’m interested in the possibilities of marrying visual and (eventually) musical elements and interactivity, and I was hoping to learn the program to use it for a large multimedia project that was premiered here in Riga in May. I quickly realized that I couldn’t apprehend this code-based language fast enough to use it for the project, and in a mad dash threw myself into learning Adobe After Effects instead. Yet the allure of Processing, with its potential for creating a sort of guided generative art is powerful to me indeed. (Go to openprocessing.org to view hundreds of examples where you can also view the code used to make them).

Anyway, I’ve now fought my way through about eight and a half chapters of Daniel Shiffman’s book Learning Processing. Today was the first time I created something completely from scratch that I thought was interesting. I was exploring the distance function, or dist(), that calculates the distance between two points, most often (I guess) used to calculate the distance between the X and Y location of your mouse. So here is a drawing program. Roll your mouse over the screen. If you press a key on your keyboard, it should clear the screen. Have fun. I thought it was pretty meditative. The best results seem to happen if you take your time and move your mouse in a slow, controlled way.

 

U.S. Embassy lecture tour on Rock music and American Culture

10 Apr

The American Embassy in Riga has invited me to lecture on the relationship between rock music and American culture as part of its annual Month of American Culture.

During these lectures, I will discuss selected songs as a window to understanding sociopolitical and other cultural trends in post WW II America. The songs include Hound Dog (Elvis Presley); Blowing in the Wind (Bob Dylan); Respect (Aretha Franklin); Break on Through (The Doors); Ohio (Crosby, Still, Nash & Young); Smells Like Teen Spirit (Nirvana) and Wake Up (Rage Against the Machine).

Time: April 12, 2010 from 2pm to 4pm
Location: Latvia Culture College
Street: Bruņinieku Street 5
City/Town: Riga

Time: April 13, 2010 from 3:30pm to 5:30pm
Location: Jazeps Medins Riga’s Music Secondary School
City/Town: Riga

Time: April 14, 2010 from 12pm to 2pm
Location: Daugavpils University
City/Town: Daugavpils

Time: April 14, 2010 from 3pm to 5pm
Location: Daugavpils Music Secondary School
City/Town: Daugavpils

Time: April 15, 2010 from 10:45am to 12:45pm
Location: Jekabpils State Gymnasium
City/Town: Jekabpils

 

Generative Music – Part I – Tiction

20 Sep


One of the reasons you’ve been seeing posts from me lately about the graphic arts software programs Inkscape and Processing is because I’m in the planning stages of a multi-movement, electroacoustic, multi-media work that I will write for a flute quartet based in Rīga (and possibly a second group in Göteborg). In any case, I chose as my inspirational starting point the subject of Emergence, the study of how complexity arises in various kinds of systems.


I’ve gotten a hold of various books on subtopics of the subject, such as Steven Johnson’s Mind Wide Open: Your Brain and the Neuroscience of Everyday Life, Scientific American’s collection of articles, Understanding Artificial Intelligence, James Surowiecki’s The Wisdom of Crowds, which I first heard about when listening to the podcast of one of my favorite radio programs, the one for WNYC’s Radiolab.

One of the movements I’m planning will involve projection of an animated, graphic ‘score’ that will be realized/performed by the audience in real-time, accompanied by electronics and the flute quartet. I’ve put myself on the learning curves of both Inkscape and Processing in order to prepare those scores. I’ll talk about my plans for that in another post.

Along the lines of artificial intelligence, I thought I’d try to survey what’s happening with computer assisted (or generated) composition currently, whether algorithmic or not. If I could define the kind of activity going on in this regard right now, I’d break it down into two categories, each with sub-categories: those that require knowing or learning code (such as LISP, see for example, Peter Siebel’s Practical Common LISP, also available at Amazon) and those that are principally driven through a GUI (Graphical User Interface). The subcategories for each of those are FLOSS or FOSS (Free/Libre Open Source Software) vs. Commercial.

I want to talk about my experiences, early impressions, difficulties, or whatever else comes up:
1.) because it will help me process my own thoughts;
2.) if I overcome some technical hurdle (and boy, do they seem to have a way of persistently appearing) I might as well share my solution to save the next poor soul some time, and;
3.) to the extent that it’s offered, receive the wisdom and/or expertise of anyone who comes upon what I’m writing and wants to share.

tiction_topSo that brings me to Tiction, a quite beautiful, freeware “nodal music sequencer,” created by Hans Kuder with Processing. I downloaded the program, and followed the brief instructions at the website. Tiction doesn’t generate sound on its own, so needs to be connected to an external MIDI keyboard or an internal software synth.

There are basically three menus in Tiction:
1.) The Help menu, which is basically a list of keyboard shortcuts for setting up the nodal network, N to create a node, C to connect it to the next one, etc. It’s very straightforward.
2.) The Options menu, which allows you to choose 16 specific pitches according to their corresponding MIDI note number, with a default setting of a C major scale/diatonic collection, the MIDI In/Out connections, sync parameters, the ‘bar brightness’ and ‘do physical actions on trigger’
3.) The Edit menu (reached by selecting a node and typing E, which allows you to select specific parameters for the highlighted node, including MIDI channel, physical actions (such as jiggle, attract, repel), and velocity, among other things.

I first connected it to my external MIDI keyboard via my typical Core Audio MIDI Setup in Mac OS X, selecting it from the Options menu. I created several nodes, connected them, and fired it up. Right away, Tiction made some interesting music, with compelling visuals to go with it. The default behavior dictates that the network of nodes you’ve created drift around the screen, and depending where the network is drifting along the X/Y axis, it will affect the register that is sounded as well as affect the velocity. What that means is that the default mode is really rather musical. Set certain nodes to attract or repel, and the activity on the screen and the music generated become more agitated. Change the pitch collection and its potential broadens again.

I was so excited, I began thinking that it would be great to look into Screencasting software so that I could make a video of Tiction doing its thing and project it for the audience. I would record MIDI into say, three or four MIDI channels in Logic, add, edit, or modify material as I saw fit, and voilá! One movement done! Since there will be a choreographer and some dancers as part of the project, I thought this would make a perfect accompaniment.

Picture 1 I then wanted to try running Tiction through Apple’s Logic, and here I wound up hitting several hurdles, some that were solvable and some that I haven’t been able to yet. First, running Tiction into Logic requires using the IAC (Inter-Application Communication) Bus that comes by default with Audio MIDI Setup in OS X. At first it didn’t work. I tried it with Midipipe. Still no. Since Tiction was made with Processing and since Processing requires conversion into Java, AND since, evidently, there is some lack of support from Apple with Java, I thought the problem may reside within the Java extensions folder. Looking through the (not particularly current) message board at the Tiction website, I decided to buy Mandolane MIDI SPI, thinking it was a long-shot, but since it was cheap, well, okay, and it was. A long shot, that is. Still no. But on the right track. Turns out the only extension necessary is: mmj (because since OS X 10.4.8 Apple no longer supports some java MIDI packages). Download mmj and copy both mmj.jar and libmmj.jnilib into /Library/Java/Extensions.

Finally! I get Logic and Tiction talking to each other. But another head (or 3) grew on the hydra:

1.) I can’t set the nodes to play on different MIDI channels. Whenever I hit “E” and edit the MIDI channel number, no matter what number I enter, it always resets itself to channel 1 as soon as I hit “E” again to exit the editor.
2.) I’m having the same “note off” issues that others reported in earlier versions of the software.
3.) I can record MIDI data into Logic from Tiction, but I can’t get their metronomes to sync up. If I select anything other than “Use Internal Clock” in Tiction, it refuses to play for me.

So, it’s not yet necessarily at the deal-breaker stage for me. Though it would be some work, I could still realign the MIDI data to proper bars and beats to deal with the sync issue. (I don’t know if there’s some clock drift over time or not that might make that more complicated than I think). I could re-orchestrate the MIDI data to whatever channels I want after the fact, though that would be time-consuming, and probably less organic than being able to do it directly from the original. I suppose I could make the MIDI ‘note off’ problem a feature rather than a problem, especially if I choose to involve the flute quartet in some interesting, crunchy way against the held tones. (I could also manually shorten other groups of notes that didn’t turn off.

I posted this issue on the Tiction website. If I get an answer that solves it, I’ll report back. Otherwise, anybody out there already run into and solve this problem?
*********
September 21, update: Problem #1 is solved, with help from Hans Kuder. When changing the MIDI channel in the individual node’s Edit menu, you must use the ENTER key for the change to take effect. The other half of the issue, on the Logic side, is that it is necessary to go to File>Project Settings>Recording and check “Auto Demix by Channel if Multitrack Recording.”
Note Off and Sync issues remain.
*********
February 15, 2010, update: I’ve been meaning to say for a while, that Tiction’s website was down for a while, but now it’s back up. But anyway, Tiction broke under Snow Leopard. Hans Kuder is a ware of the problem and is looking into it. Check his website periodically for an update. I noticed that another, simpler program called MIDI Game of Life, which is also Java-based broke under Snow Leopard too.

 

My robot is now interactive. Come with me if you want to live.

17 Sep

I also figured out how to make this flying robot loop.

This one, where you move the mouse moves the robot, and also changes his eye and tele-belly color. If you move the mouse fast enough, his antennae get wonky. Also, if you push a key on your keyboard (for me, I have to push it down and hold it down for a little bit), he has a message for you.

 

Inkscape Practice

13 Sep

The Swedish and EU flags were made from the first two official Inkscape tutorials.



I gave myself the Andy Warhol treatment following this tutorial.

The chrome letter effect was made by following a video tutorial over at youtube.

 

Solving an Inkscape Effect Problem with “Path to Pattern” on Mac OS X 10.5.8

10 Sep

CompassI’m new to Inkscape and have been trying a small handful of tutorials I’ve found online. In the middle of a compass-making tutorial, while trying to use “Path to Pattern Effect”, I ran into the following wall:


The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml

Confession: I missed the Open Source boat, more or less. I have no taste for code. I consider myself fluent on my Mac, but Java, Python, Terminal, it’s all, well, not exactly Greek to me, but it is rather foreign. At the same time, I see that more and more people are obtaining a certain fluency in these languages, and I also understand that there’s considerable overlap from one to another, so that what one learns of a particular code language is like a dialect of another. One advantage of being an American expat in this regard is that I’ve become adept at listening to a conversation in a foreign language (in my case, Latvian) and picking up the gist of it even though I may lose the details.

As I said, I’m new to Inkscape. I’m working on a multi-movement, electroacoustic multimedia piece, and have decided that for one of the movements, one of the things I want to try is to use Inkscape and Processing to create an animated graphic score to be projected before the audience as the musicians read it.


I spent most of the day working on fixing this problem. And there were plenty of forum posts about this issue, but the only one I found that seems to have resolved it suggested an upgrade to the development version of Inkscape (0.47), but that alone did not do the trick for me. So here’s the sum total of everything I did that DID work for me, plus how I would do it now, knowing what I do know.

Inkscape. First of all, looking at the contents of the Inkscape application (Control-Click on Inkscape.app/Show Package Contents/Contents/Resources), I could see that the extensions Inkscape was looking for were not present. I upgraded to Inkscape development ver. 0.47. The necessary extensions were not there either. Strike one.

Python. Maybe since the extension is related to Python (or at least that’s what I thought), I need to upgrade Python? Upgraded to Python 3.1. No change. Clearly, I don’t know what I’m doing.

X11. At some point, somewhere, I read that I should upgrade X11 (necessary for Inkscape to run on a Mac) to X-Quartz 2.4.0. No change. Sigh. Hit the desk.

Macports. Somewhere along the line, I stumble upon Macports. “The MacPorts Project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system. To that end we provide the command-line driven MacPorts software package under a BSD License, and through it easy access to thousands of ports that greatly simplify the task of compiling and installing open-source software on your Mac.” Sounds good to me! I install version 1.8, and follow the guide for the first three chapters. I poke around, am able to look at ports, find Python lxml and libxml2 ports but am getting an error (I forget now what it was, but I googled it at the time and didn’t feel particularly enlightened) when I try to install. Back to the guide. By Chapter 4 I feel lost.

Porticus. Again, somewhere along the line I discover Porticus, “a Cocoa GUI (Graphical User Interface) for the MacPorts package manager. MacPorts provides ready to build open-source software packages modified to compile and run on Mac OS X. The MacPorts project provides a TCL command line tool to manage installation, update and activation of the port packages. Porticus provides a GUI front-end to this tool.” Now we’re talking! No code! I try it, find the find Python lxml and libxml2 ports but am still getting an error. For some reason, because I was given the error not in Terminal but in Porticus, I don’t feel so stupid.

Back to Macports.org, this time to the FAQ page, because I can’t believe what they’re calling a guide over there is guiding anyone. There, I read: “You need to install Xcode. Ensure you include both X11SDK and Unix Development. Some ports need newer versions of Xcode than that which ships with the OS, and will fail to install due to that requirement. Xcode is not updated via Software Update, you have to download it manually. To do so, go to http://connect.apple.com/ and log in with your ADC information (the free online account is enough to get access to Xcode). Once you log in, go to Downloads, then select Developer Tools on the right section under Downloads. You can then search for Xcode (there are quite a few versions available, make sure to get the latest for your OS version).”

Sure enough, I do a search on my Mac, and don’t find X11SDK. I head over to Apple Development and download and install Xcode 3.1. If you do the basic install, you get the Unix Development package automatically. I manually installed X11SDK, which is part of the same .dmg file.

I go back to Porticus and try installing the ports again. Voilà! 12 ports show up (the necessary ports and their dependencies). I fire up Inkscape again, and finally, FINALLY! No error message! It worked!

So, if I had to do it again, I would start by going directly to the ADC site and get Xcode. Download Macports if you don’t have it. I realized after the fact that if I had followed the instructions here, I would not have needed Porticus.

This all may become quite moot if you upgrade to Snow Leopard. I don’t know yet. My Snow Leopard disc is in the mail. But if you do, Xcode 3.2 is already at the ADC site for Snow Leopard. In any case, enjoy the stupid compass.

 

Nätverksläger för tonsättare och musiker at Klackbergsgården, in Norberg, Sweden, July 27-August 1

21 Jul

norberg
At a conference in Helsinki in October 2008, I met Swedish composer Martin Larsson, who told me about a pilot project he was running in Norberg, Sweden with guitarist Patrik Karlsson called New Music Incubator (literally, Networking Camp, which sounds better in Swedish than English) for Composers and Musicians, a 5-day intensive workshop where 5 composers and approximately 25 musicians come together. The composers each write a new piece every day for some combination of musicians, followed by an evening performance of the works and a final concert some months later in Västerås Concert Hall. Geared toward post-graduate professionals and not limited to contemporary classical music, it’s an opportunity to explore, to simplify, to step out of one’s comfort zone, and to expand one’s network.

I invited Martin and Patrik to come to Latvia and speak to members of the Latvian Composers Union about the possibility of expanding this project so that participants could apply from throughout the Baltics and Scandinavia with the goal that the camp would next take place in Latvia, with me as the local administrator. We successfully applied to Kulturkontakt Nord for €10,000 to hold the camp outside Liepāja, Latvia in the summer of 2010.

This July I will go to Sweden as a composer participant so I can experience the camp first-hand. All the better to administrate next year, my dear.

 

Lectures in Lithuanian Cities, May 5-13

04 May

poster.jpg
One of my projects this past year has been the preparation of a Powerpoint lecture series on American music for the American Embassy in Latvia. I prepared 5 90-minute presentations, on Classical, Jazz, Blues, Rock and Hip Hop. I have now been invited by the American Embassy in Lithuania to give the lectures there. I will lecture in Kaunas on May 5 (Lithuanian Music & Theater Academy); in Vilnius on May 6 (Lithuanian Music & Theater Academy); in Klaipėda on May 11 (Klaipeda University); and in Šiauliai on May 13 (Šiauliai University).

 

Job Season (Shoot Me NOW!), CV and Teaching Philosophy

01 Oct

I haven’t written a pure blog entry in a long time… It’s been mostly concert announcements and the like. But it’s Academic Job Season again. Which makes me think of the Abbott and Costello “Who’s on first?” variation from the old Bugs Bunny cartoon where Elmer Fudd (who is hunting rabbits specifically) has both Bugs Bunny and Daffy Duck cornered with his gun, and Bugs gets Daffy to insist on getting himself shot.

rabbit-seasoning-mm.jpg

Bugs: It’s true, Doc; I’m a rabbit alright. Would you like to shoot me now or wait ’til you get home?
Daffy: Shoot him now! Shoot him now!
Bugs: You keep outta this! He doesn’t have to shoot you now!
Daffy: He does so have to shoot me now! [to Elmer] I demand that you shoot me now!
[Elmer raises his gun. As Daffy sticks his tongue out at Bugs, he is shot. Daffy walks back over to Bugs, gunsmoke pouring out of his nostrils]
Daffy: [to Bugs] Let’s run through that again.
Bugs: Okay.
Bugs: [deadpan] Would you like to shoot me now or wait till you get home.
Daffy:[similarly] Shoot him now, shoot him now.
Bugs: [as before] You keep outta this, he doesn’t have to shoot you now.
Daffy Duck: [re-animated] Hah! That’s it! Hold it right there! [to audience] Pronoun trouble. [to Bugs] It’s not “he doesn’t have to shoot you now”, it’s “he doesn’t have to shoot me now”
[Pause]
Daffy: [angrily] Well, I say he does have to shoot me now!! [to Elmer] So shoot me now!
[Elmer shoots Daffy again]

Anyway. That’s close to how I feel about applying for academic positions. But I just retooled my Curriculum Vitae, and created a teaching philosophy statement. I would very much appreciate constructive feedback on either one. I hope the Teaching Philosophy doesn’t come across as the same old, same old pablum.

While I’m at it, I wonder if anyone out there who has been or chaired a search committee might care to illuminate the process by commenting on their experience(s)? I have only taught adjunct, so I’ve never been on one. In the last three years, I have made it to the interview stage three times. The first time, someone with a choral conducting qualification got the job over me, because conducting was entailed. The second time, they broke the position into multiple adjunct posts in the end. The third time I was painfully nervous during the sample lessons I gave, and they gave the position to an internal adjunct candidate.

But I would love to know a few things, the most obvious being what makes one person’s CV float to the top of the candidate pile?

But also random things about the process that sometimes contribute to it feeling like a hassle, like:
• Why do committees ask for things that will make the entire applicant pool spend money on something like official transcripts, videos of teaching, CDs or scores, etc., rather than waiting to reduce the pool to, say, 10 candidates?
• After just reducing the size of my CV from 8 pages to 5 (primarily by winnowing my complete list of works down to commissioned works only), I see a vacancy announcement specifying a desire to see a complete list of works. Why?
• As for letters of recommendation, which is more important, the content of the recommendation or the name-recognition of the referee?
• How important is it to see a cover letter truly tailored to the school to which it’s sent?

Teaching philosophy

As a classroom educator, I model myself on a combination of several professors whom I have been fortunate to know. Teaching effectively requires flexibility, patience, humility, inquisitiveness, humor and creativity. I strive to be clear and methodical in my presentation, to keep the path between the specific and the general visible, and to individualize the learning experience as much as possible. Mistakes should be embraced as instructional opportunities. I strive to bring into the conversation about music ideas from other disciplines such as history, the sciences or psychology, in order to create multiple inroads to understanding for my students, but also to introduce them to the notion that an embracing open-mindedness to disciplines outside of music will help them become better musicians and critical thinkers. As much as possible, I try to treat the classroom as a laboratory environment for my students, where they learn by doing, by being active rather than passive.

When giving composition instruction (in addition to listening, score study, and reading), I follow an excellent model for discussion I learned when participating in a workshop at New Dramatists in New York City, led by Ben Krywosz. He learned it originally from the field of dance, but applied it here to an intensive workshop on collaboration between composers and playwrights/lyricists. There were five composers and five lyricists (and five singers plus an accompanist). We had to produce a lot of collaborative work, and every other day, we would come together and the performers would read through the pieces. When it was time to critique each other’s work, we followed a very specific five-step model for the discussions:

1. Say something positive. This forces us out of our typical reflex reaction, which is to find faults or something we would change had we been one of the authors. A lot of good-faith effort went into the attempt to create something artistic. It shouldn’t be too hard to find something positive to say.
2. You can ask them questions about the work, but not one that couches a negative opinion (like “How dare you?”). An example might be “What inspired you to evoke that image in the text?” or “What was the mood you were hoping to achieve?”
3. The author(s) can ask us questions. They might ask “Did that tempo work for you?” or “Could you understand the text in that vocal register?” etc. Truthfully, we as creators tend to have a sense about what is working well and what isn’t, and this provides an opportunity for the creator(s) to voice their own concerns. This can also preempt some of the content in the next step.
4. Opinion. This is the time we can present the negative aspects of our larger reception of the work. Here, whatever remaining technical or aesthetic issues can be addressed. All creative artists feel a certain emotional vulnerability that accompanies putting one’s work before other people. After steps one through three, that vulnerability has diminished, and leads to an ability to receive these opinions rationally and constructively.
5. Big picture. Here we examine the issues brought up in the discussion and determine if any are relevant to the discipline as a whole.

Perhaps one of the most important reasons I appreciate this model is the respect it accords people in their artistic efforts. I have found it useful when speaking with composition students, performers, or colleagues alike.