Offline
Toronto, Ontario, Canada

So, I've recently thrown together a prototype that uses a raspberry pi to mimic the features of an arduinoboy.  It's in it's very early stages, currently only master sync and [some] mGB functionality is complete, but I thought I'd come to you guys and ask for some feedback.

Given that the Raspberry Pi is far more powerful than an arduino, there are a lot of interesting possibilities.  You could run a tracker on the Pi itself and have it output a midi clock to sync other devices. It can use both regular DIN MIDI as well as USB MIDI, which is also useful.

In it's current form it has the following:

-MIDI IN (DIN 5)
-MIDI OUT (DIN 5)
-DMG link port
-2x USB (supports MIDI input)
-1x 3.5mm Audio output

The device currently boots immediately into my half-finished RaspberryBoy MIDI software, which takes input from a single pin (button) to switch between modes.  Connecting the RasPi to a monitor or TV will allow you further options and the ability to run other software, like Schism Tracker or whatever you'd like to run.

There will be a config file that'll let you easily customize which sync profiles/modes you wish to cycle through using the button.  All the code will be open-source, I just need to get all the basic functionality done and the code cleaned up a bit, but I'll release an early beta as soon as it's usable.

What I want to know, is what other types of sync options this device should have. I want this to be a solution that can work with a very wide variety of devices that the chiptune community might work with.  MIDI covers a pretty wide spectrum, but are there any other devices similar to the Game Boy that require unique sync solutions? Should I add Sync24? Does anyone need NES controller port automation (even if it's just for use with lightwall)?

I don't want complexity for the sake of complexity, but I've got quite a number of IO pins free and if the implementation isn't overly complex, there's no reason not to add it.

Last edited by jefftheworld (Jan 2, 2013 2:27 pm)

Offline
Abandoned on Fire

Really exciting stuff!

Offline
Toronto, Ontario, Canada

Features people have requested that sound really cool and I'll certainly add:

*Transpose flag - add this flag to any mode in the config file and all note data will be transposed by x semitones
*Arpeggiater flag - add this flag to any mode in the config file and all note data will be arpeggiated.
--- For example:   arp 8,0,5,9  would do 8th note arpeggios using the root, perfect fourth and major sixth.

Things I'm really interested in, but won't be on the top of my list

*Visualizer that also syncs to the MIDI clock (since the Pi has both HDMI and composite video output)

Last edited by jefftheworld (Jan 1, 2013 8:40 pm)

Offline
Matthew Joseph Payne

This is awesome!

What if this were a modularized piece of software - so you coud wire up all your MIDI hardware, and there would be "plugins" for all the different common types of chiptune midi interfaces - midibox, SammichSID, arduinoboy/mGB, midiNES etc etc etc. each "module" that you load adds the relevant channels to the tracker.

Also: I love the idea of controller  port automation.

Offline
Turku, FIN

This sounds super neat!

Offline

i've been waiting for right reason to get a rasberry pi, and now i think i've found it. anxiously awaiting this.

Offline
Sweeeeeeden

Make it directly interface LSDj/Nanoloop. If it's the ultimate sync solution, what's the sense in requiring another device to sync a Gameboy? That would need some level shifting to +5V signal levelling though. (Same for sync24, and even MIDI if you want to adhere very strictly to the standard.)

However, I think if you wanted something that is mostly a "sync hub" I think it would be more sensible to use an 8-bit microcontroller instead of an RPi. The key point is to have a lot of hardware UART.

Offline
Riverside, CA

^that
Ideally I would just want to do something easy like solder a link cable to that GPIO board or whatever.

Offline
Toronto, Ontario, Canada
nitro2k01 wrote:

Make it directly interface LSDj/Nanoloop. If it's the ultimate sync solution, what's the sense in requiring another device to sync a Gameboy? That would need some level shifting to +5V signal levelling though. (Same for sync24, and even MIDI if you want to adhere very strictly to the standard.)

However, I think if you wanted something that is mostly a "sync hub" I think it would be more sensible to use an 8-bit microcontroller instead of an RPi. The key point is to have a lot of hardware UART.

Yeah, it has a Game Boy link port and direct support for arduinoboy-esque features.  That's how it started, I then wanted to expand upon the concept and take advantage of the power of the RasPi.

It has 17 GPIOs and options for expanding that quite easily through some software and hardware hacks.  I'll certainly be using a small daughter-board to add level conversion and buffers to protect the RasPi, but it's mostly simple and inexpensive.

However, my goal is to keep hardware to a minimum and squeeze out features via software. Being able to run Linux means the RasPi can port a lot of useful software for visuals, audio and MIDI syncing.  So I think there's a lot of potential.

The fact is that a RasPi is quite inexpensive and I think it's about time we give this sort of thing a try with it.

Last edited by jefftheworld (Jan 2, 2013 2:41 pm)

Offline

For me would it be cool if i can slave my gameboy from midi-clock from another midi device.

And if this device can be cheap as possible.

Last edited by waveboy (Jan 2, 2013 7:36 pm)

Offline
Maine

this looks awesome im just curious as to how you'd connect your gameboy to it...

Offline
Unsubscribe

or: http://blog.makezine.com/2012/12/12/new … pberry-pi/

Offline
Toronto, Ontario, Canada
waveboy wrote:

For me would it be cool if i can slave my gameboy from midi-clock from another midi device.

And if this device can be cheap as possible.

Yes, that's the main function of the device; MIDI connectivity for chiptune hardware.

As for price, I'll be releasing all the schematics and software for free.  I doubt I'll be building or selling them, though.  The base cost of a Raspberry Pi is $35 and the additional components so far total around $7-8. However, some of the components that I'm using will are extremely tiny, QFN surface-mount parts that the average person won't want to use.  You also need an SD card to boot from.

It's certainly not going to be cheaper than a bare-bones arduinoboy build.  I build my arduinoBoy for little more than cost of the atmel chip ($5-6?) the DIN connectors ($1.75 ea?) and the Game Boy Link Cable ($5?).  For syncing your Game Boy, it does a hell of a lot!  However, I think the power and relatively low cost of the RasPi warrants some experimentation.

TheBronyChip wrote:

this looks awesome im just curious as to how you'd connect your gameboy to it...

With a standard Game Boy link cable.  I've soldered up a basic logic level shifter to allow the Game Boy to talk to the RasPi.  Tomorrow I'll be picking up a dead DMG from a friend and pulling the link port socket out to give to the RasPi.  Then it's as simple as stringing any old link cable between a Game Boy and a RasPi and getting the Wiring [program] ported and running on the arduino.

I'm debating the idea of porting 'arduinoboy' to C. However, the fact is the arduinoBoy code is in great working order and the existing Wiring code can run with a few modifications on the RasPi.  Unless I see issues with performance, this won't be high priority.

Last edited by jefftheworld (Jan 3, 2013 4:02 am)

Offline
Maine
jefftheworld wrote:
TheBronyChip wrote:

this looks awesome im just curious as to how you'd connect your gameboy to it...

With a standard Game Boy link cable.  I've soldered up a basic logic level shifter to allow the Game Boy to talk to the RasPi.  Tomorrow I'll be picking up a dead DMG from a friend and pulling the link port socket out to give to the RasPi.  Then it's as simple as stringing any old link cable between a Game Boy and a RasPi and getting the Wiring [program] ported and running on the arduino.

I'm debating the idea of porting 'arduinoboy' to C. However, the fact is the arduinoBoy code is in great working order and the existing Wiring code can run with a few modifications on the RasPi.  Unless I see issues with performance, this won't be high priority.

oooh ok that makes more sense thanks for the explanation! this project looks sweet i'd totally buy a raspberry pi and do this myself once the project is complete big_smile i need a midi sync to computer for when i start playing live with ableton + lsdj

Offline
Los Angeles

Note: Arduinoboy is actually all C except for some of the libraries it uses (top of my head: Serial, digitalRead/Write, EEPROM)- which could be rewritten pretty easily to use existing C/++ libs out there. What exactly are you using? Some port of Arduino/Wiring code?

Back on topic, I'd suggest using something like what Oliver did with Nanoloop by using a PCB for the Gameboy gamelink plug, that seems to be a cheap & clean way of dealing with the nonstandard game link jack without sacrificing cables or Gameboys in the process.

Glad to hear about the project! Sounds like fun. smile

Offline
Toronto, Ontario, Canada
trash80 wrote:

Note: Arduinoboy is actually all C except for some of the libraries it uses (top of my head: Serial, digitalRead/Write, EEPROM)- which could be rewritten pretty easily to use existing C/++ libs out there. What exactly are you using? Some port of Arduino/Wiring code?

Back on topic, I'd suggest using something like what Oliver did with Nanoloop by using a PCB for the Gameboy gamelink plug, that seems to be a cheap & clean way of dealing with the nonstandard game link jack without sacrificing cables or Gameboys in the process.

Glad to hear about the project! Sounds like fun. smile

Wiring _is_ just C with a bunch of I/O libraries, isn't it?

Last edited by jefftheworld (Jan 3, 2013 4:49 am)