The Most User-Hostile POKEY Sequencer for The Atari Home Computer

"It's as easy as programming in raw machine code!"

P·HYDRA is a ...well, what the hell is it? You could say that it's a music tracker/sequencer*. It can certainly be used that way. It might be better thought-of as a live coding environment for music/sound.

In its current incarnation, P·HYDRA provides you with little more than a hex editor that you use to manipulate the contents of the computer's memory** whilst an interpreter runs in the background and executes the program code that you're plugging into RAM.

P·HYDRA is programmed with a sort-of virtual machine code; the virtual machine works like this:

There are four "heads", each with a program counter, delay counter, and a single general-purpose register. At every tick of the time-clock they decrement their delay counter, and when the counter reaches zero they execute the instruction pointed-at by their program counter. The instructions are all four bytes long, and look like this:


The DELAY byte sets the head's delay counter. After the current instruction is performed, the head will wait this number of "ticks" (jiffies, 60ths of a second – or 50ths, depending on where you live) before executing the next instruction.

The OPCODE byte tells the head what to do; maybe change the pitch or timbre of a POKEY channel, change the program counter of a head, store bytes in the head's register, &c..

And of course the OPERAND bytes provide data needed to execute the instruction.


You can listen to some "raw" captures of me playing the ol' HYDRA here: <http://alph.laemeur.com/snd/Atari/>. Or, if you want to hear it with the Atari zazzed-up a bit, here's an album on Bandcamp:


As powerful as programs like Theta Music Composer are, they're not performance sequencers; the sequences and instruments cannot be edited as they play. Moreover, chip trackers are designed for the composition of pop/dance music, not for weirdo, free-form, avant-garde-y arty music. I wanted something that would allow me to playback and modify sequences and sounds in real time, the way that one can with step sequencers and modular synthesizers, and I wanted to be able to compose way outside the box of Western musical traditions and into the realm of generative/stochastic music.


The interface is really user-hostile, I know. The reason is simply that I didn't want to spend a lot of time writing a UI; my priority right now is experimenting and developing the instruction set. Once I've developed the back-end to a place I'm happier with, then I would like to build a nice UI around that.


Sorry, it's not available at the moment. There's zero documentation, and it's completely impossible to operate without that, so... soon, I hope!