Re: [linux-audio-dev] Re: EVO-Linux Physical Modeling HD Sampler

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Re: EVO-Linux Physical Modeling HD Sampler
From: Juhana Sadeharju (kouhia_AT_nic.funet.fi)
Date: Mon Jul 17 2000 - 23:50:57 EEST


>From: Benno Senoner <sbenno_AT_gardena.net>
>
>No K2000 here , but webpointers and/or a detaliled description about the
>structure should give us some insight
>Are they available somewhere ?.

ftp://ftp.youngchang.com/pub/Kurzweil/Pro_Products/

Look at every directory because latest K2600 directory don't have
the Algorithmic Reference (which is superb). Manuals can be found
from there too.

>disadvantages etc.
>
>Ok let's start:
>
>VOICE:
>
>a voice is basically a sample played back by the engine which has the
>following characteristics:
>
>- pointer to sampled data
>- len of sampled data
>- loop point begin , loop point end
>- oneshot / looped
>
>- base volume
>- base pitch
>- base panorama (balance)
>- base filter cutoff
>- base filter resonance
>
>for each parameter
>(volume , pitch , pan , cutoff and resonance)
>
>there is an:
>attack envelope
>sustain envelope
>release envelope
>
>each envelope is an arbitrary succession straight lines
>which consist of:
>
>validity in number of samples
>starting value
>delta per sample ( can be positive and negative,
>higher values will produce steeper , lower values flatter lines)
>
>This way the envelope can have an arbitrary for man
>the various sections do not need to be interconnected,
>that means the value can jump abruplty between two
>sections.
>You can even simulate a custom sampled envelope
>by setting the number of sampler to 1 , delta to 0
>and provide a new start_value for each sample.
>There is basically no limit to the envelope form,
>with the big plus that you need very little memory because
>it most cases successions of 10-100 straight lines will
>suffice to form even a very complex envelope.
>
>When you press a key , then the attack envelope
>modulates the associated parameter.
>As soon as there is no more data left in the attack
>envelope structure, the envelope code switches
>to the sustain envelope.
>
>The sustain envelope will be looped during the
>note-sustain phase.
>(as soon there are no envelope points left,
>the table will be scanned from the beginning)
>
>When the key is released , the release envelope
>becomes active.
>
>Notice that all the above parameters can be
>modulated by such envelope structures,
>in a completely independent way.
>
>eg: the volume attack envelope could for example
>only last 100msec , while the pitch attack envelope
>lasts for 500msec.
>
>This will allow complex tremolo , vibrato or filter wah wah
>effects.
>
>All the above parameters can additionally be modulated
>by an external source, which could be an LFO or a
>MIDI controller.
>
>Another thing we could do is to map a MIDI controller
>to different envelope structures, so that
>differen controller values (the modwheel or breath-controller)
>could for example change the attack behaviour of the sample
>at the next note trigger.
>(would this feature be useful ?)
>
>So far for the voices:
>
>PATCH:
>is the combination of an _arbitrary_ number of VOICES.
>
>it is a structure which says:
>
>play voice1 with parameter set 1 along with voice 2 with parameter set 2
>and so on.
>
>since the parameter set contains the base_volume for example,
>you get volume crossfading automatically.
>For example if you need a velocity crossfading with 4 sections,
>just fill out the MIDI mapping table (velocity, keypitch) with pointers
>to the PATCHes with the right voices and appropriate volume values.
>
>You could even construct a velocity layering which at
>let's say velocity 1-32 plays ony one voice,
>at velocity 32-63 two voices and at velocity 64-127 four voices
>all nicely crossfaded by arbitrary values.
>
>The only thing I have still to figure out (at techincal level) is a way
>to avoid to waste memory with empty pointers in the case you do not
>need all the complex mapping features.
>
>
>an insrument file is basically a file containing:
>
>-all the samples
>- the mapping tables: velocity,pitch --> patch
>- the PATCH entries (all with their own parameter sets and pointers to
>sampledate)
>- the envelope structures used by the PATCH set
>
>
>Obviously the voices will be routable through a FX section
>(the FXes should be loadable plugins) , with dry/wet parameter.
>
>
>Ok, finish for now.
>
>let me know what you think about the above model.
>
>Benno.
>


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Jul 18 2000 - 00:24:32 EEST