Showing posts with label commodore 64. Show all posts
Showing posts with label commodore 64. Show all posts

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.

Thursday, December 24, 2009

Let's Control A_SID Via Arduino

The A_SID emulates a Commodore 64 sound chip (the famous SID) using an ATMEGA microcontroller. Vblank did a workshop on the A_SID during this year's Blip Festival.

I've made a simple MIDI --> Serial --> A_SID setup. It works like this:

1. Max/MSP Patch - route your MIDI data to this patch
2. Arduino Code - download and then upload to your Arduino board
3. Arduino Hardware - connect 5V, GND and TX to the correct points on the A_SID circuit (essentially replacing the existing serial connection header if there is one).

Get these materials here. Still working to smooth out some of the details, so no point in really using it now. Quick demo of Ableton Live control below.

Wednesday, December 23, 2009

A_SID MIDI Interpretation Layer Is On It's Way




I have started making a simple MIDI interpreter for the A_SID board that we put together during vblank's excellent hardware workshop during Blip Festival. It's almost there. I just have to work out some timing issues.

Friday, October 16, 2009

Commodore 64 SID 8580 Basic Sample Pack (112 Samples)

I've made a C64 sample pack. To be precise, it's a sample pack, featuring every C and G note from C-2 to G 6 for the main basic waveforms of a Commodore 64 (8580 SID chip). The waveforms are triangle, sawtooth, pulse and noise. The duty cycle for the pulse wave was set to approximately 50%. The samples were recorded from C64 hardware directly using a custom designed interface.

Download the uncompressed sample pack here
(WAV / 44.1 KHz / mono)
Download the compressed sample pack here (MP3 / 192 Kbps / mono)

If you like this sample pack, you might also be interested in some of the following sample packs (all recorded from hardware using custom designed interfaces):

Sega Master System YM2413 Preset Instruments
Sega Master System YM2413 Drums
Sega Master System SN76489
Sega Mega Drive YM2612
SPo256-AL2 Speech Chip Allophones
Atari POKEY Noise
Atari 2600 TIA

Sunday, October 04, 2009

Commodore 64 As Bitcrusher Audio Effect (with Visuals)

Wednesday, September 30, 2009

Sample Playback on C64 at 44.1KHz - Just For Fun

Here's a very short video demonstrating sample playback on a C64 at 44.1KHz / 4 bits using a SID 8580. Due to size limitations, I was limited to 60,000 4-bit samples.

Because I used the Commodore 64 model with the SID 8580 in it, the audio output was so very quiet; i had to add about 30 dB of gain. As a result the audio was very noisy, and so I have also added a low pass and a high pass filter, to make it slightly more bearable to listen to. I would love to try this out using a Commodore 64 with a SID 6581 in it.


Saturday, September 26, 2009

Swapping Out 6526 ICs

I have had to swap out one of the 6526 CIA ICs on a working C64 of mine. This particular C64 has a special place in my hear; its been to Newcastle, Melbourne and Sydney and has also been played at the opening of the Adelaide Festival of Arts.

So anyway, the 6526 CIA #2 IC seemed to be delivering somewhat corrupt information, so it simply had to be swapped. I happened to have another C64 lying around with a broken SID chip, which I cannibalised for parts.


The donor C64...


The recipient C64...

Friday, September 25, 2009

iPod Touch & TouchOSC Controlling a C64





I made a quick video of using an iPod Touch and TouchOSC to control a Commodore 64 in real time.

Using the default 'Keys' patch for TouchOSC, a number of parameters of the Commodore 64s sound chip, the SID, can be controlled:

• Note on and off commands for two octaves' worth of piano keys
• Attack
• Decay
• Release
• Filter frequency
• Filter resonance
• Enable / disable triangle waveform
• Enable / disable sawtooth waveform
• Enable / disable pulse waveform
• Pulse wave duty cycle

Although this is only a preliminary mapping, I do like where this is going from a performance point of view, and I will be working on better / more meaningful mappings in the near future.

C64M: My Commodore 64 MIDI Interface

This morning I finally got around to designing and building a prototype Commodore 64 MIDI interface. I will be releasing the schematics and programming for it at some stage. My main aim is to have an array of C64s at my control.