I'm a former professional musician (keyboardist) and Midi user since I was a kid. Unfortunately, I had to abandon music for the past 10 years due to business, life, and college. I'm now back and I want to start developing for music again.
My search lead me to this article here:
https://www.midi.org/midi/forum/1794-c-programing-with-midi-and-playback-sequence
I was wondering if this is still relevant today with all of the new technologies, tools, and frameworks to make music.
In other words, I'm not interested in re-inventing the wheel. Although writing something from scratch is way easier, at least in my perspective, I do not want to go that route.
Right now, all I want is to make a sequencer. I want to make something like a Rhythm Box that routes Midi to another sound synthesizer for playback. Of course, I'm looking for something advanced with all features you can find on a professional arranger keyboard.
Could someone here point me in the right direction, where to look first, and how to get where I want quickly?
I tried to mention Juce in the first post, but the site considered it as spam. Anyways, I just wanted to say Juce is way beyond what I'm trying to make. Juce is a big framework that does almost everything from audio, DSP, and Midi to GUI.
This forum is infested with spammers, so the admins have to delete suspicious posts. I guess, now that they know you are not a bot, you can share links.
The problem with C/C++ MIDI APIs is that they are completely different on Windows/Mac/Linux platforms.
If you are writing only for one platform, that should not be a problem. Just learn the platform-specific API and use it.
Otherwise, JUICE may be a better solution.
Or, if you are good with JavaScript, you can try to write an in-browser application.
Thank you for your reply. Well, I'm not targeting desktop PC apps at all. I'm working on a hardware project, you can say hardware sequencer, groove machine, etc.. I'm doing embedded C most of the time, and I have no problem using some C++.
Again, JUCE is huge for what I'm trying to do, has a steep learning curve, and big overhead/footprint to implement in hardware.