AKAI generic playback

You name it!
Post Reply
User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

AKAI generic playback

Post by dahnielson » Tue Sep 30, 2008 12:14 pm

Exchange reposted from the mailing list for the benefit of all:
Oliver Jaun wrote: First I would like to thank everyone who is involved in the development. I think Linuxsampler is a great project. However I'm currently still using my (old) Mac and my EMU-Sampler because my Linux-Machine does not have enough power... Hopefully soon I'll buy a new computer.

I bought some AKAI-Sample CD in the past (although the EMU has its own format). So I would like to use them with Linuxsampler of course. I saw that there is already an AKAI File-Loader but no generic playback. Are there any plans to implement that in the feature? I know that there was a discussion about a new format etc. However I think it would be great to have AKAI playback because it is a very wide-spread sample format.

If there is nobody working on it then I can maybe help. I'm a software developer and I have have experience with Java and also a bit with C and C++. I don't know how much time I will be able to spend on it... but let's see. I also was thinking about a converter (akai to gigasampler...). Maybe that would be better/easier? What do you think? Do you think something like this makes sense? If so: what would be the best way to start? Is the documentation up to date?
Benno Senoner wrote: Since the AKAI format is quite simple compared to the GIG format and does not offer that much features it would perhaps be easier to write an AKAI to GIG converter using libakai to read the data and libgig to write the GIG file.

I am not sure if AKAI samples can be played back 100% accurately by a GIG engine (perhaps the filters will differ a bit) but I think for most uses the approximation will be very good.

So IMHO it would make more sense (=lead to faster results, no messing around with real time code, memory management, etc) to just write such a converter (especially given the fact that the support libs to read akai and write gig are already available) rather than writing a full akai playback engine which takes more time. but if someone wants to add AKAI playback to LinuxSampler he is of course welcome. :)
Christian Schoenebeck wrote:
Oliver Jaun wrote: I bought some AKAI-Sample CD in the past (although the EMU has its own format). So I would like to use them with Linuxsampler of course. I saw that there is already an AKAI File-Loader but no generic playback. Are there any plans to implement that in the feature? I know that there was a discussion about a new format etc. However I think it would be great to have AKAI playback because it is a very wide-spread sample format.
I fear it's currently not a priority at the moment, at least not for me. There are far more interesting things to do at the moment. ;-)
Oliver Jaun wrote: If there is nobody working on it then I can maybe help. I'm a software developer and I have have experience with Java and also a bit with C and C++. I don't know how much time I will be able to spend on it... but let's see. I also was thinking about a converter (akai to gigasampler...). Maybe that would be better/easier? What do you think? Do you think something like this makes sense? If so: what would be the best way to start? Is the documentation up to date?
Yeah, starting to do it yourself has much more chance of making an Akai engine reality than waiting for it. I wouldn't build a converter I think, because a) you would have to cope with the problems of both format worlds (Akai and Giga), b) less convenient for the end user, since he's forced to convert it in order to use it with LS and c) I think its easier to write a light weight Akai Engine for LS.

Unfortunately we don't really have developer documents yet about the sampler. I once started it but never finished it. There's only the LSCP documentation, however which isn't much of interest for that task.

Best thing would be to readup on the gig engine code (directory src/engines/gig). Of course the Akai engine would be much simpler, but just to get a basic idea. You'll notice that the "gig::Engine" class and its "gig::EngineChannel" class are derived from an abstract base class "Engine" and "EngineChannel" respectively (which you find one directory above, that is in src/engines). So you would e.g. create a new directory src/engines/akai and place the code for the new Akai engine there and derive from the mentioned two base classes. Of course there are a lot of decisions to make however. E.g. whether you want to provide disk streaming as well for the Akai engine or if it would be sufficient to stick with simple RAM playback for it, since Akai patches are relatively small anyway. One should also decide how to avoid code duplication. Probably it would be a good idea to extract some of the gig engine code into another base class which is then derived by the gig engine and the new Akai engine.

Final step would be to adjust the EngineFactory and EngineChannelFactory classes (also in src/engines), so the sampler knows about the new Akai engine.

If you have questions, we'll certainly assist you. :-)
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

Post Reply