From: Steve H. <S.W...@ec...> - 2002-11-04 12:16:32
|
[Peter, I'm assuming you meant to mail this to the list, I'm replying to the list anyway ;)] As discussed on IRC last night, the problem is that some sample formats have features that can't easily be implemented with a disk based generic engine, for example the AKAI sample format allows you to vary the start point with note on velocity (though I dont know by how much). I think that some hardware samplers allow you to modulate the loop points in realtime, though the 3000 series AKAIs cannot aparently. So, I think it is better to have seperate sub-engines that communicate with the main engine at a high level (eg. to the sub-engine: "Here is a bunch of event data ...", from the sub-engine: "I want 8 outputs", "here is a lump of audio data ..."). Though obviously data transfer would be callback based or something. The alternative would be to normalise all the sample formats into one, grand unified sample format and just handle that (I believe that is how gigasampler works?). I suspect that is less efficient though, and it doesn't allow for specific support for styles of sample playback. I think it mould make sense to preparse the event data, rather than trying to handle raw midi. Mayeb using something like the OSC event stream? Anyone know of other preparsed event formats? - Steve On Mon, Nov 04, 2002 at 09:06:08 +1000, Peter wrote: > i persoanlly like the idea of a sampler construction kit... > or at least a modularised sample engine.. > > my agenda is more towards loop sampling/re-sequencing... > normal event handling in samplers(especiall the akia's) doesn't lend > itself that kind of stuff > i'll probably be more inclinded to work towards the yamaha style of > things (ish)... > > i've been playing around with some ideas over the past few months > > i'd like for the sampler disk streaming, audio i/o and midi channel > routing (eg. noteon/off,pith,mod NOT cc or rpn/npn data) to be handled > by the base engine > aka i/o engine > > then, when a file is loaded onto a layer (midi-channel) > the base class calls the respective sampler extension.. > which handles everything on the channel, from sample-loading to > note-on-off handling to audio and even midi outputs..depending on > the type.. > > that way you could have say, a instrument extension, which could load > dls's or soundfonts > a akai extension that loads akai files > etc.etc. > umm.. > i guess thats enough for the time being > cheers > [3] |