JavaScript desktop programs with NW.js

This is an overview and tutorial of how to create desktop programs for Linux, Mac and Windows using NW.js.

NW.js is a framework for building desktop applications with HTML, CSS, and JavaScript. It works by combining a JavaScript app with Node.js and Google’s Chromium browser engine into a single desktop program.

Continue reading


Volca-Freesound is an online app to load samples on the Korg Volca Sample.

It selects random samples from the database. So it’s not a sample manager like Vosyr or Caustic Editor. This app chooses random samples by itself. You can only control the maximum length of the samples and which Volca slots to overwrite, but not much else.

The app is a sort of ‘sample randomizer’. Use it to bring new life to your Volca Sample. Let it create a selection of new and unexpected samples that might inspire you to create new music.

Continue reading

Euclidean Pattern Generator 1.2

EPG 1.2

Euclidean Pattern Generator 1.2

This is the final version of the Euclidean Pattern Generator as a Java desktop application. I built this version five years ago, but never quite finished it. Now I want to get it out of the way to make a fresh start with a new online Javascript Euclidean patterns app that runs in the browser.

New in this last Java version is MIDI note triggering of patterns. That means individual patterns can be started and stopped by external MIDI Note On and Note Off messages. A drawback of earlier versions was that all patterns always played. There was just one button to start or stop all of them. I wanted to control patterns individually so that I could more easily make some sort of song arrangement.

Continue reading

Force Touch and Web Audio on the iPhone

3d touch iphone

3D Touch with pressure.js

Since a few weeks I have an iPhone 6S. It has 3D Touch, Apple’s technology to detect pressure on the phone’s screen. It takes some time getting used to. Things unexpectedly happen when you press down on the screen. But it feels naturally very soon. It’s like a third dimension after swiping across the surface of the screen.

The possibilities for audio and music are exciting. Drum rhythms can be tapped in much more expressively. All kinds of sound parameters can be controlled by pressure.

Continue reading

Generating MIDI with physics

Tinguely sculpture

Tinguely sculpture

This is an idea for an application that generates MIDI notes from moving machine parts. Not real machines however, but software simulations. Cogs, wheels and gears that rhythmically rotate and drive each other and while doing so transmit their rotation, torque and most importantly their collisions as MIDI notes and CC messages.

Continue reading

Metasepia 12″ by Don’t DJ

Metasepia vinyl

Metasepia by Don’t DJ

Musician Don’t DJ uses the Euclidean Pattern Generator in his music. A record was released and I became involved.

It’s been about five years since I posted anything in this blog, so this is a nice opportunity to try and bring it back to life.

Travel By Goods

Last year artist Thomas Baldischwyler contacted me. He runs the Hamburg based Travel By Goods record label and was to release a record by Berlin musician Florian Meyer under his artist name Don’t DJ. From Thomas I learned that Florian uses the Euclidean Pattern Generator in his music. Not only to produce music in the studio, but also to perform live on stage!

Continue reading

Euclidean Pattern Generator 1.1 – OSC support

Pure Data OSC patch

Pure Data OSC test patch

Summer is at it’s end and it’s time to do some programming again. The Euclidean rhythms application I made earlier this year still has a lot of potential for new functionality, so here is the new version 1.1.

The main new feature in this version is support for Open Sound Control (OSC). After the last version a great offer came from programmer Michael Heuer to collaborate and add OSC support to the application. So this part of the program is very much his work. You can view more of his projects on GitHub.

Continue reading

Euclidean MIDI Patterns

Euclidean MIDI patterns screenshot


In January I posted a Euclidean rhythm generator in Flash. Polyrhythms generated by a mathematical algorithm. I wanted the next version to be able to send MIDI, so I could use it with software like Ableton Live and hardware music machines like my Elektron Machinedrum.

Since Flash doesn’t do MIDI I spent the last few months learning Java and rebuilt the pattern generator to add MIDI capabilities.

Continue reading

Euclidean rhythms update

E(5, 13) pattern

E(5, 13) pattern

There’s an error in the Euclidean rhythms generator I posted in January. A few days ago I got a comment by Thomas pointing out the app generates wrong patterns. And he’s absolutely right.

Here’s an updated version in which I rewrote the algorithm code. I checked it with several patterns and they all came out correct, so hopefully I have it right this time.

Continue reading