From cb1d7e73c8265400a266cace96c652263ebe518b Mon Sep 17 00:00:00 2001 From: jersmi7 <90596774+jersmi7@users.noreply.github.com> Date: Tue, 13 Dec 2022 15:34:45 -0800 Subject: [PATCH] Update io-glossary.md changed a little more than I intended, just going for conceptual clarity, see what you think... --- io-glossary.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/io-glossary.md b/io-glossary.md index 394917d..8a69305 100644 --- a/io-glossary.md +++ b/io-glossary.md @@ -2,11 +2,11 @@ Inputs and Outputs in the Audulus module library are labelled in a consistent way so as to make interfacing them easy to understand. If you adopt this naming scheme in your own modules, when you share them, people will be able to use them more easily without needing extensive written instruction. -Knob (k), Modulation (m), and Gate (g) signals can all be used to directly modulate any knob - however, do NOT attach any other signals to knobs (e.g., degrees, radians, octave) - doing so may cause a white-out connection (a NaN, feedback, or near-infinity number), or you may cause a significant jump in volume or resonance that could be painful. +Knob (k), Modulation (m), and Gate (g) signals can all be used to directly modulate any knob - however, be aware that attaching out of range signals to knobs (e.g., degrees, radians, octave) may cause a white-out connection (a NaN, feedback, or near-infinity number), or you may cause a significant jump in volume or resonance that could be painful or completely stop audio from processing. All inputs and outputs in Audulus are 32 bit floating point numbers. Unlike other digital modular synths, Audulus does not distinguish between different signal types. This means audio can be used as a switching or triggering signal, and triggers can be used as audio. -However, having different signal types is useful, so we have to create rules for what those types of signals are. This is a glossary that lays out all of the different types of inputs and outputs you'll see in this module collection. +However, having different signal types is useful, so we have created rules for what those types of signals are. This is a glossary that lays out all of the different types of inputs and outputs you'll see in this module collection. Within this library, types of signals have been constrained into ranges that interface well with both nodes and the modules created with them. Many node controls range from 0 to 1, so Modulation (m), Knob (k), Gate (g), and Envelope (e) signals are also tuned to this range. @@ -14,7 +14,7 @@ These signals are also tuned to a 0-1 range so that they interface well with one Audio is an alternating signal, and so it ranges between -1 and 1. If you send a direct signal that goes from 0-1 to your speakers, you will only be pushing the speakers halfway through their cycle. The library's master audio output has a built-in DC-blocker node that converts DC signals to AC, so if you use this module, you won't really need to consider this. -Because pitch is logarithmic in scale, the Octave (o) signal allows you to do linear math to effect pitches. This means to octave shift up, add 1 - to octave shift down, subtract 1. Vibrato will scale correctly over octaves as well. If only modulated by a set number of Hz, a vibrato effect would be more pronounced in the lower octaves and less noticeable in the upper octaves. +Because pitch is logarithmic in scale, Audulus modules use the Octave (o) signal (1/oct) which allows you to more easily do linear math to effect pitches. This means to octave shift up, add 1, and to octave shift down, subtract 1. This also means Vibrato will scale better using Octave scaling versus scaling Hz. **Abbreviation:** a @@ -35,9 +35,9 @@ e - red light - Envelope - 0 to 1 - g - light node - Gate - 0 or 1* - -*Gate signals are on/off signals that act mostly as switches and triggers. Logic expressions and other nodes that react to gates generally react to the rising edge of the gate - the moment the gate changes from low (0) to high (1). In many applications, it would not matter if the high signal was 100 or 1000, but the low signal must always be 0. To keep things simple and analogous to digital logic, the high signal is considered to be 1. This library makes no distinction between a gate and a pulse. For the shortest available pulse, use the One Frame Pulse module under Modules -> Utilities* +*Gate signals are on/off signals that act mostly as switches and triggers. Logic expressions and other nodes that react to gates generally react to the rising edge of the gate - the moment the gate changes from low (0) to high (1). In many applications, it would not matter if the high signal was 100 or 1000, but the low signal must always be 0. To keep things simple and analogous to digital logic, the high signal is considered to be 1. Although in Audulus a gate and a pulse are derived similarly, consider a gate as a signal with adjustable pulse width and a pulse as gate with a very short "hard-coded" pulse width like the One Frame Pulse module under Modules -> Utilities.* -**exception made for gate height into an envelope, which allows for dynamics* +**exception: an envelope responds to gate value, which allows for dynamics* H/L - n/a - High/Low - @@ -45,7 +45,7 @@ H/L - n/a - High/Low - Hz - n/a - Hertz (cycles per second) - 0 to Sample Rate - -*Hz values are generally used for directly entering precise values for filters, oscillators, or clocks. Hz values cannot be negative (that would be time travel), and they cannot effectively be above the sample rate, either.* +*Hz values are generally used for directly entering precise values for filters, oscillators, or clocks. Hz values in general should not be negative (that would be time travel), or larger than sample rate.* k - n/a - Knob - 0 to 1 - @@ -57,11 +57,11 @@ L/R - n/a - Left/Right - -1 to 1 - m - red light - Modulation - 0 to 1 - -*Modulation signals are all 0 to 1 so that they interface easily with the knobs in this library, which are all also 0 to 1. LFOs and envelopes are examples of modulation signals. When a knob's range needs to be translated, it is done so inside the module, rather than directly setting the range of the knob's min and max values.* +*Modulation signals are all 0 to 1 so that they interface easily with the knobs in this library, which are all also 0 to 1. LFOs and envelopes are examples of modulation signals. When a knob's range needs to be translated, it is done so inside the module.* o - n/a - Octave (1 per octave centered at 0) - -4 to 4 - -*1 per octave signals work a little differently than 1v/oct modular signals. In this case 0 = reference pitch, which is defaulted to A=440. -1 is the A one octave below 440, and 1 is the A one octave above 440. All oscillators accept only o signals, and there are several effects based on manipulating o signals (like vibrato). To translate an o signal into a 0-10v 1v/oct for modular synths, use the ES-8 output module.* +*1/octave signals work a little differently than 1v/oct modular signals. In our case 0 = reference pitch hwich defaults to A=440 Hz. Inputting a 1 transposes up one octave (880 Hz), inputting -1 transposes down one octave (220 Hz). All oscillator modules are configured to accept only o signals, and effects are generally based on manipulating o signals (like vibrato).* r - n/a - Radians - 0 to 2pi -