Create Sounds with Jitter

by Julian Rubisch, 2018-09-10
01 A 2D Wavetable

The [jit.poke~] and [jit.peek~] objects provide ways to manipulate audio data in the Jitter domain. We use [jit.expr] to compute various functions based on the cell indexes of a jitter matrix. Since a matrix is two-dimensional, we can also define two-dimensional expressions. For example, we can use the signed normalize expression to calculate a bivariate cosine or sine function.

  Go to video
02 Noise Based 2D Sequencers

Let's add another twist to this, exploring the two dimensional space for sequencing. We instantiate a `[jit.noise]` object with 2 planes and 16 by 16 cell values. We are going to use these for pitch and filter sequencing. We then scale the float values from the matrices into meaningful oscillator and filter frequencies.

  Go to video
03 Anti-Aliasing with Poly

We can improve the anti-aliasing of the "oscillator" we just made up by encapsulating it in a `[poly~]` subpatcher, thus allowing for upsampling the signal. Here we upsample by four times whatever the sampling frequency is, so e.g. 4 * 44100 = 176400 Hz, effectively shifting the foldover frequency (also called the Nyquist frequency) to 88200 Hz. Clearly, sound-wise, this is an improvement. We could have gone farther by pushing the upsampling factor up to 8 or 16, but this comes at the price of higher CPU cost.

  Go to video
04 Basis Function Graphs as Waveforms

Jitter includes the [jit.bfg] object, which is used to generate what is called basis function graphs, which can in turn be used for geometry or texture generation, or other 2D and 3D graphics related stuff. We, however, will once more use it for the creation of waveforms.

  Go to video
05 Graphical Transformations on Sounds

This video is going to be a little different. This time, we're not going to build a Jitter-based oscillator, it's going to be a Jitter-based audio effect. Or rather, a whole range of those.

  Go to video
06 Graphical Transformations on Spectrograms

Similar to what we did in the previous episode, we can apply graphical transformations to spectrograms, too. What we can do here as compared to the static transformations we employed thus far is create temporally dynamic effects. For example, [jit.streak] is an object that smears single pixels depending on the probability, scale and direction parameters. If we combine this with the feedforward crossfading from episode 4 of this playlist, we can create slowly evolving, compelling drones.

  Go to video
© 2018 Znibble~Powered by Contentful
Privacy Policy NewsletterImprint