Difference between revisions of "Demiurge/Standard Blocks"

From Stm32World Wiki
Jump to navigation Jump to search
Line 8: Line 8:
 
== ADSR - Attack, Decay, Sustain, Release ==
 
== ADSR - Attack, Decay, Sustain, Release ==
  
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/adsr.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/adsr.c Source Code]
 +
 
 +
{|
 +
|Orange
 +
|Apple
 +
|-
 +
|Bread
 +
|Pie
 +
|-
 +
|Butter
 +
|Ice cream
 +
|}
  
=== Inputs ===
 
 
{|
 
{|
 +
|+ Inputs
 
|- !Name !! Description
 
|- !Name !! Description
 
|- attack || Sets the attack time of the ADSR function
 
|- attack || Sets the attack time of the ADSR function
Line 22: Line 33:
  
 
== Audio Inport ==
 
== Audio Inport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/audio_inport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/audio_inport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 30: Line 41:
  
 
== Audio Outport ==
 
== Audio Outport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/audio_outport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/audio_outport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 38: Line 49:
  
 
== Averager ==
 
== Averager ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/averager.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/averager.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 47: Line 58:
  
 
== Calculator ==
 
== Calculator ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/calculator.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/calculator.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 56: Line 67:
  
 
== CFX RBJ Filter ==
 
== CFX RBJ Filter ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cfxrbjfilter.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cfxrbjfilter.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 68: Line 79:
  
 
== Control Pair ==
 
== Control Pair ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/control_pair.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/control_pair.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 76: Line 87:
  
 
== CV Inport ==
 
== CV Inport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cv_inport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cv_inport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 84: Line 95:
  
 
== CV Outport ==
 
== CV Outport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cv_outport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/cv_outport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 92: Line 103:
  
 
== Fixed Signal ==
 
== Fixed Signal ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/fixed_signal.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/fixed_signal.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 100: Line 111:
  
 
== Gate Inport ==
 
== Gate Inport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/gate_inport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/gate_inport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 108: Line 119:
  
 
== Gate Outport ==
 
== Gate Outport ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/gate_outport.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/gate_outport.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 116: Line 127:
  
 
== Inverter ==
 
== Inverter ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/inverter.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/inverter.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 126: Line 137:
  
 
== LED ==
 
== LED ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/led.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/led.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 137: Line 148:
  
 
== Lg ==
 
== Lg ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 145: Line 156:
  
 
== Lg2 ==
 
== Lg2 ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg2.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg2.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 153: Line 164:
  
 
== Lg10 ==
 
== Lg10 ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg10.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/lg10.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 161: Line 172:
  
 
== Mixer ==
 
== Mixer ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/mixer.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/mixer.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 170: Line 181:
  
 
== Offset ==
 
== Offset ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/offset.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/offset.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 184: Line 195:
 
introduces spike frequencies.
 
introduces spike frequencies.
  
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/oscillator.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/oscillator.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 194: Line 205:
  
 
== Pan ==
 
== Pan ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/pan.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/pan.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 209: Line 220:
  
 
== Passthru ==
 
== Passthru ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/passthru.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/passthru.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 217: Line 228:
  
 
== Potentiometer ==
 
== Potentiometer ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/potentiometer.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/potentiometer.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 225: Line 236:
  
 
== Push Button ==
 
== Push Button ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/pushbutton.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/pushbutton.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 233: Line 244:
  
 
== Scale ==
 
== Scale ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/scale.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/scale.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 242: Line 253:
  
 
== State Variable Filter ==
 
== State Variable Filter ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/svf.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/svf.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===
Line 261: Line 272:
  
 
== Volume ==
 
== Volume ==
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/volume.c]
+
[https://github.com/AwesomeAudioApparatus/demiurge/tree/master/software/components/demiurge/src/volume.c Source Code]
  
 
=== Inputs ===
 
=== Inputs ===

Revision as of 09:34, 20 August 2022


All blocks has a single Output signal, to which an Input on another block can be connected. The rare cases of multiple Output blocks, such as #Pan, and accomplishes this by having sub-blocks for each Output that downstream blocks can be connected to.

ADSR - Attack, Decay, Sustain, Release

Source Code

Orange Apple
Bread Pie
Butter Ice cream
Inputs

Audio Inport

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

Audio Outport

Source Code

Inputs

| Name | Description | |------|-------------| | input | The audio signal to be set to the physical output port as an audio signal. |

Averager

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be averaged. | | averaging_control | The amount of averging to be applied to the signal |

Calculator

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to apply the [***Function***](functions.md) on. |


CFX RBJ Filter

Source Code

Inputs

| Name | Description | |------|-------------| | input | Signal to be filtered | | frequency | Frequency to be filtered at | | Q | Q factor which sets slope and ringing | | gain | Gain/attenuation in the filter |

| type |

  • 0 - low pass
  • 1 - high pass
  • 2 - bandpass (csg)
  • 3 - bandpass (czpg)
  • 4 - notch
  • 5 - allpass
  • 6 - peaking
  • 7 - low shelf
  • 8 - high shelf

|

Control Pair

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

CV Inport

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

CV Outport

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be set to the physical output prot as a CV signal |

Fixed Signal

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

Gate Inport

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

Gate Outport

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be set to the physical output prot as a Gate signal. |

Inverter

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be inverted. | | scale | Scaling of the signal | | offset | Offset around which the signal should be inverted. |

LED

Source Code

Inputs

| Name | Description | |------|-------------| | input | The RGB value of the LED to be set. Only used if r, g and b are not configured. | | r | The RED value to be set to the physical LED. | | g | The GREEN value to be set to the physical LED. | | b | The BLUE value to be set to the physical LED. |

Lg

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal that wil have *ln* (the natural logarithm) applied to it |

Lg2

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal that wil have *log2* applied to it |

Lg10

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal that wil have *log10* applied to it |

Mixer

Source Code

Inputs

| Name | Description | |------|-------------| | inputs[] | An array of signals to be mixed to the ***Output*** | | volumes[] | An array of volume controllers, one for each ***Input*** |

Offset

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be offsetted | | offset_control | The amount of offset to be applied to the ***Input*** |

Oscillator

The [Oscillator](blocks/oscillator.md) is a block that generates waveforms at a controllable frequency and amplitude. The start of the waveform is also controllable with the *trigger*, but should be used with caution as it introduces spike frequencies.

Source Code

Inputs

| Name | Description | |------|-------------| | frequency | The frequency to generate. For non-SINE, it is the inverse of the full cycle period | | amplitude | The amplitude of the output signal. | | trigger | Re-trigger the wave generation to time zero. |

Pan

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be split in a *left* and *right* channel. | | control | The balance between *left* (0V) and *right* (10V) channel |

Sub-blocks

| Name | Description | |------|-------------| | left_channel | | | right_channel | |

Passthru

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be pass to the output. |

Potentiometer

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

Push Button

Source Code

Inputs

| Name | Description | |------|-------------| | *none* | |

Scale

Source Code

Inputs

| Name | Description | |------|-------------| | input | The signal to be scaled. | | control | The amplication/attenuation control. 0V=muted, 10V=~20dB gain

State Variable Filter

Source Code

Inputs

| Name | Description | |------|-------------| | input | Signal to be filtered | | frequency | Frequency to be filtered at | | Q | Q factor which sets slope and ringing | | gain | Gain/attenuation in the filter |

Sub-blocks

| Name | Description | |------|-------------| | lowpass_out | Low pass filter output signal | | highpass_out | High pass filter output signal | | bandpass_out | Bandpass filter output signal | | notch_out | Notch filter output signal |

Volume

Source Code

Inputs

| Name | Description | |------|-------------| | input | Signal to be volume controlled. | | control | The amplication/attenuation control. output=input*(0.05 * control + 0.5) |