Yamaha DX7 Special Edition ROM (SER7) binary file

I recently got a secondhand Yamaha DX7 mkI that needs some minor work when I learned about this Special Edition ROM, sometimes referred to as SER7. I could only find it on a message board,, so I figured I’d re-upload it here for anyone else looking for it. You can often find upgrade chips online in the form of pre-programmed 27c128 128Kilobite EPROMs, but someone on Modwiggler mentioned buying your own from buyICnow and giving them the .bin to have burnt for you.

Link to the download: Yamaha DX7 Special Edition ROM

Ensoniq ESQ-1 “Hidden Waves” Patch Sysex Dump

In the above link are Sysex dumps for the Ensoniq ESQ-1 containing two patches. In the “ESQ1_All_OSCS_WAV255” patch, Oscillators 1 through 3 (OSC1, OSC2, OSC3) have their waveforms set to “WAV255”, which are otherwise inaccessible through the built-in patch editor. The other patch ending in “_WAV127” is essentially the same, but the default waveform is WAV127. I made both because the “WAV255” patch only lets you scroll between WAV128 and WAV255, whereas the “WAV127” patch gives access to WAV127 down to the default waveforms (SAW thru OCT+5).

This post builds off of information found from the “hidden waveforms” page on

For those curious, the bytes containing the waveform selection for OSC1, 2, and 3 are at memory locations 0x83, 0x97, and 0xAB (underlined in the image below):

I used Sysex Librarian ( to capture the Sysex data from the Ensoniq ESQ-1, manually set the waveform indeces to 0xFF (WAV255) and 0xF7 (WAV127) using Hex Fiend (, and re-sent to the ESQ-1. I found that I needed to be in the program view on the ESQ-1 in order to receive the Sysex transmission from Sysex Librarian.

Python FIFO buffer for limiting MIDI message rate

For anyone curious about limiting the flow of MIDI messages, say, from the Ctrlr app, I hacked together a Python script pasted below. You’ll need the mido and python-rtmidi libraries.

Basically, MIDI messages received at the input put are written to a first-in, first-out buffer, whose output is throttled by the sleep() function before being passed to the MIDI output port. It’s not super elegant, but I’m able to use the Ctrlr app for the Yamaha TX81Z without the dreaded “MIDI BUFFER FULL” message. There is a noticeable lag if you’re really cranking knobs, but the tradeoff is no buffer overloading. :^)


Formatting is a little screwy pasting into WordPress, no warranty provided!!

import queue
import mido
from mido import Message
from time import sleep

# print names of all available inputs

# print output names

# set input port to "IAC Driver Bus 1"
inport = mido.open_input('IAC Driver Bus 1')

# set output port to "USB Uno MIDI Interface"
outport = mido.open_output('USB Uno MIDI Interface')

# init Queue
capacity=0 #set to 0 for infinite queue size

# MIDI queue loop
while True:
for msg in inport.iter_pending():

while not Q.empty():
# wait certain amount of time
msg = Q.get()
# could insert a print(msg) to monitor output.

Sony AV-3400 Scanner Motor Troubleshooting – Part 1

I recently bought a Sony AV-3400 Portapak setup, which includes the portable AV-3400 video tape recorder, AVC-3450 black and white Vidicon camera, and an AC-3400 AC power supply. The decision to buy one was mostly based on curiosity and “nostalgia” for a device that was so revolutionary in the world of media/personal media.

At any rate, I went into it knowing it might need some work, and it does. The video below summarizes its current state:

I reached out to Rich Diehl aka LabGuy, attaching the video and asking for pointers. He noted that if the motor isn’t spinning, the VTR isn’t generating sync signals, which the camera requires if I want to do anything beyond just looking at pretty pictures in the viewfinder. He then suggested I inspect the rubber foam inside the motor that keeps pressure between the motor brushes and commutator. By the way, if you’re interested in the history of video hardware like I am, check out his website and YouTube channel! I also bought services manuals from him for a very reasonable price. Thanks! 🙂

At any rate, here are some photos I took while trying to access the scanner motor. The service manual wasn’t abundantly clear about how, so I first tried from the bottom of the AV-3400. Enjoy, and if any progress is made I’ll make another update.

First Step: Removing the rear/bottom chassis:

This slideshow requires JavaScript.

Second Step: Investigating the scanner motor and its surroundings

This slideshow requires JavaScript.

Third/Last Step: Unscrew some stuff carefully!

This slideshow requires JavaScript.


My Time as a Signal Culture Toolmaker in Residence

I recently was selected for a Toolmaker in Residence position at Signal Culture for the Spring/Summer 2018 season. Essentially, this experience allowed me time, space, and resources to focus on a technical project, while sharing a living space with another artist! You could argue that I could’ve done this project at home and didn’t need to travel across the country to do it. However, the beauty of an experience like this is developing a real connection with others whose creative interests are similar to mine, and passing ideas and inspiration back and forth. This post serves as mostly a technical log of my time at Signal Culture. I plan to write a less technically-oriented post, but wanted to dump the nitty-gritty details from my brain before I forgot everything. 🙂

Pre-Signal Culture planning

I originally set out to build an LZX-format video buffer module. For a given input signal, the module will produce three buffered signals: the unaffected signal, an inverted signal, and the signal subtracted from 1V. This module will compliment earlier LZX Mapper experiments in generating Sine and Cosine waveforms from a ramp signal. By creating multiples of the direct and inverted the sine/cosine, I can generate quadrature sinusoids with minimal patching. Eventually, I hope to perform vector rotation which requires a quadrature sinusoid source!

Demonstration of generating a quadrature sinusoid using the LZX Mapper. The 60Hz Vertical Ramp feeds the Hue input, and Sine/Cosine outputs are found on the U, V jacks. Inverting these gives phase shifts of 0, 90, 180, and 270 degrees (yellow, green, purple, blue signals, respectively)


For each of the module’s buffers, one op-amp circuit is required. I drew up the circuit and simulated it in LTspice to verify the design. For an input signal (n), V(non) corresponds to the (+n) buffered signal, V(inv) represents the (-n) inverted signal, and V(sum) is the (1-n) signal. V(vref) is a -2V reference voltage used in the summing op-amp circuit.

Ideal Circuit Outputs — Non-inverted signal, Inverted signal, 1V-original signal.

LTspice schematic for each of the three buffer types.

Once the design looked functional, I made a schematic and PCB design using Eagle, and ordered a few boards through OSHpark and had them shipped to Owego!



Arriving at Signal Culture

On Friday, I pretty much just recovered from a brutal travel schedule that included sleeping in Newark Liberty International Airport. (Note to self: bring a sleeping pad when air traveling) I met a local named Jim who had just gone swimming with his dog, and ate lunch in a nearby church cemetery. Shortly after, I met Hank Rudolph, Signal Culture co-founder and Residency Director, and Brighton-based Andrew Duff, the week’s Artist in Residence!

Saturday, Hank gave us an in-depth tour of the artist studio. Highlights include the beautiful, rippling Wobbulator, Dave Jones’ colorizer with priority mixing, and the frame buffer. My mind started running with ideas seeing Hank use an external key source with the frame buffer! The video patch bay simultaneously impressed me and evoked painful reminders of tangled wires when using several video devices. There’s a lot to be said about having a plug-and-play studio.

Hank and Andrew
Hank giving Andrew and I a tour through the instruments

Artist Studio
From top, clockwise: Output monitor, Panasonic WJ-MX50, Dave Jones Output Amp, Patch Bay, Hearn Videolab, Dave Jones Frame Buffer (red unit), Dave Jones Colorizer, Audio Eurorack system, Serge audio system.


After the studio demos, I began modifying my LZX Cadet IV Ramp Generator to output a +/- 0.5V ramp signal instead of a unipolar 0-1V signal. In my vector rescan experiments, it’s always bugged me that the LZX ramps are from 0-1V and not bipolar. When trying to modulate the size of the ramps, this tends to produce a shrinking/growing effect from a fixed corner point, instead of the more desirable “through-zero” Rutt Etra effect. This mod would keep me busy while waiting for the video buffer PCBs to show up.

It ended up being a lot more difficult than I thought; lots of little soldering and op-amp design mistakes caused it to take multiple days. It really bolstered my troubleshooting skills!! Basically, I just modified the inverting buffer for each of the ramp outputs to act instead as an inverting summing amplifier. I fed it the original 0-1V ramp, as well as the -2V reference voltage found elsewhere in the circuit. Applying some scaling with resistors and it should produce the bipolar signal.

Throughout the course of my modification, I think I fried my TL072 op-amp, which produces the scaled, buffered -2V reference signal from the TL431 voltage reference device. It got really hot and seemed to be drawing a lot of current. We paid a visit to Dave Jones and he highly recommended cleaning up the flux/solder splashes. In the end I got the bipolar output working, but only at +/- 0.4V — good enough for now!


c4_unipolar (2)
Original unipolar, 0-1 volt H/V ramps demo. Each ramp is being processed by a 2-quadrant multiplier, modulated by a slow LFO. The raster shrinks/grows from the top-left origin of the raster.


c4_bipolar_small (1)
Modified bipolar, +/- 0.4 volt H/V ramps demo. Each ramp is being processed by a 4-quadrant multiplier, modulated by a slow LFO. This results in a “through-zero” mirror of the raster in both directions.


Building the video buffer circuit

The PCBs arrived Wednesday and I finished my Ramps mod sometime that same day, or Thursday. It’s kind of a blur, I don’t remember when I finished it. I know I built the A subsystem of the video buffer circuit Wednesday night!   I also tested it; the non-inverting and inverting buffers worked fine, but not the 1-n amplifier.

I made an error in the PCB design for the voltage reference amplifier that generates the -2V signal — the output and inverting input were shorted together, and this trace was being sent all over the PCB. I had to cut some op-amp pins and rearrange some resistors to get it working, which eventually was fruitful!

Strangely, the inverting buffer stopped working. Or maybe it never worked and I just now realized it. Similar issue: I accidentally shorted two of the output pins in the PCB design. By this point, I’ve gotten pretty decent at making an op-amp circuit work when the PCB is totally screwed up. It’s pretty meditative, actually, like electronics surgery. Anyway, I had to modify each of the three inverting op-amp circuits before they were working.

Fully-functional video buffer module! Complete with resistor-solder sculptures 😉

Annnnd that was pretty much it! Aside from the reference voltage and inverting buffer problems, the module works! I verified each of the three subsystems (A, B, C). For test signal generation and oscilloscope duties, I used a Diligent Analog Discovery 2. It’s USB controlled and has accompanying software to view the scopes, etc. I just used a 1kHz 0-1V sine wave as the input signal when testing each of the buffer circuits.




I finished the circuit build & testing Thursday night. The timing worked out really well, leaving just cleaning up and packing for Friday morning.

Next steps / Conclusion

With the circuit functioning as expected, I next want to add another layer, probably protoboard, for the input/output jacks. I also want to make normalled, cascaded connections with the input jacks to easily create extra multiples of just one signal. Panel and I/O circuit board will probably have to be done concurrently to meet the hardware requirements of a proper Eurorack module.

Update, June 28: I’ve been working on an I/O PCB that essentially connects jacks to the video buffer circuit board, allowing you to patch video in and out. I’ve also been mocking up a panel design, a preview can be seen here:

Screen Shot 2018-06-28 at 12.54.38 PM
Mockup of panel & I/O PCB for video buffer module

Modifying my Cadet IV Ramps was an interesting lesson in circuit modifications, op-amp theory, and trouble-shooting. I also had to get really creative with soldering, it was almost like creating a mini sculpture out of resistors and op-amps! I had been thinking about how to make the modification for some time at a theoretical level, but didn’t expect it to take several days to complete.

I think the Cadet mod was perfect preparation for building my video buffer module. I decided to take a piece-wise approach instead of building the whole circuit at once. After adding the first set of components, I noticed some circuit board errors with the first iteration. Prior to fabrication, I sort of rushed into the PCB design; a key takeaway for me is to re-verify the design before diving head-first into building!! It probably would have saved me much time cutting op-amp legs, desoldering resistors, etc…


This was a fantastic experience, and I’m grateful to have been chosen to participate. I certainly want to come back next spring/summer as an Artist in Residence to play with the Jones Frame Buffer 🙂 I also got to experiment with the Pixelvision camcorder a bit. It produced really obscure, lo-fi images of whatever the lens was pointed at. The whole week I pondered getting some spooky cemetery footage; I think the Pixelvision would be perfect for it!!