< Back to IRCAM Forum

MIDI sequence to Group (GFWD)

I have been struggling to get MIDI playback tied into live performance with antescofo~. The main aspect I want to control is live tempo fluctuation based on the detected tempo. I have been trying to get this to work with detonate, note~, and bach.roll but each seems to have something that prevents me from getting this just right. I was looking at the antescofo~ tutorials, particularly the @tight one, and was wondering if there is a way to convert MIDI files so that they are part of the antescofo score like this example from the tutorial:

group group1
{
nastynotes 96
0.5 nastynotes 95
0.5 nastynotes 94
0.5 nastynotes 93
0.5 nastynotes 92
0.5 nastynotes 91
0.5 nastynotes 90
0.5 nastynotes 89
0.5 nastynotes 88
0.5 nastynotes 87
0.5 nastynotes 86
0.5 nastynotes 85
0.5 nastynotes 84
0.5 nastynotes 83
0.5 nastynotes 82
0.5 nastynotes 81
}

If you want to convert automatically a MIDI file to an Antescofo score you can try to use the attached program (Experimental!). This small Java program, converts the first channel of the MIDI file into the musician part of Antescofo (NOTES) and the other channels will be converted into groups. The MIDI actions are formatted in MIDI-Pitch Velocity Duration-in-bearts.

NOTE: This is an experimental program. We are interested to know what would be the community’s need to see integration into AscoGraph.

Tight syncronization:

group g1 @tight
{

}

If a group is tight, its actions will be dynamically analyzed to be triggered when Antescofo recognizes its corresponding event (Notes, Chords, etc.) in the score if there is one, or with the nearest event in the past.
This feature evades you from segmenting the actions of a group to smaller segments with regards to synchronization points.
Note that you can also use loose groups (the default attribute of a group) inside a tight group (nesting).

AntescofoMidiParser.jar (5.74 KB)

That is really interesting. Not sure how to implement it though as I know nothing of java. Perhaps you can walk me through it.

What I want to have happen would be to have antescofo send out the midi data to a makenote object. That way synchronization between the two would be tight just as what happens in the example above where the output of the descending 8th notes corresponds to the incoming tempo. Much like embedding a MIDI file inside the antescofo score.

You don’t need to implement anything. Just download the Jar file in this thread, double click and a dialog will ask you for a MIDI file. And when done, it’ll create a text Antescofo file next to that file with the same name but a .txt extension.

I am not getting the dialog box when I double click. I also have to force quit to get it to quit.

What OS version are you using? We might need to recompile it… after all… Java is not really multi-platform (despite initial promisses!).

10.8.5

Did my earlier post make sense in regards to running MIDI data from inside GROUP? In my mind, if I understand it correctly, would be the ideal solution to my problem of trying to sync MIDI playback with a live performer’s tempo.

It makes sense.

You might want to translate a MIDI sequence to a “tight” group, if you want to be synchronous to tempo and position at the same time. In our automatic accompaniment demos we actually use the aforementioned Java program that takes the MIDI file and puts out an Antescofo file with:

  • the first track as the score to follow (NOTE, CHORD, etc.)
  • the other MIDI tracks as separate groups.

As an example, you can download the attached Antescofo score which is a direct translation of a HANDEL Sonata for flute. Each accompanying MIDI track is a separate group declared as @tight @local, meaning that content will synchronize with TEMPO and POSITION (@tight) and actions are missed if for any reason the musician missed corresponding events (@local). For further information, you can refer to this ICMC Paper.

You can load this score to the Antescofo help file and just press Play to simulate results or (if you dare) whistle the flute part to hear the result! :slight_smile:

I believe @Echeveste will send out a recompiled Java version of the convertor soon. Note that it’s experimental.

Handel_Flute_Gavotte.txt (41.2 KB)

Here is a new experimental java file to convert a MIDI file to an Antescofo score.

midi_asco.jar (9.51 KB)

I still can’t run the java file. It just opens up and I have MIDI2Asco int he upper left corner but nothing else.