Working with MIDI (in C++): sequencing, I/O (books, tutorials etc)
-
- KVRist
- Topic Starter
- 278 posts since 1 Feb, 2014
I want create some simple midi sequencer, send midi and recieve midi midi keyboard or virtual midi port and record events from keyboard in to sequencer.
Where can I found good tutorials or books about MIDI? I can't find much about for that, but I found some very old books which are not in electronic format, even maybe they are not printed todays (C Programming for Midi by Jim Conger). There is some book The Audio Programming Book, it contain some MIDI, but I am not sure if it will be enough for my needs. What I like is, it have electronic form. Is The Audio Programming Book good for learn MIDI?
I have some knowledge in C++, I found some library like rtmidi or Microsoft have one. I know JUCE have some midi, but I am more interest in creating it myself from scratch, or without frameworks like JUCE is.
Where can I found good tutorials or books about MIDI? I can't find much about for that, but I found some very old books which are not in electronic format, even maybe they are not printed todays (C Programming for Midi by Jim Conger). There is some book The Audio Programming Book, it contain some MIDI, but I am not sure if it will be enough for my needs. What I like is, it have electronic form. Is The Audio Programming Book good for learn MIDI?
I have some knowledge in C++, I found some library like rtmidi or Microsoft have one. I know JUCE have some midi, but I am more interest in creating it myself from scratch, or without frameworks like JUCE is.
- KVRAF
- 15258 posts since 8 Mar, 2005 from Utrecht, Holland
Short outline:
* query which midi devices there are
* select a device and open it for input or output
* start sending or receiving streams of messages
* properly close the device when your app closes
Each message starts with a status byte (first bit is a 1) and a series of data bytes (first bit is 0.) Dividing the stream of bytes into separate message is probably something already done for you if you don't use the lowest layers of accessing midi devices.
An overview of the messages: https://www.midi.org/specifications-old ... nce-tables
If you're starting from scratch on Windows, this might be helpful:
https://docs.microsoft.com/en-us/window ... i-services
https://docs.microsoft.com/en-us/window ... -reference
What do you mean by "electronic form" ?
* query which midi devices there are
* select a device and open it for input or output
* start sending or receiving streams of messages
* properly close the device when your app closes
Each message starts with a status byte (first bit is a 1) and a series of data bytes (first bit is 0.) Dividing the stream of bytes into separate message is probably something already done for you if you don't use the lowest layers of accessing midi devices.
An overview of the messages: https://www.midi.org/specifications-old ... nce-tables
If you're starting from scratch on Windows, this might be helpful:
https://docs.microsoft.com/en-us/window ... i-services
https://docs.microsoft.com/en-us/window ... -reference
What do you mean by "electronic form" ?
We are the KVR collective. Resistance is futile. You will be assimilated.
My MusicCalc is served over https!!
My MusicCalc is served over https!!
-
- KVRist
- Topic Starter
- 278 posts since 1 Feb, 2014
Electronic form = download book in pdf format or any format which I can open and read on PC.
-
- KVRian
- 537 posts since 23 Jan, 2008 from Hamburg, Germany
I can really recommend the book that you've mentioned. You should try to get a copy even if it's going to be an analog reading experience.
This book explains precisely how MIDI works from a programmer's perspective, no more, no less. It uses standard C code and the author doesn't try to sell his own framework to you (like many modern books do).
Of course it misses some newer stuff like MPE but this is easy to add if you know how the basics work.
This book explains precisely how MIDI works from a programmer's perspective, no more, no less. It uses standard C code and the author doesn't try to sell his own framework to you (like many modern books do).
Of course it misses some newer stuff like MPE but this is easy to add if you know how the basics work.
-
- KVRist
- Topic Starter
- 278 posts since 1 Feb, 2014
I mentioned two books, you mean C Programming for Midi by Jim Conger ?
-
- KVRian
- 537 posts since 23 Jan, 2008 from Hamburg, Germany
Yup.
-
- KVRist
- Topic Starter
- 278 posts since 1 Feb, 2014
Thanks.
- KVRist
- 163 posts since 8 Mar, 2003 from Cologne