Nannou is a relatively new framework for creative coding ⨪ kind of like processing, openFrameworks and cinder. A creative coding framework usually consists of a cluster of tools for working creatively with audio, visuals, robotics, lasers and many other things in one coding framework, and nannou is no different. The great thing about nannou is that it is a framework making use of the cool new systems programming language Rust.
In this tutorial, I will cover how to install and setup SoX on android devices using Termux. Termux is a free “Android terminal emulator and Linux environment app that works directly with no rooting or setup required”. Basically it is a command line interface for your Android device and works like a small linux distribution. It even includes a package management system. And if you get something like an OTG-dongle you can even connect a keyboard and/or a class compliant sound interface.
To make full use of SoX’ potential for batch processing we will be using a bit of command line wizardry. The idea is to put our sox command inside of a for-loop which iterates over all audio files in the folder you are currently in. If you are unsure of what folder your terminal is executing from, you can write pwd to see it’s full path and ls to see the folder’s contents.
SoX has a very effective and rather precise way of semi-automatically chopping a sound file into smaller sound files. Let us say you have a sound file containing many different sounds seperated by a bit of silence in between. It could be a series of drum hits that you have recorded off of a drum machine. To make these sounds easy to use, you most probably need them as seperate sound files so you can load them into a sampler or other software as a sample bank of sorts.
SoX is a very powerful command line audio processing tool. You can think of it as a sort of command line equivalent of Audacity but with a text based interface that let’s you perform powerful audio operations by typing just a few words in your computer’s terminal. I came across SoX via the live coding community where it is a popular tool for chopping sound files (by detecting silence) and batch processing large quantities of audio files (eg.
It is possible to get a nice development environment on Linux (and other platforms) using NeoVim and a few plugins and settings. This dev environment includes snippets, autocomplete, debugging and smart code suggestions for methods. I got a lot of pointers for this setup from Chendi Xue’s blogpost about Vim/CPP development. So, without further ado here are my notes for setting up shop using YouCompleteMe, UltiSnips and some formatting plugins.
The default synth sound in SuperCollider is a cheesy old piano sound. If you have ever tried the event pattern examples in the documentation of SuperCollider or been in the process of testing some pattern specifics of your own, you will have heard this extremely unconvincing synthesizer: A nice alternative: A triangle wave synth with a low pass filter # Imagine a utopian world where the default cheese-piano-synth has been replaced by a nicer, kind of gameboy like synth.
Hedrot is an inexpensive head rotator that you can build yourself and attach to any pair of head phones, based on a small microcontroller (a Teensy) with an attached sensor board that measures your head’s rotation, pitch, tilt, etc. Using the Hedrot, you can monitor a binaural version of an ambisonic mix in a pair of headphones and be able to move your head around inside the sound field. In this tutorial we will cover how to set up the Hedrot application to send it’s sensor data via OSC to Reaper to rotate our ambisonic mix with our head movements.
In SuperCollider, one of the most common ways of making sounds is by first defining a sort of recipe for a UGEN patch in a SynthDef and then from that recipe produce Synths that make sounds. But when you write a SynthDef, the patch architecture cannot change after the definition (as opposed to changing arguments in the patch). This becomes annoying when working with UGens that want to know the exact number of channels used, eg.
One of the many powerful features of SuperCollider is it’s ability to render sounds offline. This is called Non-Realtime Synthesis (NRT). NRT is for example useful for fast, offline processing of sounds, doing sound analysis or rendering generative compositions. NRT works like this (normally): First you write a list of server OSC messages (stored in a Score usually) which will tell the (offline) server what to do at what point in time when you decide to render it.