Tuesday, March 30, 2010

How To: Make A Commodore 64 MIDI Interface

Here is how to construct a basic Commodore 64 MIDI interface. It gives the user real-time control over the SID chip via MIDI data in terms of basic synthesis. If you already have access to an Arduino, then this could be quite affordable. The setup (and the outcome) is relatively simple, but it works fine for me and what I need it for. You can use either a MIDI connection or a USB connection with a software-based serial to MIDI converter patch.

Obviously, this post assumes you are familiar with using an Arduino and putting C64 software onto a cartridge. Shoot me an email (seb dot tomczak at gmail dot com) or leave a comment if anything needs clarification for you.

Oh yeah - if you enjoy this sort of stuff, please consider donating a few bucks using the donate button on the right hand side.


Minimum Parts list:
- Arduino board or compatible device (eg. RBBB etc)
- Edge connector
- Wiring
- Breadboard (optional)
- Breadboard jumpers (optional)
- MIDI input circuit (4n28, 1n4148, 220Ω, 3.3kΩ, 100kΩ,) or USB cable

In terms of sourcing the edge connector; you don't need one that is the exact pin count of the C64 Userport - you just need one that is longer. Then simply cut the connector to size. Places that stock arcade parts should have edge connectors. Or just try eBay.


Connections:


Commodore 64 Userport Pinout (at computer)

For the MIDI input circuit:

For USB Use:
Simply attach a USB cable to your Arduino board. You will have to change the baud rate to 57600 in the Arduino code instead of the 31250 MIDI baud rate. You will need to have some form of midi to serial software layer running on your host computer, such as the midi2ser patch (primarily made for OS X).


Software


This includes: 
the Arduino code, and upload it to your board or chip.
the C64 program and put it onto an EPROM-based cart or other C64 memory device.
the midi2ser patch (if using the USB option under OS X)


MIDI Mapping


Demo Video:
Controlling Commodore 64 and SID chip using iPod Touch and DIY MIDI Interface.

6 comments:

10k said...

Now all I need is a Commodore 64!

Rinus Aarts said...

I'm trying to figure out how to transfer files from my Macbook to the C64, but there doesn't seem to be an easy way. Do you know of any?

www.sofas.nom.es said...

I read a lot of helpful info in this post!

Joel said...

Hey Seb.

This looks great. Would it be able to be used to create drum sounds, or is it really for mono/polyphonic melodic parts? - i.e. sending a midi note 60 for a kick sound, midi note note 61 for a snare sound.

Cheers
Joel

Anonymous said...

Hi, I'm getting ready to build one of these for an upcoming C64 project. Anyone aprt from the author made one?

Quick question, can or does the user port from the C64 supply the power or is the Arduino externally supplied?

I'm using an Uno R3 board, is there anything to be aware of or will the circuit work as described?

Thanks

Joel said...

Would this work with M64 or other midi-to-SID software.

I want to use my C64 and some midi drum triggers to bang out some nasty SID sounds live.