## Calculating Euclidean Rhythmns using the Bresenham Algorithm

Recently I started playing with euclidean rhythms and implemented the bjorklund algorithm shown in the paper by Godfired Toussaint in ruby. The implementation isn't really rocket science (actually it's ring accelerator science :-)) but it uses recursive function calls, two arrays, multiple stages, ... and I had the feeling that this is far more complicated than it needs to be. After reading several posts, blogs and papers about the implementations of the algorithm I read somewhere that the algorithm produces the same result as the bresenham algorithm - at first I ignored the sentence and unfortunately I have no idea anymore where I read it but today I implemented a simple version of it an the results I get are the same as my recursive version - or rotations, which is fine because you usually loop over the sequences and are free to choose a starting point - so in case anyone is interested here is my bresenhamish method for calculating euclidean rhythms in ruby - shouldn't be too complicated to port it to different languages

``````def eucledean(k,n)
f = 1.0*n/k
res = Array.new(n,0);
a = 0
k.times do |i|
res[a.to_i] = 1
a += f
end
return res
end

(1..8).each do |i|
print eucledian(i,8)
print "\n"
end
``````

and this are the results I get for the 8 possible rhythms with 8 steps

``````[1, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 1, 0, 0, 0]
[1, 0, 1, 0, 0, 1, 0, 0]
[1, 0, 1, 0, 1, 0, 1, 0]
[1, 1, 0, 1, 1, 0, 1, 0]
[1, 1, 1, 0, 1, 1, 1, 0]
[1, 1, 1, 1, 1, 1, 1, 0]
[1, 1, 1, 1, 1, 1, 1, 1]
``````

## new Song: Walk in the Rain

A first electronic, ambient track recorded with my new Waldorf Blofeld with a little help from the Moog Mother32 and the Novation MiniNova.

Oh! And did I mention? I got a new Synthesizer... :-)

## Processing and Blender Sound Visualizer for Magical Dreams

I finally managed to finish a project where I could combine most of the tools I love and use. I created a processing sketch to visualize the stereo correlation of my song "Magical Dreams", exported the frames and used blender to create an animated highfield based on the brightness of the images. Then I rendered these frames and combined them to a video with the original track exported from bitwig.

Hmmm ... maybe a bit more complicated than needed, but that's one of advantage of a hobby project - you don't have to justify yourself for inefficient processes and toy around as long as you want to :-)

## new Song: Still Awake

I finally found the time to sit down and arrange and mix one of the song fragments that are waiting on my harddisk. I'm currenly very tired after a week full of nightshifts, overtime and bughunting but I'm still awake ... (ok not the best song title ever, but my thoughts are still a bit fuzzy - did I mention sleep deprivation?)

## SonicPI + Volca Jam

I recorded a SonicPI live jam exploring the new midi functionality. I used my Volca Keys, Volca Bass and Volca Sample for the recording.

## New Track: Drops in the Dark

I recorded a new track featuring my mother32, 0-Coast, Streichfett and the repro1 recorded and mixed using bitwig-studio

## Semimodular meets SonicPI

This is a recording of a livecoding jam with the latest developmentversion of sonicPI. I used the new midi functionality to control my Moog Mother 32 and my Makenoise 0-Coast.

## Battle of the Bass-Machines

Korg Volca Bass vs Roland TB-3

a battle of the Bass-Machines recorded and mixed using Bitwig-Studio

## New Track: The World you don't see

for every world you know there is at least one that go unnoticed ...

Listen to my new Track on soundcloud

## music live-coding environments - my first impressions

I've been playing with live coding Music environments lately here is a short description of the environments I've used so far

## Sonic PI

Sonic PI is a live coding music environment that comes bundled with most raspberry pi images and was invented to teach coding through making sounds. But don't be fooled by it's simple interface or the name - Sonic PI is a pretty serious tool for making music. Despite it's name it runs on Linux, MacOS, Windows and - surprice! - a raspberry pi and is based on supercollider and ruby.

To program it you write ruby programs that contain loops to trigger various synths and samples - you can add a bunch of effects and control various parameters of the synths. It also allows you to write pretty complex melodies and chord structures, by adding random elements to your code.

Sonic pi already comes with a impressive collection of loops, samples, example programs and synths to get you started, but it also allows you to add your own samples or supercollider synth definitions if you want to.

## Chuck

Chuck is a pretty unique programming language, that allows you to write virtual instruments and control them either with your code or with various controllers via midi, Hid-events, osc, or whatever else you come up with. You can start and stop your code in sync with the loops already running and it's the basis for the laptop orchestra.

The language used feels a bit strange in the beginning but one gets used to it pretty fast.

## PureData + automatonism

Automatonism is a Modular Synth that runs on PureData Vanilla - which means it runs pretty much everywhere. It's a really impressive collection of modules, plus you can use it to livepatch and edit your modules. Since it runs on puredata, you can also use regular puredata structures should you ever get stuck with the provided modules.

The modules help to create a playable pure data patch pretty fast and allow you to expand from there if you want to dive deeper into the pure data universe.

## Conclusion

Each of the frameworks I tested this weekend is pretty cool and each of them has it's strengths and weaknesses - I haven't played enough with them to choose a favourite yet. I will try to integrate them into my current Bitwig, VST-Plugin and hardware synth setup and see which one I end up using