mars writes software

bcr steps

bcr steps is a step sequencer and arpeggiator made for the Behringer BCR2000 controller. It can also be used on its own, or with almost any other MIDI controller. If you like, you can try out the applet version, though it won't give you the full MIDI capabilities of the standalone application.


You can download bcr steps v0.3 as a standalone Java application: bcr-steps.jar (109kb).

Download and run with java -jar bcr-steps.jar.

You can browse the built in help pages here.

bcr steps has a freshmeat page which you can use to track new releases.

bcr harms

A little while ago I came across this pretty cool applet that simulates the coherent states (so called Glauber states) of the quantum harmonic oscillator. You can read more about quantum harmonic oscillators on Wikipedia, or perhaps a quantum physics textbook (if you understand any of it please contact me, I could do with a bit of guidance). bcr harms takes this model and turns it into a soft synth. The interface is again based on the BCR2000's knobs and buttons.

There is an applet version for playing with, but the standalone version will definitely perform better.


You can download bcr harms v0.3 as a standalone Java application: bcr-harms.jar (110kb).

Download and run with java -jar bcr-harms.jar.

The top row of knobs lets you set the relative amplitude of the first 8 states of the harmonic oscillator. The second row controls the next 8 amplitudes. The two rows of buttons will select single states. With the bottom left hand knob you can set the average energy and force a Glauber state. Importantly, the stop/start button is situated on the right hand side, where the BCR2000 'store' button is. There are a few other parameters to play around with too. Furthermore you can control amplitudes by sending MIDI note messages to the application (e.g. by connecting a MIDI keyboard), this lets you play it somewhat like an instrument.

For more detailed instructions you can browse the built in help pages here.

bcr beats

bcr beats is a beat slicer which lets you cut up and play with an audio sample - you can trigger slices and loops with MIDI or the mouse and keyboard, set pan, volume and sample rate values and generally have lots of fun. As with bcr steps, the program was made for the Behringer BCR2000 controller, though it can be used with another MIDI controller or on its own. Please try out the applet version, though the standalone application is much nicer.

Last time I checked (November 2007) bcr beats had a rating of Excellent (5 / 5) on Softpedia - thanks guys!


You can download bcr beats v0.3 as a standalone Java application: bcr-beats.jar (109kb).

Download and run with java -jar bcr-beats.jar [samplefile], where [samplefile] is the audio sample you wish to slice up.

You can browse the built in help pages here.

bcr beats has a freshmeat page which you can use to track new releases.


pong goes beyond the realm of automatic compositions to find a musical creativity expressed within a simple computer game. It is an implementation of the pong game that works as a MIDI instrument. It produces music as you play the game, based on your actions in the game.

When you play pong, you play music. You can try it here as an applet, though that's not half as nice as connecting it to a nice soft-synth, adding a few effects and letting it play some loops for you, as in this (amateur) sample: pong (0b). It's made up of three voices played by pong - no meddling with the MIDI or audio.

For your incidental compositions you can choose computer, keyboard or mouse control (or gamecontroller if you get the source) for the left and right rackets. You can choose the scale that pong plays notes from when the ball is hit. You can choose the tempo of the performance. The MIDI output device. The MIDI channel. This pong uses Swing and requires Java 1.4 or newer.


You can download pong as a standalone Java application:

Executable pong.jar (66kb).

Download and run with java -jar pong.jar.

You can download pong as a VST module:

Mac OS X (313kb).

Windows (168kb).

Note that I've used the Java VST libraries jvaptools and jvstwrapper (thanks guys!) which apparently has problems with Cocoa-based hosts on the Mac. It works fine in Ableton Live, though it crashes Audacity. And they haven't yet done a linux version, sorry.

Also note that I've never had the opportunity to test the Windows version. If you try it out and it works (or not) then please let me know! Same if you try any untested Mac OS X apps.

To set up a MIDI plugin in Ableton Live, do the following: Create a MIDI track and drop in the pong plugin. Create a soft-synth track. Set the soft-synth MIDI From to the pong MIDI track. Set the Input Type to pong VST plugin. Arm the softsynth track, play pong and enjoy.

pong also has its own freshmeat page.


Pretty standard fare, a MIDI keyboard that you can play on your computer. Gives you access to two octaves on a regular computer keyboard.


To run, download miditoys.jar (268kb) and execute with java -cp miditoys.jar com.pingdynasty.midi.Keyboard.

You can control note velocity, modulation and bend with the mouse, just drag it over the control surface (hold shift to control bend instead of modulation). To move the mouse without changing parameters, try pressing a mouse button.

The keyboard is set up to play two octaves with the white notes on the second and fourth keyrows, and the black notes on the row above. Keyboard mappings can be set up for your locale by adding a file, email me for details (or edit com/pingdynasty/midi/ in the jar file).

To change octaves you press the up/down arrow keys. You can also send an all-notes-off signal with the escape key, which also resets modulation and bend to reasonable values.

The channel controls which MIDI output channel is used.

walking bass

Provides accompaniment to the improvising musician. Never tires, never gets bored. Never plays off key. Comes with a bunch of scales and easy to add more.


To run, download miditoys.jar (268kb) and execute with java -cp miditoys.jar com.pingdynasty.midi.WalkingBass.

To start and stop the built-in musician press the space bar. A BPM slider at the top of the screen lets you control the tempo. You can also change which scale is used (you can add more scales by editing com/pingdynasty/midi/ and the MIDI channel.

Walking bass walks up and down the chosen scale, taking one or two steps at a time. It will prefer the middle of the scale, though sometimes venture to the highs and lows. You can control the preference for the middle (skew) with the left (less) and right (more) keys.

The walking bass also incorporates the functionality of the keyboard which is controlled in the same way. The velocity, modulation and bend controls also influence the walking bass.


padlok is an encryption tool based on the unbreakable one-time pad (wikipedia) encryption scheme.

The scheme works with a very large key, distributed to members in the group on a CD or USB key. padlok is a highly secure and useful encryption tool for small groups with occasional physical contact.


blipbox is a physical computing project that involves firmware (written in C and C++), client side software (MIDI and OSC oriented, written in Java) and an open hardware platform. The device itself is a touch sensitive screen backed by a matrix of LEDs which can be used for music production, as a visual controller, or anything else you want it to do. More information is available on the project website.


The VST plugins make use of jvstwrapper which is reported not to work so well on all platforms, see the discussion under pong.

On Mac OS X, you will need to download the Plumstone MIDI SPI in order to access MIDI devices other than the built-in ones. You can get it from here.

If you come across any other problems, please get in touch.


See and for some of my other software projects.


The software on this page is born free! Published under the GNU General Public License. You can access the source code CVS here.