Software Interfaces for Music

From CCRMA Wiki
Revision as of 00:55, 10 December 2007 by Hbursk (Talk | contribs) ('''Examples I've Made''')

Jump to: navigation, search

Software Interfaces for Music

Using Python, a dynamic object-oriented programming language, with Mirra, a 2D OpenGL Python library developed by Ixi-Software, we can rapidly prototype graphical user interfaces that will send out Open Sound Control messages. These Open Sound Control messages can be received by a number of different synthesis engines including Pure Data and ChucK. Since both environments can be run concurrently, changes and design descisions can be made very quickly, almost on the fly.

How to Use It

Mirra has been installed on the Planet CCRMA systems under: /usr/share/doc/mirra-0.3.2/ There you'll find an /examples directory and a /documentation directory. To launch any of the examples, navigate your terminal window to the examples directory and type: python into the terminal.

For instance, python would launch the pong example.

Playing with the examples and using them as a starting point is a great way to being experimenting with the Python language and seeing what Mirra can do.

Examples I've Made

Below is an example of a graphical interface I've begun to work on based on the code as a starting point. There are several blocks that can be dragged around the screen and a single ball that bounces off of the blocks and off of the walls. If a block is hit by the ball, it plays its sound. The sound the block makes is based on its position on the screen. For example, I've mapped that position using the x-axis for pitch and y-axis for gain. I've also tried a mapping using the y-axis for sample rate playback (pitch), and the x-axis for pan position. One of the things that is really great about using Mirra with something like ChucK is that you can alter your synthesis code without ever having to stop your Python code from running.


Here is another example of a graphical mixer that does not use faders or knobs. Instead, there are collection of blocks each tied to their own audio loop. When a block is placed inside the center square, or mixing pallette, the audio is heard. Once inside the mixing pallette, the blocks can be moved to affect their sound plaback. Left to right controls pan postion while the y-axis or up and down controls the playback rate of the audio loop. Moving up pitches the sample up and moving down pitches it down.


Be careful when working quickly between the two environments, Python and ChucK, to be sure to change your syntax between the two languages. Python uses no semi-colons or brackets. ChucK uses both of those things but cannot use an equal sign to define a variable. If you aren't careful, you'll find a lot of errors in one or both of the two programming environments.

Links to Interesting SI Pages

(thor magnusson)

  • Carnage Heart
  • Torque: Torque is a high level object oriented game creation engine for pc, mac, and console games. Free demo and games to download.