views:

62

answers:

2

What is the best API to utilize in developing an application that handles both realtime MIDI and audio input and output? This would be for an application that is used in the process of making music as opposed to playing audio or MIDI files. I'm aware that this may be a subjective question, but if you know of an API that is dominantly used for these purposes, please share it.

I'm agnostic about which language the API is for, and I also don't care about portability. The real concern is for an API that is well documented, well designed (e.g. thought out and intuitive to developers using it), and actively maintained. OS portability would be nice, but it is second to having an API/Language that meets the previous requirements.

Please note that the emphasis is not on API's for sound synthesis or for composing music with code. It is intended for the handling of sound file and MIDI data in a real-time context.

+1  A: 

It's probably a pretty roundabout way of doing it, but I'd be pretty excited to work with MIDI in HTML5. Writing a MIDI synth in JS would probably be rather trivial, thanks to the new audio APIs that are making their way onto the web. Since it's in a web browser, you can do some of the preliminary processing on the client and then do some of the hardcore processing on the server.

I should also mention that HTML is a great language to create a GUI for this sort of app, and the cross-platform benefits are inherent in the fact that it's made for the web.

mattbasta
I have my doubts that it'd be trivial -- JavaScript performance is getting quite good, but good enough to easily synthesize polyphonic audio on the fly? Coupled with the fact that MIDI is entirely unsupported for the <audio> tag in every browser, I'm not optimistic right now.
Weston C
Really hoping so. Paired with things like http://www.drawthedots.com/abcjs, it would be awesome
Chubas
A: 

You might want to look at some unconventional "languages" (well, dataflow programming environments) like:

I've also done some mucking about with Java and MIDI and had a good time with that.

Weston C
Thanks Weston, but after years of using pd, Max, Reaktor, and Nord Modulars, I'm actually looking for _alternatives_ to visual-patching / dataflow environments.You said you've used MIDI with Java - are you referring to the javax.sound.midi API's or something altogether different? I've written some things in that API, but I am actively seeking alternatives to it as well.
noneme