On Thu, Dec 8, 2016 at 3:52 PM, Gonzalo <gonzalo@dense13.com> wrote:
Hi,

I'm using Bruce Murphy's MIDIsender class (http://www.rattus.net/~packrat/audio/ChucK/files/midisender.ck) to generate MIDI from my Chuck code. I'm sending this MIDI to various virtual MIDI ports (using OSX's IAC Driver). Then I have various software instruments in Cubase, each one listening to one of the virtual ports. Works well when I run my Chuck program, but if in Cubase I arm the tracks and try to record the incoming MIDI, all the events get 'collapsed' at the same time, specifically the moment I click record. They do get recorded, but all starting at the same time.

This only happens if I want to record them, if I'm only playing, timing is fine.

Using MidiMonitor I see that the time for all the MIDI events generated from Chuck is 0, that seems to be the issue. Any thoughts on how I can change that?

MidiMsg is defined as a four byte record

https://github.com/ccrma/chuck/blob/master/src/midiio_rtmidi.h#L65

but ChucK only sets three bytes on send

https://github.com/ccrma/chuck/blob/master/src/midiio_rtmidi.cpp#L120

midisender.ck does the same.  Is the unset byte supposed to be the time?  Suppose I should go read the spec.

It appears time is written and read from files separately

https://github.com/ccrma/chuck/blob/master/src/midiio_rtmidi.cpp#L823
https://github.com/ccrma/chuck/blob/master/src/midiio_rtmidi.cpp#L837

Not sure that helps,

   michael