How it works

everything about
Virtual Controller
It is an audio plug-in that:
  1. finds attack transients in the input signal;
  2. analyzes them in timbre, speed and velocity;
  3. converts them into MIDI messages.

Let's start

Skip to

 
Hover on the       icon.
Tavola disegno 1.png
Gear you need to start: yours
Use your sound card.

Nowadays every sound card can reach low-latency performance.

drum triggers

dynamic mic

Install Virtual Controller
in your machine

and run your favorite DAW.

contact mic

Tap to sound.

Attack transient will be detected and transformed into MIDI data to let you play with.

Use your microphone.

Feed the plug-in with an audio source. Use whatever type of microphone you have, even a very cheap one: contact mic, condenser mic, dynamic mic, drum triggers, pre-recorded material an so on...

 
The algorithm
 3 
 2 
 1 
 

 1  Hook your microphone up and make percussive gestures.

 2  The software will listen to your execution and find attack transients. 

 3  Once the attack is detected the incoming signal's timbre, speed and velocity are analyzed. 

Analysis signals
it's all about RANGES

When an attack transient is found the incoming audio is analyzed in 3 different aspects: timbre, speed and velocity.
 

These analysis signals are used to produce the MIDI messages you need.

This is done by setting RANGES of minimum and maximum values you move into while you are playing.
For example: higher the velocity higher the note or lower the speed higher the CC value.

This is widely explained in the "Analysis section" chapter down below.

 
The plug-in appears like this
VCBase.png

Attack panel. Attack transients are found in the audio stream. You can use whatever microphone you have. Use Smoothness and Threshold parameters to adapt the audio signal for a better detection.

Analysis panel. When an attack transient is found the signal is analyzed in Timbre, Speed and Velocity. Set the ranges of values in which your execution is going.

Control panel. The analysis data is converted here into MIDI messages. Choose between Timbre, Speed and Velocity and create MIDI notes to play everything you need in your favourite DAW.

Let's see all the sections in detail

Timbre

the "brightness" of the produced timbre.

In the video: playing kick and snare sounds using finger and a sushi stick.

Speed

time elapsed between hits.

In the video: controlling the pitch by how fast the hits are (faster the hits, lower the pitch).

Velocity

how hard the hits are.

In the video: controlling cut off filter, sample length and pitch with velocity.

 
Inside the DAW
AttaccoLearn_Scheme.png

 1 

 2 

 3 

 1  Load Virtual Controller inside an audio track. It will analyze the input audio stream. 

 2  A virtual MIDI port is created when the plug-in is loaded.

Send MIDI messages through this port from the Virtual Controller to a MIDI/Instrument track.

 3  Create a new MIDI/Instrument track. Set the name of the Virtual MIDI port created by the plug-in as your MIDI in source.

The plug-in appears like this.
Nice to meet you :)
VCBase.png
 

Attack section

Find attack transients first.
attack.png
 5 
3
4
1
2

 1  Gain. Adjust the input volume for a better detection. To increase the signal amplitude It is a better choice to use the Gain parameter instead of increasing the gain from the soundcard. It will keep the signal cleaner - with less noise.

 2  Smoothness. It’s easier to detect an attack in a smoother signal. The value to set is in millisecond, so consider how fast you are going to play and do not set this parameter to high. That is because the signal has to go under the threshold and then overpass it to detect an attack.

If this parameter is set:

  • too low the signal will be very irregular with lots of tiny peaks and that will be detected as attacks;

  • too high it takes too long for the signal to decay and it could not touch the threshold before you hit again.

 3  Threshold. Set a threshold for the signal to be exceeded in order to detect an attack.

If the threshold is:

  • too low the device might detect also indesired hits (like background noise);

  • too high the device might do not catch softer hits.

 4  Signal envelope.

 5  Envelope analyzed. White circles appears upon the attacks when they overcome the threshold.

 

Analysis section

Attack transient analyzed and scaled.
 
timbre.png
1
2
T2
T3
T1
speed.png
S1
S2
velocity1.png
V1
V2

 1  Analysis signals ranges displayed.

 2  Analysis signals navigate. Use this tab to switch between analysis signals and edit their options.

Timbre. “Brightness”. The sound of a finger on the table is darker (or less bright) than a wood stick on the table.

 T1  Timbre value found.

 T2  Set min / set max. Make a sound with low brightness and push ‘set min’. Then make a brighter one and push ‘set max’. Now you have a range in which your execution moves in between. The values of the set ranges are displayed under the buttons.

 T3  Range adjustment. Adjust the values manually with the + and - buttons. Push the ‘link’ button to shift up or down the values keeping the same ratio.

Speed. Time elapsed between hits.

 S1  Speed value found. In milliseconds.

 S2  Range adjustment. Push the central button to switch between values in ‘milliseconds’ or synced to the song tempo. Set the min-max range using the menus on the sides.

Velocity. How hard the hit is.

 V1  Velocity value found.

 V2  Curve. Modify the scaling curve using the two sliders. The first one multiplies the values for an exponent (from 0.01 to 100). The second one applies an S-shape formula to the curve.

Control section

Create and send MIDI notes.
 
ControlPanelDefault.png
1
3
4
5
6
7
8
9
10
2
ControlPanel2Examples.png
example 1
example 2

 1  Turn on sender.​ Click on the box to turn on the sender and start to route MIDI signal to one or more ‘Receiver’.

 2  Virtual MIDI port name.​ Here is displayed the Virtual MIDI port name. Select this name in the MIDI/Instrument track you will create to receive MIDI messages from the plug-in.
 

 3  Fixed/Modulate.​

  • Fixed. The sender generates always the same note each detection;

  • Modulate. The sender generates notes according to the chosen analysis signal (3) and the range (4).

 

 4  Timbre/Speed/Velocity. Select which analysis signal to use for the MIDI signal generation.

 5  Range. Set the range of notes to create: left = minimum, right = maximum. All the notes above or below this range are clipped.

 6  Curve. Scale the range created by a Linear/S-shape curve. When it’s linear the values are generated the same as the range set. When is at its maximum the values are pushed towards the minimum and the maximum. This is useful when you want to kill what’s in the middle of the range and use only the two extreme values (perfect for kick and snare setting).

 7  Mode. Create MIDI notes or Control Change values.

 8  CH/CC.

  • Set the MIDI Channel value when you are in 'Note' mode;

  • Set the MIDI Channel and CC value when you are in 'CC' mode.
     

 9  Turn off sender. Press the 'X' button to turn off the sender and interrupt the MIDI messages stream to the Virtual MIDI port.

 10  Last MIDI message created displayed.

Example 1. Messages are created based on the Timbre analysis modulation:

  • note C1 on CH1 if the Timbre value is on the min (or below);

  • note D2 on CH1 if the Timbre value is on the max (or above).

As the Timbre values increase from min to max notes will be produced - in a chromatic scale - linearly - since the curve parameter is set to 0. 
 

Example 2. Messages are created based on the Velocity analysis modulation:

  • CC 2, value 30 if the Velocity value is on the min (or below);

  • CC 2, value 50 if the Velocity value is on the max (or above).

As the Velocity values increase from min to max CC messages will be produced with a light S-shape remapping.

Quick video tutorial

Finger drumming on a table,

two pieces drumkit

 

Now you now something more.

Still have some questions?

Back to

Next