Know Your Nodes pt 5 & 5.5 - Splines & Streamlining a Large Patch

Here is a brief overview of the spline node and how to make blend together waveforms using imported wavetables provided by @jjthrash

The archive of over 200 wavetables from the Adventure Kid free library:

Here is the video demonstration patches: spline video examples.audulus (1.3 MB)

Here is a link to the script used to import the wavetables:

Ok, so I somehow didn’t notice that the full wavetable array with all the antialiasing filters uses up a lot of CPU. I will be making an addendum video on how to construct that. Until then, here is a CPU friendly version of the patch - spline video examples CPU friendly.audulus (353.2 KB)


I am sure you must have seen the awesome free WaveEdit software before. I had some fun with it for a while. Thought I would drop a link here in case anyone isn’t aware of it.


Another well paced tutorial video. Since you’re starting to build up a knowledge base for beginners who may have limited knowledge about Audulus, synthesis, and music, it might be helpful to include links to other videos or websites which discuss the topics used in your video. In this case quantizers, octaves, splines, anti-aliasing, phasers, optimization, and sub patch creation are all aspects of the video.

A tag system for topics could be a boon to new users as they navigate through uncharted waters.


The ability to import single cycle waves into a spline is great. For those of us with a microscopic knowledge of Github, it’d be nice to have links which show us how to navigate this (I’ll search the forum on the topic).

iOS is my preferred platform so being able to create everything for Audulus on iOS is one of its primary attractions versus other music programming environments that have no or limited support on iOS. I wonder what the process would be or if it would even be possible to run the @jjthrash script on iOS with your own wav files?

Hopefully as Audulus and the Audulus community moves forward, the gaps in knowledge and the path for users will become smoother with respect to to educating themselves using tutorials such as yours.


Unfortunately it’s not possible to run my script in iOS. The quickest path toward that is to publish it on the web (upload a WAV file, download an Audulus patch). While that’s relatively straightforward to do, I’m not sure how much I can invest in the ongoing maintenance involved, particularly if people like the tool.

I’ll take a look and see. Maybe it’s less work than I imagine.


WaveEdit is a pretty amazing tool. I’ve build an Audulus patch from it like so:

  1. Build a waveform
  2. Edit menu -> Save Wave As…
  3. Save it somewhere
  4. Run the script on it (build_audulus_wavetable_node <pathto.wav>)

I’ve attached the patch. Untitled.audulus (75.4 KB)

I’m also working on seeing if I can make the script more usable.


Where/how do run step 4 in your instructions?

1 Like

I hope to have something by the end of the day that won’t require a paragraph to describe. :slight_smile: Will get back to you on that.


Thank you, I appreciate your help and the ability to convert waves to splines in Audulus is great. Any resources about the process so I could educate myself would be great rather than having you do all the work. I do have a macOS computer so please don’t feel like you need to come up with an iOS only solution.

1 Like

OK, try the instructions here:

They should work on a reasonably recent MacOS install, but require that you use a command line/terminal. It’s possible to make that easier, but would be a good deal more work.

1 Like

And it should go something like this:

The password you type in should be your own password. Hope that helps!

1 Like

Wow! These are some great resources! Many thanks!


I downloaded GitHub Desktop logged in, cloned your project, opened a terminal from within the project, did the build, and got an error message about not finding header files in the Ruby library. I’m running Gems 2.3.0 and tried to update it which failed.

I’ll see what I can do to figure out how to update my Ruby Gem. At least I’m learning about using GitHub in the process.:relieved:

1 Like

Ah, yes, definitely frustrating. I may be able to figure out a better way to do it, but not today. :frowning:


I’m missing the fftw3 gem which is needed to run your code. I’ll install Xcode and see if I can figure out how to add it. It will be good for me to figure out how to use these tools anyway as there are a lot of resources that require you to install them using code rather than just down loading self installing packages.

Thanks for the link to your video as it lets me know what it will look like when I run the process successfully.


I need to start pushing myself to learn more about coding running it as well. I feel semi-illiterate in this day and age with my modest comprehension.


I’m happy to help you and @Paulinko if you have questions. Don’t want to presume you want spoon-fed answers, though. :slight_smile:

1 Like

I appreciate your offer. I’ll keep trying what I’m doing now and if I get stuck, I’ll let you know.


I ran your gem and it didn’t create the .audulus file.

sh: sox: command not found

building CoinDrop01.audulus

/Library/Ruby/Gems/2.3.0/gems/build_audulus_wavetable_node-0.1.0/lib/build_audulus_wavetable_node.rb:108:in `/’: nil can’t be coerced into Float (TypeError)

from /Library/Ruby/Gems/2.3.0/gems/build_audulus_wavetable_node-0.1.0/lib/build_audulus_wavetable_node.rb:108:in `build_patch’

from /Library/Ruby/Gems/2.3.0/gems/build_audulus_wavetable_node-0.1.0/lib/build_audulus_wavetable_node.rb:229:in `build_patch_from_wav_file’

from /Library/Ruby/Gems/2.3.0/gems/build_audulus_wavetable_node-0.1.0/lib/build_audulus_wavetable_node.rb:282:in `command’

from /Library/Ruby/Gems/2.3.0/gems/build_audulus_wavetable_node-0.1.0/bin/build_audulus_wavetable_node:4:in `<top (required)>’

from /usr/local/bin/build_audulus_wavetable_node:22:in `load’

from /usr/local/bin/build_audulus_wavetable_node:22:in `<main>’

1 Like

It works after I installed Sox!