2 years deep, and you probably won’t believe the question I am asking

This is so embarrassing to ask, and may seem stupid, but a) I am betting I am not the only one not familiar with at least some of these, and b) if I don’t do it now, I will continue to not know and not feel like I can utilize them to their full potential. So…

What exactly do each of these very basic nodes do, and what neat ways can I use them in my constructions?

  • SampleRate
  • Mapper
  • PitchBend vs. PitchShift
  • Phasor (I know what this one outputs, and that @robertsyrett has showed us how to make a custom oscillator from it in his Know Your Nodes series, but don’t really understand why not use an oscillator node instead and switch it to SawTooth mode?)
  • FeedbackDelay vs. UnitDelay
  • LowPass node (e.g. why is it necessary when we have a resonant filter node just below it?)

I have often wondered, but never spoke up until now, when I can truly make myself look like a moron and seem like I have learned nothing over the last 2 years as a member of this forum… :rofl:

The sample rate node outputs the current sample rate that Audulus is running (the number of samples per second) For Audulus the sample rate is typically controlled by the operating system although in the case of the AU the sample rate is set in the host DAW. It is used as a convenience when building filters etc. where the sample rate is one of the inputs to the circuit. For macOS it is typically 41000 samples per second but this depends on the interface in use as well as the audio settings. Audulus will run at higher sample rates if necessary but this increases CPU load considerably.

The mapper node is similar in concept to the spline node. It maps a 0-1 input to an output using a curve that you specify by moving the control points. the x axis is the input and the y axis is the output. The leftmost point represents the output for a zero input and the rightmost represents the output for a 1 input.
Screen Shot 2020-11-19 at 1.12.53 PM

The pitch bend node outputs the current value of the MIDI pitch bend message from an external controller and is used to link an external pitch bend control to the oscillator frequency. It is similar in concept to the keyboard node.

The pitch shift node uses an algorithm to shift the pitch of an audio signal applied to the input. It can be used to create octave shifts etc.

The phasor node is a ramp oscillator that outputs from 0 to 2 PI (or 360 degrees). By combining it with a sin() function you can generate a sine output but it can also be used to create a wide range of waveforms. The Oscillator node in Audulus is anti-aliased which means that the output is band limited to prevent aliasing. This means that a ramp or square wave is not a mathematically pure waveform, but has had its higher frequency components removed. This is desirable for audio but not necessarily for other applications. Because it is simple to generate multiple waveforms from a single phasor, it is often used to create a variety of waveforms that are all in sync. It is also very CPU friendly. It is the oscillator of choice when you need a periodic signal rather than an audio waveform.

All feedback circuits in Audulus have a delay at some point in the circuit. In order to calculate the feedback, the output must already be known, so the feedback is necessarily delayed. Ordinarily Audulus processes signals in frames (blocks of about 250 samples) to minimize CPU loads. Audulus will automatically insert a one frame delay in any feedback circuit you create. In some cases it is necessary to have the delay occur at a specific point in the circuit in order to get the correct behavior. The feedback delay node is a mechanism for specifying exactly where in a feedback circuit the delay occurs. The unit delay is similar but instead of delaying the signal by a whole frame, it delays the signal by only one sample. This is necessary for many digital filter designs, but causes the circuit to be evaluated for each sample instead of one frame at a time which results in significantly increased CPU overhead. Additionally the unit delay will work in a feed-forward configuration whereas the feedback delay node does nothing if it is not in a feedback loop.

The high pass and low-pass nodes are an implementation of a moving average 6dB per octave filter whereas the filter node is a 12 dB per octave resonant design. The low-pass node is useful for creating thing like slew limiters as well as other application where a gradual roll-off is desired. It is also a bit more CPU friendly than the resonant filter.

Hope that helps. Let me know if any of this doesn’t make sense and I’ll try to do a better job explaining.

2 Likes

Thanks for the reply @stschoen! The only one I am having trouble understanding now is the mapper. That x and y axis, coupled with the furthest left and furthest right points just melted my brain. Is there some kind of visual aid, or a concept it represents that you could refer me? I really appreciate you taking the time to explain all the nodes. Thanks again! :smiley:

1 Like

Screen Shot 2020-11-21 at 9.15.29 AM
Here’s a simple patch to demonstrate how the mapper works. I included a spline node below the mapper for reference. Looking at the mapper, you will see the three green circles on the curve. These are the control points and determine the shape of the curve. The two endpoints can be moved up and down to set the starting and ending values of the curve. The middle point can be moved up and down and sets the shape of the curve. Try moving the points around to see how they work.

The red circle represents the current position on the curve. Move the knob and you will see the red circle move along the curve. If you turn the knob to zero you will see that the red dot is over the green circle to the left. As you can see from the value node attached to the knob the input to the mapper is now 0. As you move the green circle up and down notice how the output of the mapper changes to match the position of the dot. As you turn the knob toward 1 you will see the red dot move along the curve and the output will change depending on the dot’s position on the curve. With the knob at 1, now the right circle’s position controls the output.

The mapper allows you to define a curved shape that is applied to the input value to produce an output value. It works in a similar fashion to the spline node, But instead of the linear sections used in the spline, the mapper allows you to define a smooth curve. Unlike the spline where you can have many segments, the mapper only provides a single curve with its three control points.

Mapper demo.audulus (2.2 KB)

2 Likes

Oh wow! I totally get it now! I was aware that the center point could be moved, but didn’t realize that the left and right points could be changed to higher or lower values. This makes it way more logical and easy to understand. Thanks so much again for taking the time, @stschoen! You are so awesome :sunglasses:

1 Like

I was just wondering the same thing last night. Thanks for the detailed explanation.

1 Like