with VST.NET
Kevin Reed
Overview
Project motivations What is Virtual Studio Technology (VST)? What is VST.NET? Audio Processing MIDI Processing Combining Audio & MIDI Processing Synth Future Developments
Project Motivations
Show how easy it is to create effects and virtual instruments using VST Use VST.NET to create VST using C# .NET
Developed by Steinberg in 1996 Provided a way to developed software based emulations of audio processing hardware In 1999 included support for virtual instruments (VSTi) Neon (VSTi) - the first virtual analog synth
VST.NET
Allows for VST development in any . NET language (C#) Provides a structured framework Easier to learn than VST SDK
Definition:
VST Host = Digital Audio Workstation (DAW) = Reaper =
VST.NET Framework
Audio Processor
MIDI Processor
MIDI Source
Plugin Editor
Plugin Programs
Definitions
Audio Buffer - temporary package of audio data to be sent to playback MIDI - (Musical Instrument Digital Interface) a way to communicate musical data from an input device
Audio Processing
VST Host (Reaper)
Audio Buffers
Audio Processor
Audio Processing
Done in blocks
Block size set by VST host
-1
MIDI Processing
Audio Processor
MIDI Processor
MIDI Processor
Processed MIDI Event
Audio Processor
Synthesis Logic
When a note is pressed
a. Determine note frequency b. Generate sound wave based on frequency i. Sine, Square, Triangle, Sawtooth c. Apply Attack, Decay, and Sustain d. Fill audio output buffers until release
Synthesis
Waveforms
Synthesis
ADSR Attack time - the volume change from zero starting when a key is pressed Decay time - the volume level change after the attack is finished Sustain level - the fundamental level of the signal that is prolonged until the note is released Release time - the volume change from the sustain level to zero after the key is released
Synthesis
ADSR
Note On Note Off
c De ay
ack
Amplitude
Sustain
Re le a
Att
se
Time
Future Developments
Choose waveform in plugin editor Combination of waveforms Edit ADSR parameters in real time Legato - tie notes together Portamento - glide from one frequency to the next Polyphony - multiple notes at the same time Plugin Programs
Sources
VST.NET http://vstnet.codeplex.com/ Marc's Blog Cabin - http://obiwanjacobi.blogspot. com/2008/06/vstnet-plugin-structure.html Waveform - http://en.wikipedia.org/wiki/Waveform ADSR Envelope - http://en.wikipedia. org/wiki/Synthesizer#ADSR_envelope
Questions?