synthpresentation
TRANSCRIPT
-
8/2/2019 SynthPresentation
1/19
Software Synthesizerwith VST.NET
Kevin Reed
-
8/2/2019 SynthPresentation
2/19
Overview
Project motivations What is Virtual Studio Technology (VST)? What is VST.NET?
Audio Processing MIDI Processing
Combining Audio & MIDI Processing
Synth Future Developments
-
8/2/2019 SynthPresentation
3/19
Project Motivations
Show how easy it is to create effects andvirtual instruments using VST
Use VST.NET to create VST using C# .NET
-
8/2/2019 SynthPresentation
4/19
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
-
8/2/2019 SynthPresentation
5/19
VST.NET
Allows for VST development in any .
NET language (C#) Provides a structured framework Easier to learn than VST SDK
-
8/2/2019 SynthPresentation
6/19
Definition:VST Host = Digital Audio Workstation (DAW) = Reaper =
-
8/2/2019 SynthPresentation
7/19
Structure of a VST.NET Plugin
VST Host(Reaper)
VST.NETFramework
PluginRoot Class
VST.NET PluginInterface Manager
AudioProcessor
MIDIProcessor
MIDISource
PluginEditor
PluginPrograms
-
8/2/2019 SynthPresentation
8/19
Definitions
Audio Buffer - temporary package of
audio data to be sent to playback
MIDI - (Musical Instrument DigitalInterface) a way to communicate musicaldata from an input device
-
8/2/2019 SynthPresentation
9/19
Audio Processing
AudioBuffers
VST Host
(Reaper)
AudioProcessor
ProcessedAudio
Buffers
-
8/2/2019 SynthPresentation
10/19
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
0
-1
-
8/2/2019 SynthPresentation
11/19
MIDI Processing
MIDI EventCollection
VST Host
(Reaper)
MIDIProcessor
ProcessedMIDI Event
AudioProcessor
-
8/2/2019 SynthPresentation
12/19
Combining MIDI & Audio
VST Host(Reaper)
MIDIProcessor
AudioProcessor
ProcessedMIDI Event
MIDI Event
Processed
MIDI Event
OutputBuffers
ProcessedOutput Buffers
-
8/2/2019 SynthPresentation
13/19
Synthesis Logic
When a note is presseda. Determine note frequencyb. Generate sound wave based on frequency
i. Sine, Square, Triangle, Sawtoothc. Apply Attack, Decay, and Sustaind. Fill audio output buffers until release
When a note is released Apply Release Stop filling output buffer
-
8/2/2019 SynthPresentation
14/19
SynthesisWaveforms
-
8/2/2019 SynthPresentation
15/19
SynthesisADSR
Attack time - the volume change from zerostarting when a key is pressed
Decay time - the volume level change after theattack 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
-
8/2/2019 SynthPresentation
16/19
SynthesisADSR
Attack
De
cay
Sustain
ReleaseAm
plitud
e
Time
Note On Note Off
-
8/2/2019 SynthPresentation
17/19
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 sametime
Plugin Programs
-
8/2/2019 SynthPresentation
18/19
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
http://en.wikipedia.org/wiki/Synthesizer#ADSR_envelopehttp://en.wikipedia.org/wiki/Synthesizer#ADSR_envelopehttp://en.wikipedia.org/wiki/Waveformhttp://obiwanjacobi.blogspot.com/2008/06/vstnet-plugin-structure.htmlhttp://obiwanjacobi.blogspot.com/2008/06/vstnet-plugin-structure.htmlhttp://vstnet.codeplex.com/ -
8/2/2019 SynthPresentation
19/19
Questions?