|
From: Benno S. <be...@ga...> - 2003-08-05 21:13:56
|
Scrive Steve Harris <S.W...@ec...>: > > yes. It is not a trivial task but should be manageable. > > (some modules require special care like filters that mantain state > information > > etc). > > Yes, but if we use LADSPA's API (as was suggested a while back) this > should be a non-problem, cos LADSPA defines how this is handled. Ok but keep in mind that the synthesis network is not composed only of audio modules like LADSPA but modulators, event generators etc thus perhaps ideas can be taken from LADSPA but will probably need to be extended. We will see as we progress. > > > > Some questions: what does SamplePtr do? > > > > Basically when a MIDI event occurs the MIDI Keymap module picks the right > > sample (key and velocity mapping) and sends pointer to sample data and > > sample length to the sample module. > > Same must be done for looping etc. > > As for modulators I was thinking using events that send (base, increment) > > values. That way you can approximate complex curves via small linear > segment > > while still having a fast engine. > > Wouldn't a streaming approach be more appropraite? So the sample source > module streas PCM data to the audio output module. You mean using the straming approach for audio or for modulation data ? For audio it's obvious that it is a continuous stream of data but for modulation data I was thinking about using events as described above. That way you avoid wasting memory, bandwidth and cpu cycles doing like other modular synths where you send modulation data as it were an audio stream (at k rate like in csound). Of course nothing forbids us to implement that approach too. But I think modulation by linear segments is flexible enough and is IMHO one of the fastest approaches since the amount data moved between modules is small. If you meant a different thing please let me know. (or if your method is more efficient than mine) Benno ------------------------------------------------- This mail sent through http://www.gardena.net |