midi interface for the commodore vic-20
DESCRIPTION
Brief description of the VIC-20 MIDI Interface Project. Check out the demo tune: http://soundcloud.com/schema-factor/rethinking-art-and-the-machineTRANSCRIPT
![Page 1: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/1.jpg)
Leif Bloomquist
Rethinking Art and the Machine
Tools For 8 Bit Music
@ THEMUSEUM – Kitchener, ON, Canada
December 11, 2011
![Page 2: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/2.jpg)
Project Goals
Make the Commodore VIC-I (6560) chip’s distinctive sound available to electronic musicians.
Easy integration with sequencers, synthesizers, or tracking software using MIDI1.
1Musical Instrument Digital Interface
![Page 3: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/3.jpg)
The VIC-20’s Voices
Square Wave output (except Noise) Some overlap between voices
![Page 4: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/4.jpg)
The MIDI Protocol Defined in 1982.
Asynchronous Serial Interface at 31.25 Kbps.
Messages consist of a Status byte (bit #7 set) followed by Data bytes (usually two).
16 “Channels”.
Commands such as Note On, Note Off, Control Change, etc.
![Page 5: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/5.jpg)
Typical MIDI Message
9 1 3C 40
Status
byte
Data
bytes
Channel
Command
![Page 6: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/6.jpg)
Hardware Schematic
From Electronics, the Maplin Magazinehttp://members.lycos.co.uk/templarseries/maplin.html
![Page 7: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/7.jpg)
Prototype
![Page 8: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/8.jpg)
Software
6502 Assembler
Cross-compiled using DASM2
2 http://dasm-dillon.sourceforge.net/
![Page 9: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/9.jpg)
Implementation One MIDI Channel per Voice
Channel 1 = Alto (36874) Channel 2 = Tenor (36875) Channel 3 = Soprano (36876) Channel 4 = Noise (36877)
Master Volume is set through Controller #7 (Coarse Volume) on any channel
![Page 10: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/10.jpg)
Implementation (Continued)
Note On commands use a lookup table to match MIDI Note# to the closest match for that voice.
Controller #1 (Course Modulation) does a direct “POKE” to the corresponding Voice register.
Note Off, All Notes Off commands on a specific channel are used to silence that voice.
![Page 11: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/11.jpg)
Left to Implement MIDI “Running Status”
MIDI-Out (use the VIC keyboard to control external hardware)
Mono/Polyphony Modes that use multiple voices
PAL or NTSC lookup tables
Viznut’s waveforms
![Page 12: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/12.jpg)
Next Steps
More sophisticated prototype including MIDI Out and autostart ROM
Small manufacturing run of cartridges – quantity and price TBD.
![Page 13: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/13.jpg)
Credits Hardware:
LD. Ball Francois Leveille Jim Brain
Software: Leif Bloomquist David Viens “Viznut”
![Page 14: MIDI Interface for the Commodore VIC-20](https://reader036.vdocuments.net/reader036/viewer/2022062303/5582592ed8b42a09258b4eda/html5/thumbnails/14.jpg)
Demo Tune!
http://soundcloud.com/schema-factor/rethinking-art-and-the-machine