Crossfade between several articulations

Things that make the work with LinuxSampler & Co easier, better, faster, louder and more sexy. Including friends like JACK, ALSA, etc.
Post Reply
User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Crossfade between several articulations

Post by dahnielson » Tue Sep 02, 2008 10:26 pm

Backgrond
The GIG format was derived from the DLS format (a MIDI standard). The DLS format is quite capable, but Nemesys decided to drop big parts of it when they created Gigasample to make the format easier to implement. (In hindsight, if they'd used DLS from the beginning maybe they would have stayed competitive and TASCAM wouldn't have killed Gigastudio.) One important thing that was dropped is overlapping regions, a feature now used by many instruments in the Kontakt and SFZ formats. It probably made sense at the time (considering the hardware available) and greatly simplified the playback code. But it also meant that you could only crossfade between two types of articulations per instrument.

E.g. when Gary Garritan created Garritan Orchestral Strings (a.k.a. GOS) all he could do was to create two separate instruments to crossfade between dynamic layers and vibrato layers. It was impossible to create a crossfade between the dynamic samples (e.g. piano to forte) controlled by the modwheel and a crossfade between the vibrato samples (e.g. no vibrato to heavy vibrato) controlled by the expression pedal (or any other CC) in the same instrument.

Solution
But there is a work around with the help of some nifty MIDI programming:
  • Let's say we have two instruments that both crossfade between vibrato layers, so that we can use the modwheel to control the amount of vibrato. One instrument contain samples for the piano dynamic and the other forte samples.
  • Create two sample channels, set them to two different MIDI channels and load our two instruments into them.
  • Make sure both sample channels receive the same modwheel and note data (just copy it).
  • You can now crossfade between the two channels by sending MIDI volume control events (CC #7) to the channels. Use your sequencers control automation to increase the volume on one channel while decreasing it on the other.
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