I've made a few small changes to some bugs or issues with the Sega Mega Drive MIDI Interface. In particular:
• The polyphonic handler has been re-added to the current build, and has been optimised greatly since its previous incarnation.
• The LFO FM amount was corrected. Previously, the amount had a range of 2 bits, which was incorrect. This has been updated to the correct amount of 3 bits.
Monday, August 31, 2009
Friday, August 28, 2009
The Excellent Work of Danny Cisco (aka Neutro)

I thought I would briefly highlight the excellent work that Danny Cisco (aka Neutro) does in terms of video game system modification. Based in Melbourne, I believe that the images on his site are proof of someone who pays attention to detail with excellent results.
Visit his site Gumball Electronics.
Sega 32KB EPROM Hack: Update
Previously, I've posted about how to make a 32KB re-writable Sega Master System cartridge using an EPROM an an original SMS game.
In this hack, the !WR line from the Sega cart slot was connected to the EPROM programming voltage pin.
Although I have never, ever had problems with my systems and this hack, someone has suggested that the EPROM could possibly draw too much current from the !WR line via the programming voltage pin.
One easy way to fix this is to 1) cut the trace going to the programming voltage pin of the EPROM and 2) solder a wire from VCC to the programming voltage pin. I have tested this and the cart still work fine. See below for a picture of the simple modification.
In this hack, the !WR line from the Sega cart slot was connected to the EPROM programming voltage pin.
Although I have never, ever had problems with my systems and this hack, someone has suggested that the EPROM could possibly draw too much current from the !WR line via the programming voltage pin.
One easy way to fix this is to 1) cut the trace going to the programming voltage pin of the EPROM and 2) solder a wire from VCC to the programming voltage pin. I have tested this and the cart still work fine. See below for a picture of the simple modification.
Sunday, August 23, 2009
Sonifying Conway's Game of Life
Every cell (pixel) in the playing field controls an oscillator. When a cell is alive (coloured), the oscillator turns on. When it is dead (black), the oscillator turns off. A cell's position from left to right will determine its position in the stereo field. A cell's position from top to bottom will determine its frequency (pitch) with a bit of randomness thrown in for good measure. As the playing field reaches a more complex state with more and more living cells, the cpu load increases dramatically, as the audio is being output in real time. The size of the playing field is 100 pixels by 100 pixels.
If you're interested in the Max/MSP patch, first of all install my Game of Life Max/MSP object, and then download the patch here.


If you're interested in the Max/MSP patch, first of all install my Game of Life Max/MSP object, and then download the patch here.


Labels:
digital manipulation,
diy stuff,
max/msp
Friday, August 21, 2009
Extratone Compilation
I have a track in the Chipmusic Extratone Compilation, out now.
Labels:
chipmusic,
compilations,
little-scale
Wednesday, August 19, 2009
mxj gol: Game of Life Max/MSP Object
Overview
I have made a very simple max object in order to use the Game of Live by Conway with the LCD object in Max/MSP.
Object
Here is an overview of the arguments, inlets and outlets.
Arguments:
- Argument 1 is the width of the LCD in pixels
- Argument 2 is the height of the LCD in pixels
Inlets:
- Inlet 1 is the trigger to generate the next iteration (via a bang)
- Inlet 2 is the R colour output component
- Inlet 3 is the G colour output component
- Inlet 4 is the B colour output component
- Inlet 5 should be connected to the gated output from the LCD (see below)
- Inlet 6 should be connected to the gated output from the LCD (see below)
Patch Example

Download and Install
Get the .class file here and the .jav file here.
Move to the directory: Max 5 > Cycling '74 > java > classes
To use in a patch, create a new object box and type mxj gol [xwidth] [ywidth]
To edit, create a new object box and type mxj quickie gol
Video Example
I have made a very simple max object in order to use the Game of Live by Conway with the LCD object in Max/MSP.Object
Here is an overview of the arguments, inlets and outlets.
Arguments:
- Argument 1 is the width of the LCD in pixels
- Argument 2 is the height of the LCD in pixels
Inlets:
- Inlet 1 is the trigger to generate the next iteration (via a bang)
- Inlet 2 is the R colour output component
- Inlet 3 is the G colour output component
- Inlet 4 is the B colour output component
- Inlet 5 should be connected to the gated output from the LCD (see below)
- Inlet 6 should be connected to the gated output from the LCD (see below)
Patch Example

Download and Install
Get the .class file here and the .jav file here.
Move to the directory: Max 5 > Cycling '74 > java > classes
To use in a patch, create a new object box and type mxj gol [xwidth] [ywidth]
To edit, create a new object box and type mxj quickie gol
Video Example
Labels:
digital manipulation,
diy stuff,
max/msp,
video synthesis,
visual arts
Earthlings
A friend recently invited me to see the excellent and devastating documentary "Earthlings". Although full of a little too much rhetoric for my taste, the film certainly makes its point very clear.
Watch the full documentary here.
Watch the full documentary here.
Tuesday, August 18, 2009
automaticWeeds Object for Max/MSP
While experimenting with some cellular automata, I made this little object for Max. It's called automaticWeeds.The idea is to connect the object to an LCD object in Max.
Inlet 1: bang for next iteration
Inlet 2, 3 and 4: set the red, green and blue colour components of the visual output
Inlet 5 and 6: unpack the first outlet from the LCD object into two ints, and connect here
Outlet 1: connect to LCD
Argument 1 and 2: the width and height of the field in cells.
Argument 3: the size of each cell (as a square) in pixels.
The size of the LCD should be the cell field size as width and height times by the cell size in pixels. So, in the object above, the LCD object would be 600 x 600 pixels.
If anyone wants to muck around with this object (still a work in progress) or wants to see the patch please let me know.
I'm quite happy with the visual outcome, all though it can and will be worked on of course.
Labels:
max/msp,
video synthesis,
visual arts
Monday, August 17, 2009
Conway's Game of Life in Max/MSP

I made a very basic version of Conway's Game of Life in Max/MSP, which I'm sure many people are familiar with. My version has a space of 16 x 16, but it is very simple to change the grid size to be larger or smaller than this. My patch also allows the user to add living cells or dead into the game at any point, and has a play/pause button (space bar) as well as a clear field button (esc). Watch a demo of it below (there are still some bugs to be ironed out):
Friday, August 14, 2009
Michael Yuen's Donkey Institute in Beijing

Sounds like a great idea! If you are in Beijing, go and check this out.
Via Michael Yuen:
"After launching just over a week ago, the Donkey Institute of Contemporary Art (DICA) has been invited to hit the road again with the Beijing 798 Biennial. DICA will be travelling through 798 this Saturday 15 August presenting video by: Chen Xinpeng, Neville Mars, Yam Lau, Jean-François Côté, Ma Yong Feng, Li Zeng Hui, Elise Shen Yi. DICA is new non-profit art space based in Beijing by Canadian artist Yam Lau and myself. Donkey Institute of Contemporary Art (DICA) is an initiative dedicated to supporting experimental contemporary art on the back of a donkey travelling throughout the city. Thankyou to all the artists and visitors to DICA's first show. We appreciate all your support."
www.donkeyinstitute.net
Thursday, August 13, 2009
Saturday, August 08, 2009
Dual Nanoloop 2 MIDI Sync with Tuplet and Triplet Function
Overview
I made a sync device that will synchronise up to two copies of Nanoloop 2 to a MIDI clock source. The device is powered from on of the Game Boy Advance consoles, via swapping pins in order to gain access to a 3.3V signal.
The device also supports a "duplet / triplet" type mode. By sending a CC value to the device on CC number 1, the tempo relationship between the host and the slaves can be changed. Channel 1 is GBA console 1, and channel 2 is GBA console 2.
CC#1 (Modulation): 0 <= 31: slave plays 2 notes for every 2 notes that the master plays
CC#1 (Modulation): 32 <= 63: slave plays 2 notes for every 3 notes that the master plays
CC#1 (Modulation): 64 <= 95: slave plays 2 notes for every 4 notes that the master plays
CC#1 (Modulation): 96 <= 127: slave plays 2 notes for every 5 notes that the master plays.
Each slave GBA can be set independently. By combining the above rhythmic ratios, interesting rhythms and grooves can be established. See this video for a brief demo: http://www.youtube.com/watch?v=HeW_zMVoWts
Arduino Code
Download the Arduino Code here:
http://www.milkcrate.com.au/_other/downloads/projects/TwinNano2/TwinNano2.pde
Schematic
The schematic is very simple, it's basically a simple MIDI in circuit, with VCC coming from the Game Boy Advance #1. Digital pin 7 of the Arduino goes to Serial In on Game Boy Advance #1, and pin 8 goes to Serial In on Game Boy Advance #2. Add 0.1uF and 47uF caps between ground and VCC.
I made a sync device that will synchronise up to two copies of Nanoloop 2 to a MIDI clock source. The device is powered from on of the Game Boy Advance consoles, via swapping pins in order to gain access to a 3.3V signal.
The device also supports a "duplet / triplet" type mode. By sending a CC value to the device on CC number 1, the tempo relationship between the host and the slaves can be changed. Channel 1 is GBA console 1, and channel 2 is GBA console 2.
CC#1 (Modulation): 0 <= 31: slave plays 2 notes for every 2 notes that the master plays
CC#1 (Modulation): 32 <= 63: slave plays 2 notes for every 3 notes that the master plays
CC#1 (Modulation): 64 <= 95: slave plays 2 notes for every 4 notes that the master plays
CC#1 (Modulation): 96 <= 127: slave plays 2 notes for every 5 notes that the master plays.
Each slave GBA can be set independently. By combining the above rhythmic ratios, interesting rhythms and grooves can be established. See this video for a brief demo: http://www.youtube.com/watch?v=HeW_zMVoWts
Arduino Code
Download the Arduino Code here:
http://www.milkcrate.com.au/_other/downloads/projects/TwinNano2/TwinNano2.pde
Schematic
The schematic is very simple, it's basically a simple MIDI in circuit, with VCC coming from the Game Boy Advance #1. Digital pin 7 of the Arduino goes to Serial In on Game Boy Advance #1, and pin 8 goes to Serial In on Game Boy Advance #2. Add 0.1uF and 47uF caps between ground and VCC.
Pin-swapping a GBA Cable for VCC
All Game Boy Advance link cables that I have seen are lacking the VCC pin. For anyone trying to build sync or control gear for a Game Boy Advance console, this represents a problem in that an external power source must be used. This is usually sourced from an AC/DC supply, a battery or battery pack, or from a computer via USB depending on the functionality of the device.
If only it were possible to use a GBA cable to supply power to an external device, thereby negating the need for an external power supply of any kind...
The process is quite simple and quick to do, but is a little annoying considering how small the link port and pins are. Simply use the smallest size of flat head jewelers screwdriver, and pry back the outside plastic shell of the link connection on the cable. There are two small, metal teeth that stick out from the connector and hold the plastic shell in place.
Thankfully, the teeth are easy to push down with the screwdriver and then it is possible to lift the outer lip of the plastic shell up and over the tab. This allows the plastic shell to be pulled further up along the GBA cable, exposing the link connection's metal outside. All of the wires are held in place by two metal tabs that hold the wires together as they exit the port connection. Using the screwdriver, pry the metal tabs upwards, freeing the cables.
Select a cable / pin that you don't need for the application you are using. Because I was making a sync device for Nanoloop 2, I chose to swap the SC pin for the VCC pin. More information about the GBA link cable can be found here. Whilst pushing down on the pin from the front and inside of the connector, pull the wire of the connector from behind the link connection. It should be possible to pull out the pin by the wire.
Now, simply insert the pin (with the correct orientation) back into the link port, this time in the position of the VCC pin (pin 1). Re-crimp the metal tabs, replace the plastic shell and try and lift up the metal teeth holding the plastic shell in place around the connector. Measuring between VCC and ground, there should be 3.3V which can be used to power components such as microcontrollers, LEDs etc.
Friday, August 07, 2009
Thursday, August 06, 2009
I'm in Merge Magazine
Peter Drew has recently written an article for Merge Magazine that includes a short section on chipmusic that mentions me.
"Every generation has its iconic movement in art. The Baby Boomers had Pop driven by Warhol. Generation X had the Young British Artists lead by the (now notso-young) Damien Hirst – and now in 2009 the race is on to capture the artistic voice of Generation Y. It seems that the ideas of each new generation always challenge those of the old, resulting in an endless cultural war over what is beautiful and what is true."
Read the full article here: http://www.merge.com.au/picturesandwords/generationwhat.
"Every generation has its iconic movement in art. The Baby Boomers had Pop driven by Warhol. Generation X had the Young British Artists lead by the (now notso-young) Damien Hirst – and now in 2009 the race is on to capture the artistic voice of Generation Y. It seems that the ideas of each new generation always challenge those of the old, resulting in an endless cultural war over what is beautiful and what is true."
Read the full article here: http://www.merge.com.au/picturesandwords/generationwhat.
Labels:
chipmusic,
little-scale,
shameless publicity
Martin Victory and Poppi Doser Present at PG Forum
Martin Victory and Poppi Doser presented at the music postgraduate forum yesterday. I really enjoyed hearing about their respective topics (the role of speech and speec synthesis in computer music (Victory) and acoustic ecology, specifically in a local context (Doser). Both presentations inspired me.
Tuesday, August 04, 2009
DPAD @ Freeplay, August 14th and 15th
Celsius and Derris-Kharlan will be speaking and playing at this years Freeplay - an independent games festival held in Melbourne on the 14th and 15th of August. They will be presenting some of my music alongside many other Australian chipmusicians' tracks. Eugene and Nathan will also be speaking about the chipmusic movement within Australia and will be playing a live set. Maddest Kings Alive and Astro Zombies will also be performing!
Check out the full program here, and more info about Freeplay here.
Check out the full program here, and more info about Freeplay here.
Labels:
chipmusic,
gigs,
shameless publicity
Migration of Mambo to a New Host Server
Recently, I had to deal with migrating a website (not one of mine) to a new host, including an installation of the content management system Mambo. Although not a major hassle, I don't normally deal with this sort of thing.
I'm sure there are easier ways to migrate Mambo, but here is how I did it:
1) Made a partial backup of all types from the previous host in Cpanel > Backups. Of interest to Mambo were the home directory, the databases and the email forwarding.
2) I had issues with restoring the home directory backup on the new host, so I uploaded it in Cpanel > File Manager on the new host and unzipped it on the server, moving all files and folders to the public www directory (that didn't already exist there).
3) I uploaded my old Mambo database using the "restore partial backup" option in Cpanel > Backups.
4) I checked configuration.php in Cpanel > File Manager, and added a new, identical user name and password in Cpanel > MySQL Databases. Then I simply added that user to the Mambo database that I uploaded in step 3.
I'm sure there are easier ways to migrate Mambo, but here is how I did it:
1) Made a partial backup of all types from the previous host in Cpanel > Backups. Of interest to Mambo were the home directory, the databases and the email forwarding.
2) I had issues with restoring the home directory backup on the new host, so I uploaded it in Cpanel > File Manager on the new host and unzipped it on the server, moving all files and folders to the public www directory (that didn't already exist there).
3) I uploaded my old Mambo database using the "restore partial backup" option in Cpanel > Backups.
4) I checked configuration.php in Cpanel > File Manager, and added a new, identical user name and password in Cpanel > MySQL Databases. Then I simply added that user to the Mambo database that I uploaded in step 3.
Monday, August 03, 2009
Sega Mega Drive MIDI Interface Preset Instruments
I have allocated a small portion of space in the Sega Mega Drive / Genesis MIDI Interface in order to have a bank of 16 preset FM instrument settings. The instrument present can be chosen via a CC message. I already have a number of presets, including: lead, bass, church organ, xylophone, string pizzicato and brass.
There is still room for ten more instruments, so if you have any suggestions for any specific instrument settings or sounds (especially from certain games etc) then please leave a comment or email!
There is still room for ten more instruments, so if you have any suggestions for any specific instrument settings or sounds (especially from certain games etc) then please leave a comment or email!
Labels:
chipmusic,
chiptech,
sega mega drive / genesis
Subscribe to:
Posts (Atom)





















