OpenMusic

Visual Programming | Computer-Assisted Composition

OpenMusic Tutorials

Prev| | Next


Tutorials

Some of these examples were part of the first OpenMusic tutorial written by the composer Jaccobo Baboni that we would like to thanks for letting us use them, as we found them very instructive and enriching. Other examples were made by ourselves.

At last but not least, we would like to thank a lot all the RepMus team Gerard Assayag and Carlos Augusto Agon, creators and conceptors of OpenMusic for their precious help, invaluable support and encouragement. Special thanks also to the composer Markus Buser who had the patience and the kindness in proof reading our tutorial.

–Karim Haddad and Mikhail Malt, 2001

The original OM tutorials were written by Karim Haddad, with patches by Jacobo Baboni, Mikhail Malt, and Karim Haddad. I’ve edited them for clarity and regrouped them by theme and complexity, which should be more approachable for the new user.

–Matthew Lima, August 2003

Tip

You can use the Last Saved function in the menu File->Last Saved in the patch view to restore the patch to its original condition, provided you’ve not saved it yourself. This is useful since OM has no Undo function.


Table of Contents

1. Using Musical Objects I

Tutorial 1: Transposing pitches

Tutorial 2: Inverting an interval

Tutorial 3: Building a scale

Tutorial 4: Inverting an interval II

Tutorial 5: Retrograde

Tutorial 6: Four basic operations on a 12-tone row

Tutorial 7: Changing melodic contour

Tutorial 8: Construction of a harmonic series

Tutorial 9: Dealing with data types

2. Playing MIDI I

Tutorial 10: Playing MIDI

3. Using Aleatoric Elements

Tutorial 11: Constructing a [Chord](chord) with random notes from a harmonic spectrum

Tutorial 12: Building a sequence of random notes: [om-random](om- random)

Tutorial 13: Another random sequence

4. Flow Control I: Predicates

Tutorial 14: Random construction of a sequence

5. Flow Control II: Loops

Tutorial 15: Introduction to [omloop](omloop) I

Tutorial 16: Introduction to [omloop](omloop) II

6. Using Musical Objects II

Tutorial 17: Generation of a melodic sequence from harmonic reservoirs

Tutorial 18: Generation of a note sequence by interpolation between two chords

7. Breakpoint Functions

Tutorial 19: Using BPFs I; Graphic representation of a series of notes

Tutorial 20: Using [BPF](editors.bpf#BPF)s II: Sampling a sequence of notes

Tutorial 21: Using [BPF](editors.bpf#BPF)s III: Scaling a melodic contour

8. OM Music objects [Chord-seq](chord-seq) and [Voice](voice)

Tutorial 22: [Chord-seq](chord-seq): Onsets and durations I

Tutorial 23: [Chord-seq](chord-seq): Onsets and durations II

Tutorial 24: [Voice](voice) I

Tutorial 25: [Voice](voice) II

Tutorial 26: Editing rhythm with the [Voice](voice) graphic editor

Tutorial 27: Introduction to rhythm quantification

9. Playing MIDI II

Tutorial 28: Working with MIDI files I

Tutorial 29: Working with MIDI files II

10. Using Musical Objects I

Tutorial 30: Working with lists I

Tutorial 31: Working with lists II

11. The Maquette

Tutorial 32: Introduction to the [Maquette](glossary#MAQUETTE) I

Tutorial 33: Introduction to the [Maquette](glossary#MAQUETTE) II

12. Lambda Functions

Tutorial 34: Introduction to Lambda Functions

Tutorial 35: [funcall](funcall) with Lambda Functions

13. Flow Control III: More Loops!

Tutorial 36: Accumulation

Tutorial 37: Accumulation with musical objects

14. Flow Control IV: Recursive Functions

Tutorial 38: Recursive patch I

Tutorial 39: Recursive patch II

15. The Maquette II

Tutorial 40: More Advanced Maquettes and MIDI

Tutorial 41

16. Classes and Inheritance

Tutorial 42: Creating a Generic Function I

Tutorial 43: Creating a Generic Function II

17. Classes and Inheritance

Tutorial 44

Tutorial 45


Prev Next
Libraries Using Musical Objects I