Anda di halaman 1dari 19

Software Synthesizer

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

Virtual Studio Technology (VST)


History

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 =

Structure of a VST.NET Plugin


VST Host (Reaper)

VST.NET Framework

VST.NET Plugin Interface Manager

Plugin Root Class

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

Processed Audio Buffers

Audio Processing
Done in blocks
Block size set by VST host

Size of block influences latency


latency - time delay from audio or MIDI input to audio output as a result of processing
1

-1

MIDI Processing

VST Host (Reaper)

Audio Processor

MIDI Event Collection

MIDI Processor

Processed MIDI Event

Combining MIDI & Audio


Processed MIDI Event

VST Host (Reaper)

Processed Output Buffers

Output Buffers MIDI Event

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

When a note is released


Apply Release Stop filling output buffer

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?

Anda mungkin juga menyukai