views:

66

answers:

2

Hello!

How do I write a chord, i.e. a NoteOn of seveal notes on each above the other at the same time line?

Chord

What should be the message for this chord.

+4  A: 

MIDI is a serial interface, so you can't actually send two 'Note On' commands at the same time - you physically send them one after the other, but the latency is low enough that although they start playing sequentially, the ear cannot detect the delay.

Jonners
ok? please elaborate more if possible.
Shimmy
MIDI overview description on Wiki: http://en.wikipedia.org/wiki/Musical_Instrument_Digital_InterfaceBasic introduction to MIDI commands, including Note On and Note Off: http://www.computermusicresource.com/MIDI.Commands.html
Jonners
@Shimmy You would start each note in the chord in rapid succession, each note-on in the next message. So the notes in the chord start a few milliseconds apart. We can't tell the difference normally between the start of different notes that far apart in time if the sounds arrive at the same ear (though we can if the *same* note is that delayed by fractions of a millisecond between our two ears).
Pete Kirkham
@Pete: a few nanoseconds is more like it. A millisecond is a pretty long time in MIDI.
MusiGenesis
@MusiGenisis messages are 3 bytes at 31.25kbits per second, which is just under one millisecond per message. (Or at least they were when I was in an electro band in the 80s)
Pete Kirkham
@Pete: let me guess - a mullet, a sports jacket with the sleeves rolled up, and a guitar synthesizer? :)
MusiGenesis
@Pete: I think your numbers are correct as far as the specs for actual physical devices are concerned, but for code executing on a PC those limits don't apply. I think.
MusiGenesis
A: 

You can also use MIDI SYSEX. Syntax of SYSEX Message vary from synthesizer to synthesizer, for instance Yamaha PSR Series Keyboard uses XF Chord Events (which is SYSEX based).

Khurram Aziz