Main Concepts
This chapter aims to shows the main concepts and core features of the framework and how they should be used to effectively make an audio pipeline.
Framework Initialization
A the start of the application we always have to initialize the framework like below.
SonoraMain.Init(); // You can optionally pass a sample rate to use
Audio and Midi Devices
To hear and play sounds, we need to select an audio device and choose between different available audio APIs based on our needs.
Optionally, we can also chose a midi input device to use.
Clips
Clips are the main tool through which you can store, edit and play sounds.
There are two clip types:
- Audio clips: to store and play audio files.
- Midi clips: to store and play midi files or midi data.
Both have useful properties that can be customized like enabled/disabled state, volume, starting time etc. which are explained in detail inside each clip page.
Tracks
Tracks are used to store clips or other tracks, process the sound through plugins and send the processed sound to the master mixer.
There are three track types:
- Audio tracks: to store audio clips.
- Midi tracks: to store midi clips.
- Track groups: to store and mix other track types.
All track types have common controls like volume and panning which affect all the contained clips and can record whatever is playing inside them.
Tracks can also contain both VSTs and built in plugins that process or generate the sound.
Plugins
Plugins are used to apply effects like equalization, reverb and delay to the incoming sound or to generate sounds.
There are two types of plugins:
- VSTs (Virtual Studio Technology): external plugins you can load and use.
- Built in: framework built in plugins you can instantly use or create new ones.
Both types can be added to tracks to generate or modify the sound behaviour and are handled as one type through a common interface.
Automations
Clips parameters can be automated during playback by placing automation points at a specific time. For example, we could automate a clip volume making it go from -12dB to 0dB during a timespan of 10s.
Note that not all parameters can be automated, and those who can are specific to the clip type.