Professional Sound API

I’m interested to know what API model Haiku will be implementing to allow professional sound applications to be written.

On Windows we have a variety of API’s such as WDM from Microsoft, ASIO and VST/VSTi from Steinberg and Rewire from Propellarheads. On apple we have AU and Jack OSX and on Linux we have quite a few but the best appears to be Jack and ALSA. There are other ones from Pro Tools too.

So on Haiku what’s it going to be?

A professional level sound API must be low latency to allow realtime dsp of audio and allow the audio to be routable between hardware and software and between software and software etc.

Obviously the appeal of Haiku is it’s ultrafast use of multi core processing and it’s heritage coming from BeOS, the media OS.

I’m not too concerned about midi since this appears to be already done and in the API, but what about sound? I noticed OSS has come along but is this the best on offer? I realise that hardware support is needed and it seems to come with alot of driver support. But what I am talking about is professional level implementations for IO, routing and dsp processing.

So what are the long term goals for getting audio up to scratch in Haiku and will this become part of Haiku for professional sound and have it’s own native API.

Haiku implements the BeOs API

10 years ago BeOs provided extremly low latency capabilities ( a well designed API combined to a good soft-realtime kernel ) much more better than windows/linux or even Mac.
Haiku aims this goal.

the BeOs API documentation for media processing can be found Here :
www.haiku-os.org/legacy-docs/bebook/TheMediaKit_Overview.html

…and you should have a look to the Haiku’s Cortex demo program. It shows media processing concepts very well. (IMHO)

Note that the OSS API is not available in Haiku. OSS is just a fall-back solution for missing drivers ( and so provides a good hardware support for a wide panel of sound devices)

I’ve just had a quick glance at the media kit from the Be Book. This seems to have everything you would need for developing professional sound production programs. Has this media kit actually been implemented in Haiku? Does Haiku come with this media kit, I presume it does? Is this Be Book documentation the same for Haiku’s media kit?

Yes, it has been implemented and it is certainly in Haiku. I do not know whether it is already feature complete though (it might be). But being alpha software, it will most likely still have some bugs.

You may be interested to know that, back in the days, Tascam used BeOS for some of their systems. :slight_smile:

Yes I am aware that alot of professional hardware solutions were built on top of BeOS. Radar is another highly regarded solution. Obviously these companies would have utilised the media kit that came with BeOS to produce their software. I wonder if they will release their recording solutions for Haiku as a native solution?

I have just downloaded the CD image and am running it now. It appears to be fine and I’m really impressed with the Cortex program. This is exactly what I was hoping would be available; obviously this shows routing possibilities and I noticed a few nice touches such as an example FlangerNode.

I only briefly read through the documentation for the media kit and midi kit but as far as I can see the API seems complete, which is good since it would be crazy to have this and people bring in their own media frameworks such as VST etc. So it’s “nodes” then? Cortex is essentially Jack on Linux.

I would rather say that Jack on Linux attempts to be like Cortex on BeOS/Haiku, but I am obviously biased. :slight_smile:

I personally know of at least one company that is eagerly waiting for R1 to be released so that they can migrate their professional audio system(s) from BeOS to Haiku. I would not be surprised if more follow suit.

Well I would suggest that Tascam and Iz (Radar) might be keen on releasing their hardware solutions for Haiku since they probably used the media and midi kits to develop them for BeOS in the first place. I don’t know of course but it makes sense. Would it be a good idea to contact them and suggest they release their software DAW’s as Haiku native solutions. Doesn’t have to be open source of course, it’s just better if a professional supplier of DAW solutions was to adopt Haiku early on. Maybe someone at Haiku could contact them about this?

While I’m not sure these professional companies have too much interest going over 10 years old code - they have moved on long ago - it won’t hurt to mail them about Haiku. And “someone at Haiku” could as well be you. :slight_smile:
This is an open, community-driven project, every one can help. In this case, I even think an email from a user in the audio field, showing interest in Haiku and some specialized software, may be even better. If it’s well done by more than one guy, it may even have an impact… :slight_smile:

Regards,
Humdinger

don’t know if you have seen this write up of cortex but you might be interested in the VST plug-ins information near the bottom and how the vst plug-ins and media kit can work together

http://betips.net/1997/09/09/fun-with-cortex/

The one that I was referring to has not moved on and still uses BeOS for their systems. It’s not TuneTracker that I am referring to, btw. :slight_smile:

I suspected as much. TT isn’t actually the kind of audio application I had in mind. TT is more of an automation software that schedules the playback of audio files with some live mixing. Cool stuff, but not in the same boat as iZ/Tascam with their DAW or any other audio manipulating app.
TT has been running BeOS for the past 10 years. Migrating to Haiku should be relatively easy and is a sensible step to stay in business. Others would have to resurrect code that hasn’t been touched for 10 years, while their money making apps have evolved on other OSs.

Regards,
Humdinger

You misunderstood what I said. As I said, I was NOT referring to TuneTracker. Also, as I said, the company I was referring to are still using BeOS for their product NOW, that is, they have NOT moved on to another OS, and thus DO NOT need to resurrect old code to migrate to Haiku.

I may add that the company’s products are professional audio systems for studios, the film industry, live performances, etc. Just thought I would clarify.

oops. missed the “not”…
is there a reason not to name the company?

This is of interest and is relevant.

Ben Loftis at Harrison was involved in the creation of MixBus which is a Harrison product for OSX based on Ardour. What’s interesting is that he wrote BeSting and IKIS, which was originally written for BeOS.

http://www.benloftis.com/portfolio.html

He’d be a great person to get involved in developing software for Haiku, if he isn’t already involved that is. I sent him a quick email but the developers should definitely contact him. He’d be a great person to get behind this.

What about latency issues with the MediaServer?

Anyway, I’m in the process of porting (S)LV2, LADSPA, DSSI and other sound processing related stuff to Haiku, probably going to release binaries in June or something (LADSPA and DSSI SDKs and some plugins already working, but I have no time right now - damn university).

When you say you are porting sound related stuff to Haiku what specifically do you mean? LV2, LADSPA etc are programming kits for making plug-ins on Linux. On Haiku this is not required, since the API for writing plug-ins is in the media and midi tool kits. Having VST, ASIO, AU, LV2, LADSPA etc on Haiku is just not needed. It’s also going to mean that the sound infrastructure will become messy. Short term to allow things to run then yeah good idea but long term it’s a big no no in my opinion.

I am interested to know what you are actually porting though :slight_smile:

He is probably porting just the APIs for now, and will probably make media node adapters that allow you to use the plugins using this API in the media kit, this does not really make anything messy but allows the use of other plugins in Haiku thus avoiding rewriting them unless they are really desired… would be nice to have a open source audio processing workstation on haiku but that will take time and need someone to be dedicated.

I think short term the idea of porting various third party API’s to allow ported plug-ins and other software to run is ok but long term it would be better to have native low level API “add ons” - is this the correct term for plug-ins in Haiku? I think there is already a VST wrapper for the media kit.

Exactly.

To be more precise, I’m porting the LADSPA and DSSI SDKs (DSSI needs also libdssialsacompat, and that one is already done too), SLV2, some plugins and other stuff I wrote, including a compiler for a DSP language (compiles to LV2 plugin source code), a LADSPA-to-LV2 and a DSSI-to-LV2 bridge (a VST-to-LV2 bridge will come too sooner or later), so that there only needs to be a LV2 media kit addon (and this will probably be done by another guy from the Italian Haiku user group).

Regarding creating a Haiku-specific API, I would rather suggest the use of LV2: it’s simple, decentralized, powerful and, above all, not UNIX-specific and extremely extensible.

The Media Kit is already a generic API for audio and video.
I don’t mind having LV2 as an API for plug-ins since it means they can be portable and we can use ones not expressly written for Haiku, I would suggest that anything meant only for Haiku should use the Media Kit and make media nodes for the filters/other things that it provides. I would really really really like someone to make cortex better and to add more programs that can be used together to be an audio processing and composition workstation, not that I have a need for such a thing. :confused: