Audio Questions

Seemed a new thread dedicated to audio stuff might be good? Continued from here: Audio Filters?

A couple questions specifically about Make Audio Waveform. First up, why does (Vuo 2.3.0) Make Audio Waveform triangle waveform look like this pic? (Sine and sawtooth look fine…)

Screen Shot 2021-04-19 at 11.52.37 AM.png

Then a question about Make Audio Wave phase. I can add two sawtooth waveforms together with second wave inverted (using Calculate List set to -X) to get a pulse wave – except for overhead of calculating a list, this works. Set phase for inverted sawtooth to .5 gives me a square wave (analog style). Except it looks like Set Phase expects only a Fire at Start event to set phase, and cannot be modulated in real time? (Is there another way I could approach modulating phase?)

Two scenarios that use phase modulation:

  1. PWM – i.e., pulse width modulation – achieved by modulating the phase of one of the two waveforms (This is a classic sound, a staple on many synthesizers, some base their entire sound on it.)

  2. PM – modulating phase also opens the door to phase modulation – which is what some classic synths actually used and called it FM (e.g., Yamaha DX’s).

It would be nice to have some solution for FM/PM, currently no setup can run fast enough. In other words, I can use a Wave node (aka LFO) to create vibrato, but I cannot produce the familiar sounds of FM synthesis.

Screen Shot 2021-04-19 at 12.04.34 PM.png

1 Like

“Why does (Vuo 2.3.0) Make Audio Waveform triangle waveform look like this pic? (Sine and sawtooth look fine…)”

We’re able to reproduce the problem on an M1 Mac. The composition worked as expected on the Intel Macs that we tested. Thanks for reporting this. We’ll create a bug report.

Phase Modulation:

Make Audio Wave can receive changing values to Set Phase in real-time. Vuo’s audio processing currently happens in 512-sample buffers, at a rate of about 100 buffers per second. If multiple nodes are used, then Vuo can’t currently change the phase as quickly as the full audio rate. The feature request, Audio Objects port type and renderer will allow Vuo to handle audio for real-time phase modulation.

Thanks, @jmcc! Might look at the sawtooth waveform, too – sometimes the audio will go silent when switching to sawtooth, may or may not work stopping/rerunning the comp, at least with the big comp I just posted (a model of inefficiency, I’m sure):

Ah, I need to revisit Alex’s audio feature requests and threads – 5 years ago at this point! He was on the mark, clearly well-versed in these issues.  

Looks like there was another issue throwing me off with my PWM setup. It behaves better with PWM (phase of second/inverted Make Audio Wave modulated by the Wave node) limited to, say, the range of .25 to .75. But when I set the phase modulation to reach beyond a certain range (like .2 to .8), it initiates some (extra – already expect an offset w the method) DC offset/polar flipping behavior. This causes a pulsing/beating based on Wave period. (Might be different “safe” ranges for different Make Audio Wave freqs, have not thoroughly tested this.)

(With PWM set within “safe” range it sounds pretty nice, even with the audio buffer size limit… Perhaps Vuo 2.3.0 Make Audio Wave just needs needs a little TLC for the next (M1) update? The attached comp also has a lowpass filter with modulated cutoff frequency – this effects the sound/timbre, no effect on the issue.)


Screen Shot 2021-04-26 at 1.08.36 PM.png

DC offset when (modulated) phase enters higher/lower values:

Screen Shot 2021-04-26 at 1.08.59 PM.png  

PWM2.vuo (9.59 KB)

I don’t know why, but the audio + the visuals made me think of this movie I recently saw: Last and First Men.

Ok, I’ll follow that trail, looks like a film I should see!

@jmcc, technical question, when you say “around 100” times per second, I noticed that 48k / 512 = 93.75. Readout seems to float around this number. Is this the ~100 per sec? Trying to sort out if I can tell when Vuo will get sluggish with audio.  

I noticed that 48k / 512 = 93.75. Readout seems to float around this number. Is this the ~100 per sec?