Page 1 of 1

newbie with MIDI questions

Posted: Fri Apr 07, 2006 12:55 am
by LionsRest
Greets to all!

Wanted to search first before asking what may be FAQ, but the forum search seems broken. Anyhoo, can M8 deal with more than just MIDI CC messages?
Specifically,
notes?
velocity?
clock? MIDI clock would be especially good for setting BPM.

My reason for asking about these is I'm not planning to use M8 in it's traditional role, I'm not a VJ. It would be instead used with a live band, which may have a sequencer and/or MIDI drums. Having certain individual drum (or keyboard) notes trigger/modify things in M8 is what I'm after. Also, the sequencer, if used, can send MIDI clock which has tempo info, start, and stop. These would all be useful to control M8.

Another use I'm working towards is recording for 'music videos' which will end up on DVDs and/or websites.

Regardless, this is one marvelous app.

Posted: Fri Apr 07, 2006 2:45 am
by boris
Hello,
You can use all the midi parameters through the module system.

Posted: Fri Apr 07, 2006 6:53 am
by LionsRest
I got MIDI notes to work, and the velocity can control the slider values, very cool!

MIDI Clock doesn't seem to work to control BPM. I set up a MIDI sequencer I use to output Clock, and assigned it to the BPM Module's speed knob. It showed up as "1/0" above the knob. Unfortunately, the Clock tempo value never changed the speed knob. When the sequencer stopped playing, the knob value jumped to some value, but it was only for a fraction of a second, I couldn't catch it. I think the Stop message which is a related System Realtime MIDI message was causing that. It seems that perhaps since System Realtime MIDI events are different from Note and Continuous Controller events, Modul8 may detect them, but not know how to get the tempo value from the Clock events? Instead of a numeric value, the tempo seems to have to be calculated from the timing of the events as described below.

MIDI Clock

Category: System Realtime

Purpose

Some master device that controls sequence playback sends this timing message to keep a slave device in sync with the master. A MIDI Clock message is sent at regular intervals (based upon the master's Tempo) in order to accomplish this.

Status

0xF8

Data

None

Errata

There are 24 MIDI Clocks in every quarter note. (12 MIDI Clocks in an eighth note, 6 MIDI Clocks in a 16th, etc). Therefore, when a slave device counts down the receipt of 24 MIDI Clock messages, it knows that one quarter note has passed. When the slave counts off another 24 MIDI Clock messages, it knows that another quarter note has passed. Etc. Of course, the rate that the master sends these messages is based upon the master's tempo. For example, for a tempo of 120 BPM (ie, there are 120 quarter notes in every minute), the master sends a MIDI clock every 20833 microseconds. (ie, There are 1,000,000 microseconds in a second. Therefore, there are 60,000,000 microseconds in a minute. At a tempo of 120 BPM, there are 120 quarter notes per minute. There are 24 MIDI clocks in each quarter note. Therefore, there should be 24 * 120 MIDI Clocks per minute. So, each MIDI Clock is sent at a rate of 60,000,000/(24 * 120) microseconds).

A slave device might receive (from a master device) a Song Select message to cue a specific song to play (out of several songs), a Song Position Pointer message to cue that song to start on a particular beat, a MIDI Continue in order to start playback from that beat, periodic MIDI Clocks in order to keep the playback in sync with the master, and eventually a MIDI Stop to halt playback. See Syncing Sequence Playback.

Posted: Wed Apr 12, 2006 2:03 am
by LionsRest
No GarageCube response on the MIDI Clock item?

Posted: Wed Apr 12, 2006 10:20 am
by yves@garagecube
LionsRest wrote:No GarageCube response on the MIDI Clock item?


Sorry we are very busy finishing the 2.5 these days.

Yes, you are right the BPM module does not handle midi clock messages. Now it should be possible to modify the script of the BPM module to get it handle clock messages. Did not have to time to work on that.

Basically the clock messages should arrive in the DirectEvent scripts of the module. I'll check that as soon as the V2.5 is released (if I forget, remember me :wink: ).

Posted: Tue Apr 18, 2006 3:16 pm
by Akira
There is a HUGE problem with MIDI clock, and that is that it slows down modul8 to a crawl.
I sent MIDIclock from my Electribe to modul8, and it made teh program slow down terribly until I pressed stop.

Posted: Tue Apr 18, 2006 7:13 pm
by LionsRest
There is a HUGE problem with MIDI clock, and that is that it slows down modul8 to a crawl.
I sent MIDIclock from my Electribe to modul8, and it made teh program slow down terribly until I pressed stop.

Not surprising. From what I've read (see the MIDI Clock info I quoted earlier) it's unlike most MIDI data Modul8 is set to interpret. Instead of a 'Status' and a separate 'Data' part, it's just a 'Status' message, and you have to calculate the BPM by the timing of the Clock messages. There is no BPM data message. From a MIDI source that has Clock (and maybe more) data spewing out, it may be too much for Modul8 or your MIDI interface to deal with.
I'd suggest disabling MIDI Clock in the Electribe (as well as Active Sensing if possible) to 'thin out' your MIDI data stream. Controls in Modul8 that were assigned to MIDI Clock or other System Realtime data probably have "1/0" displayed, and I'd suggest remapping to other MIDI data.
Hopefully as Yves indicates, the BPM module might make use of MIDI Clock in the future.

Posted: Wed Apr 19, 2006 11:30 am
by Akira
LionsRest wrote:I'd suggest disabling MIDI Clock in the Electribe (as well as Active Sensing if possible) to 'thin out' your MIDI data stream.
There's no way to disable it so I had to use a software MIDI filter to get those out of the system.
I used the Electribe before with m8 2.0 but it was routed through a software pipe so I didn't notice this problem until I connected it directly to the modul8 machine!