AN Experiment 2018 Test 3 - waves

Nikolaus Gradwohl2018-04-18T07:04:28+02:00

I made a group of concentric spirals along a circle and modified their rotation phase and radius

you can download the blend file here


read more ...

AN Experiment 2018 Test 2 - noise position

Nikolaus Gradwohl2018-04-16T05:08:08+02:00

for this Animation Nodes experiment I used the vector noise to change the position of objects

you can download the blend file here but be aware that this has been created with a development version of - so some nodes might change a bit until the final release

noise position

read more ...

AN Experiment 2018 Test 1- curly noise

Nikolaus Gradwohl2018-04-13T08:05:08+02:00

I finally managed to fix all my python and cython version missmatch errors and started experimenting with a animation nodes 2.1 development branch - this is my first experiment using the vector noise node and the curly noise setup described in the brilliant answer by omar Ahmad

you can download the blend file here but be aware that the 2.1 branch of the Animation Node Addon is currently under heavy development so maybe the examples here won't work out of the box with a final version.

vector noise test

read more ...

creating midifiles using ruby

Nikolaus Gradwohl2018-03-26T07:21:37+02:00

I have been experimenting with randomly generated drum patterns lately and found out pretty soon, that a totally random generated pattern isn't exacly what I was after, I wanted a pattern generator where I can specify propabilities for each drum hit to occure. So I wrote a ruby script using midilib that generates midi files containing patterns, which I can then import into bitwig and loop and arrange for my tracks.


Midilib is a nifty little ruby library that allows you to read or write midifiles. For my purpose I used the library to write the files.

the library can be installed using gem

gem install midilib

A midifile contains sequences, sequences contain tracks and tracks contain midi events. These events can be any midi event like noteOn, noteOf, controlChange, programChange, ... For each midiEvent in a track the delta time to the last event is stored.

in midi lib you can specify a time_from_start value and lets midilib recalculate the delta values before saving the track.

So here is a ruby script that generates a hihat pattern (channel 1, midi note 44 in my kit), where the notes are placed on a 16th grid with a random chance between 20% and 50%.

require 'midilib/sequence'
require 'midilib/consts'
include MIDI

seq =

track =
seq.tracks << track << <<, 'Test Pattern')

track =
seq.tracks << track = 'Loop1'

s = 0
l = seq.note_to_delta('16th')
e = Random.rand(0.2..0.5)

16.times do
    if ( Random.rand < e ) then
    on =,44,127,0)
    on.time_from_start = s
    off =,44,127,0)
    off.time_from_start = s + l << on << off
s += l

track.recalc_delta_from_times'pattern3.mid', 'wb') { |file| seq.write(file) }
read more ...

new Song Ice5

Nikolaus Gradwohl2018-03-01T05:20:02+01:00

An ambient electronic 5/4 track inspired by the -10°C we currently have outside


read more ...

processing sound visualizer

Nikolaus Gradwohl2018-02-14T20:27:41+01:00

I made a visualizer for my track Walk in the rain using processing. I used a stereo autocorrelation function to generate the line drawing using the minim framework and added a glsl shader to create the lens distortion effect.

Processing sound Visualizer

read more ...


Nikolaus Gradwohl2018-02-13T07:30:46+01:00

SuperCollider drumsample generator

Nikolaus Gradwohl2018-02-10T10:08:46+01:00

I noticed that my Volca Sample in my homestudio din't quite get the attantion and love it deserved so I desided to create a new sample pack for it. I wanted some fresh electronic samples so I wrote some SuperCollider scripts to create random drum Samples. I created a script for bassdrum, snare, hihats, clap, crash, tom and a metallic 'ding' sound - which I named 'Ding' because I could not come up with a more clever name. Each of the script generates 64 samples. I then chose 100 and organized them into sound banks and uploaded them to my Volca Sample.

Samples 00 to 19 are bass drums, 20 to 29 are clap samples, 30 to 39 is a crash, 40 to 49 is 'ding', 50 to 69 is closed and open hihats, 70 to 89 are snares and 90 to 99 are my tom samples. I'm not 100% satisfied by the ordering yet maybe I move the snare samples after the bassdrums and the hihats to the end of the list - the current ordering is created mainly for alphabetical reasons :-) but I really like the organisation in banks of 10.

To simplify things further I also created 10 empty patterns - the first one places bd-00 on slot 1, bd-10 on slot 2, sn-70 on slot 3, sn-80 on slot 4, ...

the second pattern places bd-01 on slot 1, bd-11 on slot 2, sn-71 on slot 3, sn-81 on slot 4, ... and so on. This way I can switch between the drumkits pretty fast. Since I mainly use my volca sample as a midi device, I usually don't need the patterns for anything else.

click here to listen to a track I made using this samples

If you want to create your own set of samples here are the supercollider scripts I used with a short description. If you create something nice with them please share a link in the comments.


For the Bassdrum I combined a short noise burst with a bandpass filter sweep and a Sinewave with a linear pitch envelope."bd", {
    arg  n=0.8, nl = 0.02, start=110, end=1, l1=0.1, l2=0.3, exp=1.7;
    var boom;
    e = pow(,0,l2),exp);

    boom =,,10,nl))*,0,nl)*n+, end, l1))*e;,[boom,boom])


{{"bd", ["n":rrand(0.8,0),"nl",rrand(0.03,0), "start",rrand(100.0,50.0),"end",rrand(100,10), "l1", rrand(0.1,0), "l2", rrand(0.8,0.1),"exp", rrand(1,4)]);
read more ...

Volca Sample SuperCollider Drum Set

Nikolaus Gradwohl2018-02-09T21:00:59+01:00

I generated some random drum samples using supercollider and selected 100 samples as my new main drum kit for the volca sample. This is the first track I used my new drum sounds one. The volca sample gets a little help from the volca beats kick drum. The Bass sound is from the MiniNova, The synth track is from the Blofeld.

Volca Sample Supercollider Drum Set

read more ...

purple blocks

Nikolaus Gradwohl2018-02-08T05:18:06+01:00

I made a new short blender animation - just for fun. I used a displace modifier on a subdivided cube and animated the texture using an empty as a control object. I moved, turned and scaled the empty for five frames and then paused for 20. I then used a remesh modifier to turn the noisy mess of a mesh back into a bunch of cubes.

I like the jumpy animation - maybe I use it in a music video some time.

you can download the blend file here

purple blocks

read more ...