atsushieno / managed-midi

[Past project] Cross-platform MIDI processing library for mono and .NET (ALSA, CoreMIDI, Android, WinMM and UWP).
MIT License
195 stars 26 forks source link

Some basic hints and explanation #45

Closed eriveraa closed 5 years ago

eriveraa commented 5 years ago

In this code: output.Send(new byte [] {MidiEvent.NoteOn, 0x40, 0x70}, 0, 3, 0);

what are the channel, pitch and velocity values? (i am new with this library, please help!) THanks.

atsushieno commented 5 years ago

I wrote some example usage on README.md before, there are byte constants in MidiEvent etc.

For more general learning, maybe some web pages like this helps. https://www.wikiaudio.org/midi-channel-messages-tutorial/

(I will close this issue after some quiet days, but feel free to keep shooting usage questions here if any further, I'd be happy to help.)

eriveraa commented 5 years ago

Thanks, but i still don't get it. In the link mentions that the first byte is status (voice message + channel) and in the example is just MidiEvent.NoteOn, so where is the channel?

atsushieno commented 5 years ago

Maybe the wikiaudio description is not easy to understand because it uses binary (0 or 1) representation for MIDI status bytes - they say 1001nnnn where nnnn is the channel part. In MIDI 1.0 world, a channel number is 0 to 15, which fits 4 bits. Note On message is 0x90 - 0x9F in C# notation. Does this make better sense?