Level 1 - Rookie
Tip: Change modules' Runtime Status for help debugging
Audio Weaver's modules can be put in four different Runtime States, which is really helpful for debugging a variety of situations. Runtime Status can be changed on modules, subsystems, or a selection-group of multiple objects by right-clicking them.
In the Active mode (default), the processing code for the selected module(s) executes and the processed samples are passed along on the output wire buffer. For the other three Runtime States, the module's processing code doesn't run - which is a great way to see how sections of your block diagram affect your overall MIPs load. For these three modes, the output wire will either be left untouched (Inactive), zeroed out (Muted), or just pass through what's on the input pin (Bypassed):
Level 2 - Enthusiast
Tip: Use a Router module to duplicate, reorder, or extract different audio channels
Audio Weaver's wires can hold mono, stereo, or really any number of audio channels (the wire thickness represents the number of channels carried). When it comes to working with multichannel audio, the Router module is my swiss-army knife! It can do so much!
A lot of the power comes from the fact that you can configure the inputs and outputs however you want. Do you have three stereo wires that you want to merge into one big wire? No problem. Want to change the order, duplicate, or ignore some channels? It does that too!
In this example, I have a 3-channel input wire. I tell my router to output 2 channels... and can pick which input channels I want to patch through to which output channels. I start by send Ch2 (stereo right) out on both outputs - and end by swapping left/right channels all together.
Level 3: Power User
Tip: Use Table modules to map control parameters to actions
As you know, Audio Weaver uses control wires to carry non-audio data. This "control data" often represents HMI settings or system state, such as "Volume Knob Position" or "Battery Level". To do something useful with these events/settings/state, they need to be mapped to some set of audio changes. To do this, there are a bunch of different "Table" modules that let you map input to output in a variety of ways.
In this this simple example, I use a Table Lookup module to duck the volume for 2 seconds. The input to this module is the integer number of seconds that has elapsed since processing started. The output of the lookup is the value entered for each 'time' in the table - which in this case is "1" when elapsed time is 4 seconds 5 seconds.