Ceci est une ancienne révision du document !
OpenMusic training workshop @CIRMMT
May 29th - June 1st, 2012
10am-4pm
CIRMMT, Centre for Interdisciplinary Research in Music Media and Technology, Montréal, QC, Canada.
http://www.cirmmt.mcgill.ca/activities/workshops/training/om/
You will find in this page links and information related about our workshop sessions.
Downloads and installation
In order to install the latest OM version (6.5.1), go to the OM download page in the OM website and follow instructions.
Mac users only: If this is your first installation, you will need to install MidiShare. MidiShare is the library used by OM to manage MIDI data and rendering. For technical reason it can not be included with OM pack and needs separate install. Depending on your OS configuration, Midishare 1.93 or 1.92 may be tested (we shall do it during the first workshop session). Links band instructions are also on the OM downloads page.
Note: Some problems have been reported by users of OM 6.5.1 after MacOS Lion upgrade. Annoying crashes may happen at dragging objects, requiring complete restart (and possible data loss). I am currently working on it, and integrated changes in a beta release (MacOS, Intel only) which you can temporarily find here during the workshop. Do not hesitate to report any problem.
Getting help and support
If you want to explore OM by yourself, you may find help at these different places.
- The online user manual (also accessible in OM from the Help menu) is a relatively complete documentation about all features and programming concepts of the OM environment. (Noet that this manual does not include external libraries).
- The function and class reference is accessible in OM from the Help menu and provides a basic documentation of all referenced objects and functions. Type 'd' in an OM patch to access directly the reference page corresponding to a selected box.
- In patch and other OM editors, the Editor command keys in the help menu (also accessible with 'H' keyboard shortcut), can be a useful reminder of the principal actions and shortcuts.
- See the Common Lisp specs. and reference for the Lisp tools and functions.
⇒ Subscribe the the OM mailing list to get support, advices and share your experience and problems with the OM user community and developers.
Hints / Panic
- When a box can not draw anymore because of a wrong input and a message errors appears every time you click or redisplay: hide the "miniview", by selecting the window and typing upper case 'M' (show/hide all front window miniviews). Delete the box and create a new one, just to be sure..
- When you're in trouble with the system Terminal: Try to type :top to return to the top level and get the control back on the OM user interface. Do not forget to save your work. Consider a fresh restart.
- When an evaluation seems never to end (Listener printing "Running" forever): Try to abort the process (Listener window, menu Lisp/Abort or CMD+'A').
[ day 1 (05/29): introduction ]
- Computer-aided composition: basic ideas and objectives of the workshop
- Getting ready: Installation, sound tests, etc.
- Basics of the environment: the main OM windows and concepts: workspace, packages, documents, preferences…
- Patching basics: creating and evaluating a visual program
- Introduction to basic OM objects: chord, chord-seq, voice, BPF…
- Score and BPF editors
- Evaluation modes: lock, eval once, …
- Using the basic OM functions to create musical data (om-random, om-scale, om-sample, om+, om-round, x→dx/dx→x, etc.)
Some patches we've created during this session
- Click to enlarge the pictures
- See how to import patches in your workspace in the online user manual.
| Basic visual program and the use of note, chord, chord-seq, poly objects Download the patch: patch-1.omp.zip | ![]() |
| Creating a scale and displaying and hearing microtones Download the patch: microtones.omp.zip See Ircam "Forum Research" downloads to get the MicroPlayer application (MacOS only) | ![]() |
| Using (rescaleing, resampling…) BPFs (break point functions) Download the patch: bpf-to-chord-seq.omp.zip | ![]() |
| Voices and rhythm trees Download the patch: voice.omp.zip More about rhythm trees HERE. | ![]() |
| voice/chord-seq conversions, quantification Download the patch: quantification.omp.zip | ![]() |
[ day 2 (05/30): (more) advanced ]
- Importing / exporting patches
- Pictures (background picture, picture boxes)
- Forumnet login and installing user libraries
- Overview of Pixels: example of a specialized library for picture management
- Abstractions: local (red) / global (blue)
- The lambda mode and higher order functions
- Iterations: mapcar
- Iterations: omloop
- Score import & save
- File input / output in OM
- MidiFile and Sound objects introductions
Some more patches...
Definition of a simple abstraction … used and applied iteratively with MAPCAR or OMLOOP iterators. Download the patch: iteration.omp.zip | ![]() |
| Interpolations … and how to access list elements, display in BPFs, use BPF-Libs, extend to chord interpolation. Download the patch: interpolation.omp.zip | ![]() |
| Other use of the 'lambda' patches : personalize the 'tests' in find, remove, etc. Download the patch: remove-duplicates.omp.zip | ![]() |
| First exercise: generating all combinations of intervals. Download the patch: ex-intervals.omp.zip | ![]() |
| Another exercise: grouping successive pitches in a list. Download the patch: ex-group-list.omp.zip | ![]() |
[ day 3 (05/30): sound models / signal-symbolic relations ]
- File import/export
- Command line tools installation in OM
- Sound analysis import and the SDIF format
- The Ircam sound analysis/processing libraries: OM-pm2, OM-SuperVP
- Analysis data processing and conversion
- Sound treatments and processing
Links
⇒ Example sound files (put the files in your in-files folder as set in the preferences, or anywhere on your computer).
⇒ Example SDIF files (put the files in your in-files folder as set in the preferences, or anywhere on your computer).
⇒ SDIF doc, types, etc.
⇒ Documentation about SuperVP and PM2 analysis in AudioSculpt (in French).
⇒ Download Pm2 and SuperVP in IRCAM Forumnet "Reasearch pack downloads" (special acces for workshop participants, valid until June 30th).
⇒ Download AudioSculpt in IRCAM Forumnet "Studio pack downloads" (Forum subscribers only).
⇒ Get Spear (by M. Klingbeil) as an alternative software and GUI for phase vocoder analysis.
Patches and topics covered
| The SDIF format and the use of SDIF data in OM (SDIFFile). Instanciate SDIFFile objects, understand and inspect the contents, read and extract the data with GetSDIFData, SDIF→BPF, etc. The SDIF format: ![]() Download the patch: sdiffile.omp.zip Read more on the SDIF format and use in OM in the online user manual. | ![]() |
| Sound analysis in OM. Use SuperVP and pm2, to perform sound analyses and create SDIF files in OM. Download the patch: analyses-in-om.omp.zip | ![]() |
| Partial tracking and 'chord-seq' analyses. How to read, convert and process the partial tracking files created by pm2, AudioSculpt or Spear. Download the patch: partial-tracking.omp.zip | |
| Overview of the sound processing tools in OM-SuperVP. Example of the 'remove-pitch example', of a process of analysis and treatment of a sound performed in OM. Download the extended example patch: sound-transposition.omp.zip [See the tutorial patches of the OM-SupervP library for more examples and sound treatments – workspace window, then menu Help/Import tutorial patches/Libraries/OM-SupervP] | ![]() |
| Batch processing. .. embedding the previous patch in an iteration (mapcar) and iterative run with a list of mirror pitches. Download the patch: sound-iteration.omp.zip | ![]() |
| when Lisp becomes easier than OM… (an introduction to the use of 'Lisp' boxes). ⇒ The exercise of the day: how to select pitches from different lists following a pattern. Download the patch: ex-patterns.omp.zip | ![]() |
[ day 4 (06/01): sound synthesis - spatialization ]
- The OM sound tools
- Csound: quick intro and installation
- Sound synthesis with Csound in OM
- OMChroma
- More OM objects: BPC, 3DC, 3D-trajectory…
- Control of sound spatialization processes with OM-Spat
- OSC (OpenSoundControl) [networked / inter-application communication via UDP messages]
Patches and topics covered
OSC (OpenSoundControl) and UDP networking
| How to send/receive messages to/from other applications or other computers Download the patch: osc.omp.zip | ![]() |
| A Max/MSP communication example In the patch we also show how to use variables to collect data sent by other applications to OM. For this purpose we used a Lisp function and the Lisp variable definition and access tools (SETF, etc. – see more on the Lisp specification). Another solution would have been to use OM global variable in OM. See more in the OM user manual. Download the Max5 patch: send-receive.maxpat.zip | ![]() |
Audio Tools
| Sound montage, mixing and processing. Record sound into an sound box. Sound processing boxes: sound-seq, sound-cut, sound-save… Download the patch: audio.omp.zip | ![]() |
| An example of audio iteration. In this second patch we embedded the audio functions in an iterative patch (omloop) which selects a random position in the file and cuts a small extract (sound-cut), repeats this process a number of times, and appends the extracts into a single sound (sound-seq). In order to implement this loop, we used the accum box instead of the collect, so as not to collect the extracts into a list, but defined our own "collection" procedure using sound-seq. Download the patch: audio-loop.omp.zip | ![]() |
Csound synthesis
⇒ Csound website. [download page].
| Csound introduction and install… Read more about Csound HERE. | csound-intro.pdf |
| Csound in OM / OM2Csound See the OM2Csound tutorial patches (workspace window, menu Help/Import tutorial patch/Libraries/OM2Csound) to see how to run and edit Csound code in OM (tutorial patch 01) and generate Csound code in OM patches (tutorial patch 02) and connect to the OM score objects (tutorial patch 4). | ![]() ![]() |
OMChroma
OMChroma is a library for the high-level control of sound synthesis in OM. It can be used to control Csound synthesis and Chant synthesis. OMChroma is structured around a principal data structure similar to a bi-dimensional matrix (a subclass of the OM object class-array). During this workshop session we went through the very basics of OMChroma and saw how to use these matrices to control Csound synthesis processes.
The OMChroma library provides a set of synthesis classes (or 'types' of objects), each corresponding to a particular Csound instrument (see OMChroma embedded reference for an overview of the classes – right-click + Documentation on the library icon, or typing 'd' on the different OMChroma objects from your OM patch).
The general synthesis function synthesize will allow to generate an adequate Csound score from the OM matrix, and perform the synthesis.
⇒ Csound website. [download page].
Download the patches: omchroma.zip
Spatialization and OMSpat
⇒ Download the Spat renderer and OM-Spat-AddOns (Mac only) in IRCAM Forumnet "Reasearch pack downloads" (special access for workshop participants, valid until June 30th).
| New objects for the manipulation of curves and trajectories: BPC, 3DC, 3D-trajectory. | ![]() |
| Examples of algorithmic generation of trajectories. The coordinate-system conversion functions in Basic Tools/Geometry can be very useful. | ![]() |
| Rotation of a 3DC and application in an iterative process (mapcar). The BPC-lib and 3DC-lib objects allow to collect lists of BPCs or 3DCs. Download the patch: bpc-and-trajectories.omp.zip | ![]() |
| OM-Spat and the spat-matrix object allow to represent spatial scenes. As for sound synthesis matrices, here every component represents one source and its different spatial parameters. The spatial scene can be saved as an SDIF file, or rendered to a multichannel audio file with the Spat renderer. Download the patch: om-spat.omp.zip | ![]() |
| Load the SDIF file in the Spat-SDIF-Player application (MacOS only) to control its contents streaming via OSC/SpatDIF messages. [more on the SpatDIF format] | ![]() |
| The OSC/SpatDIF messages can be received for instance in SpatDIF-Viewer (simple 3D display) or in latest Spat 4 versions for Max/MSP via udpreceive the spatdif-to-spat object (remember that only one application at a time can bind the UDP pro at a time, and set the send/receive ports accordingly in the different applications). | ![]() |
OMPrisma is an other library for sound spatialization based on Csound and the OMChroma framework. It allows other interesting and powerful applications, such as performing spatial sound synthesis by merging synthesis and spatial parameters in a common control and rendering processes.

































