Author Topic: InstantSampler is a cross platform VST plug-in instant MIDI sampler  (Read 1855 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4258
InstantSampler is a cross platform VST plug-in instant MIDI sampler


    * MAC OS X universal binary
    * Windows VST
    * The source code
    * "Remix" Demo1
    * "Looped scrolling" Demo2

It is based upon the open-source DestroyFX plugin framework, and with some minor changes it proved to be an excellent starting point (for this, many thanks!). The DestroyFX plugin framework also makes it possible to compile the plugin on Windows, making it a VST. Anyone who is willing to do that is very welcome!



The plugin could be named "audio copy-paster" or "snippet looper", but I choose to call it InstantSampler because it does what a simple 'normal' sampler does (playing audio fragments by MIDI notes), but it takes its samples (instantly) from the audio input whenever you hit a specific MIDI note for the first time. Every consecutive time you hit the same MIDI-note, it plays back the recorded fragment (or shorter, depending on the note's length).

So, is this plugin an instrument (as the name 'sampler' might suggest), or an effect? Technically, it is an effect, but one that is controlled using MIDI. But, in Logic for instance, it is considered to be an instrument, played with MIDI, while having an audio side-chain input. The bottomline is: It needs both audio - and MIDI input!

When you play the sampled fragments, you have the possibility to vary the following:

    * velocity - Playback volume.
    * attack and release - Both attack & release times are configurable.
    * floor - The level of the input audio which is passed along unaffected when no samples are played.
    * playback speed - Speed up or - down the sample playback using the pitchbend control with a configurable range.
      reverse playback - Playback in reverse ... this might sound a bit tricky at first, so look at the figure first (you might get it right away).

      You can specify the 'reverse (velocity) range' (let's call it R), which splits the velocity scale into two parts: 0 ... R, and R+1 ... 127. If a note is played with a velocity in the lower range, then the note is played in reverse, but with the applied velocity that goes from 0 to 127 with R mapped to 127. If the velocity is in the higher range, it is played in normal order, also with a range from 0 to 127, but with R+1 mapped to 0.
    * New: looped scrolling - You can scroll through the sample while playing little loops using the modulation wheel. If the modulation wheel is at rest (value 0), no looping and scrolling is performed. But once you start modulating (values > 0), then the InstantSampler starts looping bits of the sample at the position controlled by the modulation amount: So, for example, full excursion of the wheel (value 127) means you loop over the last portion of the sample.
    * New: loop size - Sets the size of the loops which are played when using the modulation wheel.
    * New: loop fade length - Sets the fade-in and -out lengths of the loops which are played when using the modulation wheel.
    * clear memory - Assign a MIDI note that (when played) just clears all samples recorded so far. This is useful if you have a 'copy-paste phrase' programmed in a MIDI region, and want to reuse it at more than 1 place in your music. Just start or end your phrase with the 'clear memory note', and the second time the phrase is playing, it will record the input audio again.
      This is also handy when using the InstantSampler plugin in a live setting, in case you want to clear the samples you took so far (assign it to the lowest key on your keyboard, for example).

When could this plugin be usefull?

The reason why I need such a plugin is this: I want to 'remix' my music (copy-paste bits, to make, for instance, stuttering effects), while maintaining complete control: As music is typically composed in a bunch of channels and mixed together in a bus, I could bounce this mix to an audio file first, and then chop that one up. But then if I want to change something in an individual channel after doing the remixing, I need to re-bounce and re-remix everything all over again. Obviously, you don't have to do that using the InstantSampler. I could also chop up all the channels individually, but that is tedious and errorprone, and would definitely not sound the same.

In this remixing scenario, I turn up the floor parameter to the max, so the InstantSampler will be passing the audio from the input unaffected most of the time. But at some specific points (at the end of a verse, or whatever), I program some stuttering, looping, fading and pitchbending stuff to make it even more interesting.