< Back to IRCAM Forum

Midi file manipulation // process based music

Hi everyone,
I’m completely new to OM, my previous experiences are with Supercollider and Max/msp

I encountered a problem and I’m looking for the right software or programming language to solve it, and it would be nice to find a proper way to generalize the solution and to apply that in different situations.

Okay… The problem is that:

I’m trying to automate a process to compose through the use of MIDI files.

The general Idea is just to:

  1. write something in a DAW
  2. export a midi file
  3. Import the file in “the right software”
  4. compose all the variations
  5. Import the new materials in the DAW etc …

A general question, do you know any tool or library or other languages specifically dedicated to MIDI files manipulation like a way to compose music?

I’m trying to do something quite simple, but in the end is not that much …

The main source is just a single bar of a MIDI file.
I would love to generate new MIDI files based on variations of that one.

The piece I took like referement is Clapping Music by Steve Reich
Clapping Music - Scrolling Score - YouTube

So the rule is just to shift/rotate the notes.

What I would love it could be something like:

  1. read the file
  2. press the magic button
  3. receive on your desktop all the variations with the “correct” name
  4. arrange everything in a DAW

For now I’m here but I encountered a problem, I was using supercollider with an external library and it happens that, if I have a pause/silence at the beginning or at the end of the phrase, those won’t be interpreteted correctly, so the phrase it’s truncated and it’s not possible to simply automate the process without a manual intervent.

I hope that OM is the right tool for this kind of processes.

Thanks in advance for your time,

OM is a great tool for music on a symbolic level - wheter it be represented as midi, notes in a score, or any other well-defined format.

OM has much built in magic! However, it’s a high-level programming language, so usually you’ll have to do some work to patch things together the way you want things to behave. A great start is the series of well-documented and structured tutorials included.

to shift/rotate the notes

The Patterns library for OM (OM libraries) is a meta language within OM, aimed at prescribing streams of data layed out according to various pattern types, or combinations of such. As well a ‘p-rotation’ pattern, with which you can directly specify the way the successive 8-note shifts develops in the 2nd voice of Clapping Music.

Have fun!


1 Like

Hi @anders,
Thank you for the reply.
About patterns there is something exactly like that in supercollider, but unfortunately I encountered a problem with an external library that deal with MIDI.
Could I ask you if it’s possible in OM to import a midi track and apply the “rotation” and export the result to another midi file?

Thank you very much!


1 Like

Thinking about it, a much simpler way, if all you want is the simple rotating done in ‘clapping’, you can use already built in functions - #'rotate, for any list, and #rotatetree for rhytmic trees:
Skjermdump fra 2021-04-21 10-10-08 Skjermdump fra 2021-04-21 10-12-11
Resulting poly:
Skjermdump fra 2021-04-21 10-13-30

1 Like

Thank you, very much indeed for your help!