RPI - Add MIDI I/O to Boss GP-10, Simple Raspberry Pi Setup

Started by MusicOverGear, August 09, 2014, 01:03:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MusicOverGear

Philotomy wrote>
I don't know if this has been posted before, but if anyone is looking to make a raspberry pi into a USB host for midi, I just followed these instructions and it's very simple:

https://neuma.studio/rpi-midi-complete.html
https://neuma.studio/rpi-as-midi-host.html
Running the FTP into my Roland keyboard with the Pi is the lowest latency I've ever experienced. I'm very jazzed about this setup. It's starting to feel like the fulfilled promise of MIDI guitar when I first started down the road in the early 90s.

The neuma image will also work to add bluetooth midi to the Gp-10, no config just copy the image and plug in Gp-10



This is a different process from Loulea's.
https://www.vguitarforums.com/smf/index.php?topic=11998.0
I tried to use the disk image he generously shared, but I couldn't figure out how to get it to boot on my hardware - and I'm not computer-smart enough to troubleshoot that kind of stuff.

I went poking around on my own, based on Loulea's description of what he did, and found a very simple way to accomplish a similar result. The outline of the process is as follows:


  • Use NOOBS to install Raspbian
http://www.raspberrypi.org/help/noobs-setup/
http://www.raspberrypi.org/documentation/installation/noobs.md
  • Create a startup script that connects MIDI port from foot controller to MIDI port of GP-10. I called mine GP-10_Script
  • Create a script that listens to a GPIO pin on the Pi, and when that pin is connected to ground (button is pushed), shut down the Pi. I called mine ShutdownButton
  • Start ShutdownButton from within GP-10_Script
  • Have a beer

I "documented" (shoddily, I'm sure) GP-10_Script in a YouTube video that is close to done uploading. (I have to leave now or I would wait until it's done - should be ready to watch at about 19:45 GMT). The other one should follow about 3 hours later if you are interested, hurried, and want to dig through my YouTube channel to find it. Here is the link where the first vid is going to be:

Part1


Part2
http://youtu.be/K-G4JNeWKok?list=UULOkBxwk8j_4qr4ZxIqZPow

and
QjackCtl Connections
http://youtu.be/vFw7hVWqqMI?list=UULOkBxwk8j_4qr4ZxIqZPow

Here's where I got the info on startup scripts. http://www.mikeslab.net/?p=176
The contents of /etc/init.d/GP-10-Script now reads as follows:

#!/bin/bash
# /etc/init.d/GP-10_Script

### BEGIN INIT INFO
# Provides: GP-10_Script
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO

aconnect 16:0 20:0
sudo /home/pi/ShutdownButton start &

exit 0



Part 2:


Here is the page where I got the code for the shutdown button. I note a couple edits in the video.  http://embeddedcode.wordpress.com/2013/10/18/adding-a-shutdown-button-to-the-raspberry-pi/

contents of /home/pi/ShutdownButton

#!/bin/bash

# monitor GPIO pin 21 (wiringPi pin 1) for shutdown signal
# export GPIO pin 21 and set to input with pull-up

echo "21" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio21/direction
echo "high" > /sys/class/gpio/gpio21/direction

# wait for pin to go low
while [ true ]
do
if [ "$(cat /sys/class/gpio/gpio21/value)" == '0' ]
then
   shutdown -h now &
fi
sleep 1
done

(Watch the vid you'll see how it works).

If anyone wants to follow along and try these steps I can try to help.

HTH
Michael

Elantric

#1
only foggy part is  - "how do you create "scripts" ?

and how does the RPI execute these scripts when powering up "headless / no keyboard"

Kevin M

#2
Quote from: Elantric on August 09, 2014, 01:18:47 PM
only foggy part is  - "how do you create "scripts" ?

and how does the RPI execute these scripts when powering up "headless / no keyboard"

Isn't it possible to ssh into these like any other Linux-based machine?  If so, I'm guessing you can upload them via scp and run them through inittab (or whatever Linux uses under /etc/init.d)


Sent from my iPad using Tapatalk

loulea

#3
It's easy. He documented this in another post. He created a script that runs on power up. This is smart and not complicated but not too versatile. You are flying blind but for his situation, it is fixed and will not be reconfiguring it since he is going to be burying it in foot pedal. He should mount an Ethernet port so that he can SSH into to it to reconfigure it or debug it. He could even just stick a wireless dongle on it and not worry about wires.

If you have a bunch of equipment though this could get confusing because you have to keep track of the connections with Linux commands. With the image there is visable representation of the connection.

His solution is great for a fixed setup. I tried it and it works once you figure the device numbers.
Music is in everyone!!

Elantric

#4
Now we need to figure out  how the Boss GP-10 can :

1) have a MIDI Input so a typical MIDI Foot controller can control the  GP-10 via MIDI Patch changes and respond to MIDI CC# from external MIDI Expression pedal


2) AND SIMULTANEOULSLY have a MIDI Output so the GP-10's Guitar to MIDI feature can trigger external hardware Synth using 5pin DIN MIDI !
http://i.korg.com/microstation

loulea

#5
Quote from: Elantric on August 09, 2014, 04:25:43 PM
Nw we need to figure out  :

1) Use a small MIDI Foot controller to  control the  GP-10 via MIDI Patch changes and send MIDI CC# from Expression pedal


2) AND SIMULTANEOULSLY have the GP-10 trigger external hardware Synth using 5pin DIN MIDI !
http://i.korg.com/microstation


Using this simple mode is difficult unless you understand and keep track of the shell scripts. Using the desktop mode you can configure the JackCtl to do it by connecting whatever output you desire to the input of another visually. In my current setup I was able to connect the output of my USB to MIDI interface to a Roland SC55 and I could change patches on channel 1 with either the foot pedal or the GP-10. Is this what you are looking for?
Music is in everyone!!

MusicOverGear

#6
Sorry about video problems. Not sure what happened. I ditched a lot of old photo/video gear for one of the new Sony mirrorless systems. Didn't realize until now I hadn't used it for video yet.. anyway the vids are up now. The first one has the comical, helium sample-rate offset  but IIRC that only lasts a couple minutes. Everything is still perfectly audible. These new cameras have apps on them; next time I'll see if I can't upload directly to YouTube from the camera - that should take care of conversion problems, anyway...

Elantric you can make the same connections going both ways. I didn't try it because I'm using the GP-10 as my whole universe of timbres now, but you can do it. I would try the exact same process using aconnect command. Did you ever get your stuff connected using QjackCtl?  If you are stuck on that point I can help you find a tutorial vid or maybe just make one. I think maybe the interface is kinda opaque but I'm just used to using it from my Ubuntu struggles?

BTW loulea yes fixed setup is exactly what I want - as in this is a fix for my broken pedalboard and once it's fixed I don't want to have to fix it again. Part of my plan is paint a few instructions on the bottom of this pedalboard, e.g. "Don't wait too long to power up the GP-10" LOL so in case I shelve this rig for 9 months and come back to it I'll remember without having to look at code notes again.  I'm looking at the Pi as just a solution to get my foot controller to work the way I want it to - that's it. Also the Pi looks so cool and hackable that I really have to keep my distance from it or it will engulf my life, I'm sure. So I'm aiming real low. 

I show how to make the scripts in the videos, and more importantly, the sources of the info I adapted for this; those smart folks explain this stuff better than I do. I'll add the links to my first post so it's all tidy and organized for others who are interested. I bet there is a primer on scripting on the Pi somewhere on the official website. 

Shutdown is shown in the videos, too. It's just a simple loop that checks the state of a GPIO pin. When it goes low (connected to ground - button press), it executes the shutdown command. It's in the vid and I'll post the link to the article where I got that.

BTW I have a question about power. My plan is to use a "battery eliminator" step-down converter like this one inside my MIDI foot controller. http://www.adafruit.com/products/1385  I want to use a 1-Spot to power the MIDI pedal, and break off the 9V input into the converter to get a hopefully healthy 5v for the Pi. Is that a solid plan? I'm thinking I will run two 9v cables and the 1/4" instrument cable to my pedalboard in a length of braided wrap (a sort of ghetto snake - done this for years and psychologically at least it makes setup/teardown seem like a lot less). The fewer the plugs, the less clutter, the fewer steps, the better.

Elantric

#7
QuoteIn my current setup I was able to connect the output of my USB to MIDI interface to a Roland SC55 and I could change patches on channel 1 with either the foot pedal or the GP-10. Is this what you are looking for?

I need more than MIDI patch change -

I want MIDI note on  / off messages from GP-10 to trigger external hardware synths

On GP-10 - enable "GTR-MIDI" - play the guitar and hopefully sound comes out of the SC55 Sound Canvas

For power - I'm planing on using external battery power - which basically acts like a UPS and along with the Power Button board


saves the SD card from corruption.
https://www.vguitarforums.com/smf/index.php?topic=10662.msg77071#msg77071

MusicOverGear

#8
Okay I made a video showing that. I can't upload directly from camera AFAIK, so it's transferring from the camera to my mac, then from there to YouTube, so you can look for it in about 65 hours LOL. I'll call it QjackCtl Connections and it should be here sometime soon. https://www.youtube.com/user/SensibleMusician

Elantric

#9
I understand "aconnct 16:0 20:0" is appropriate for your gear - but it may not be appropriate for others - ??

An important step will be

Launch into Raspian GUI mode, open Jack Connections, hit "Clear" then refresh  -  query the address of actual connected hardware - which i understand will be different for everyone based upon the actual MIDI  I/O cable that is present, connected and in use.
  Too bad  we can not "see" these address since they are off screen and  cut off at the top of the video  - just  need  to be clairvoyant since the camera at important steps is too close to the action and important necessary info for typical non geeks is "off screen" at 9:00 - 12:00 minutes in the video



FWIW - Others mentioned you can connect the USB cables to the GP-10 , and USB to MIDI cable - after Raspberry Pi power up - but that does not work for me here.

I know I'm told that " it does not matter" -but  I can tell you the Boss GP-10 showed up at different Jack ALSA address  here (Stock Raspian OS  - right after a Noobs install) 




- compared to  LouLeas IMG version below:





Also in regards to "just pull the plug to turn off  power -

After I issue the power off command   "sudo halt -p" - I know I can  watch the SD card access LEDS on RPI flash for 12 seconds  -

Details here

How to protect the filesystem without a save shutdown button?
http://www.raspberrypi.org/forums/viewtopic.php?f=2&t=2381

loulea

#10
Quote from: Elantric on August 10, 2014, 12:37:58 AM
I understand "aconnct 16:0 20:0" is appropriate for your gear - but it may not be appropriate for others - ??

An important step will be

Launch into Raspian GUI mode, open Jack Connections, hit "Clear" then refresh  -  query the address of actual connected hardware - which i understand will be different for everyone based upon the actual MIDI  I/O cable that is present, connected and in use.
  Too bad  we can not "see" these address since they are off screen and  cut off at the top of the video  - just  need  to be clairvoyant since the camera at important steps is too close to the action and important necessary info for typical non geeks is "off screen" at 9:00 - 12:00 minutes in the video



FWIW - Others mentioned you can connect the USB cables to the GP-10 , and USB to MIDI cable - after Raspberry Pi power up - but that does not work for me here.

I know I'm told that " it does not matter" -but  I can tell you the Boss GP-10 showed up at different Jack ALSA address  here (Stock Raspian OS  - right after a Noobs install) 




- compared to  LouLeas IMG version below:





Also in regards to "just pull the plug to turn off  power -

After I issue the power off command   "sudo halt -p" - I know I can  watch the SD card access LEDS on RPI flash for 12 seconds  -

Details here

How to protect the filesystem without a save shutdown button?
http://www.raspberrypi.org/forums/viewtopic.php?f=2&t=2381

Elantric,  The last screen you referenced is only for Audio and has nothing to do with MIDI. The screen is for setting up your audio. For instance you could probably play the audio from the GP-10 thru the PI Audi output if you select it. There are other settings to manipulate to get lower latancies between input and output.
Music is in everyone!!

loulea

#11
The audio device you want to select here is hw:2 which is the bcm2835. This is the audio interface that is in the PI and should be selected if you want to use it. You would have too connect to the PIs audio connector of course. If you plugged a USB audio interface into the PI then you would select that. Basically you are setting it like you would set your DAW.
Music is in everyone!!

MusicOverGear

#12
OMG sorry about the video. It apparently got automatically cropped to match the ratio of the first vid. I can see that that would be frustrating to watch. Still, I literally took every bit of information I used from those two links in the first post. I just copied and pasted code from those, and I do say every character I type. I still think you might be able to get it from the vids...

Let's get to where we have a method for setting up a Pi that's easy enough for the average user to do, and then I'll try to make time to do a much better vid showing every click and keystroke. I got my camera and editor problems figured out now, so I am ready to make a better vid when I have a better idea of what is confounding people.

...

Yes aconnect requires your particulars. The numbers seem to be the same every time if you leave the same gear plugged in. However if you don't like that just use the device names. E.g. on my system it would be:
aconnect "USB Midi Cable:0" GP-10:0

You need the quotes if there are spaces in the name.

That will never change unless the devices change. It doesn't matter what number they are assigned. The order of the ports on a particular device will never change AFAIK. I think if you have two identical devices you may run into problems, e.g. you have two identical midi interfaces plugged in. Just avoid that scenario and it's hard to imagine what could go wrong... I guess if you neglected to power up the GP-10 before the script got to that point...

Quote from: Elantric on August 10, 2014, 12:37:58 AM
Also in regards to "just pull the plug to turn off  power -

After I issue the power off command   "sudo halt -p" - I know I can  watch the SD card access LEDS on RPI flash for 12 seconds  -

Damn I really sorry those videos were so poor. Did you try the second vid at all? It's all about a very simple implementation of a shutdown button that uses only a momentary button. I am going to move the status LED on mine to the panel of my foot controller so I can see when it's done shutting down. Mine takes ca. 4 seconds, probably because I don't have all the dead weight of LXDE. The power button PCB looks great if you can make it easy to mount and reach in your setup. Other people may be interested in the DIY way like mine, which takes up less space, can use any interface, and costs nothing (unless you have to buy a momentary button).

I really want to help you because you have helped me with everything I've done since switching my whole rig over to the GP-10. If I can get to the point of understanding exactly the route you want to take and where you are hung up, maybe I can help better. Any chance you can make a vid of what you're doing and where you're getting stuck?

Here is the vid I did last nite. It's straight from the camera, no problems:


I'm unclear on whether we're past this part yet - just grokking basic QjackCtl and being able to make the connections in the GUI? I wouldn't worry about a single other thing until we get that far.

Here is another vid for another perspective. Most of it is irrelevant to us, so here is the link to where he starts talking about connections: https://www.youtube.com/watch?feature=player_detailpage&v=tqzyjDeEAw4#t=253

What I'm picking up is that you don't want to mess with scripts - you want to boot to the desktop environment and have QjackCtl set up with the same connections every time? Is that right? I can understand that that would be a better experience if you don't like commands and scripts and that kind of geekery.

Okay I think I have an idea for a way to set this all up in LXDE where you would only have to type two simple commands, no real scripting, all visual. Let me boot up my Pi and see....

Yes this will work. You will only have to type three simple lines and only one of them has any fussy syntax - everything else is 100% visual. I think I will go buy another card and make a better vid that anyone can follow. Again, apologies for bad vids...

admin

#13
No worries,

We just need to make a document for dummies and explain each step in details , from taking the Raspberry Pi out of the box, to connecting recommended USB MIDI cable, and  make both essentially become part of Boss GP-10, and provide 100% the same functionality as the 5pin MIDI I/O on the Roland VG-99. From MIDI INPUT using external 5 pin MIDI controllers to MIDI OUTPUT for driving external MIDI tone generators/ keyboard synthetic via 5 pin MIDI.

The big news is this does work, we can create a dummies document walk thru for all steps.

thebrushwithin

#14
That will make me a very happy dummie!!!  ;D

Elantric

#15
This helps considerably !

http://youtu.be/vFw7hVWqqMI?list=UULOkBxwk8j_4qr4ZxIqZPow

(pic of MusicOver Gear's USB <>MIDI Cable 

http://www.amazon.com/Generic-USB-MIDI-Converter-Electronics/dp/B003KXEDVQ/ref=sr_1_1?s=electronics&ie=UTF8&qid=1407725400&sr=1-1&keywords=usb+midi+cable





Just a word of caution  - that particular type of USB MIDI Cable shown above is OK for MIDI patch change transmission, but know it has known drop outs when used for MIDI SYSEX data   - and is on our forum's "items to avoid list ;)

I can only recommend the ones listed below:
Read USB Class Compliant MIDI Cables
https://www.vguitarforums.com/smf/index.php?topic=8393.0

Meritline MIDI Cable
http://www.meritline.com/usb-midi-interface-link-cable-adapter---p-85182.aspx



ESI MIDIMATE II - USB 2.0 MIDI Interface Cable $29.95
http://www.bhphotovideo.com/bnh/controller/home?O=invoice&A=details&Q=&sku=746076&is=REG


Roland UM-1 MK 2

loulea

#16
You are not suppose to drag and drop. you are supposed to select the instrument on one side and then the other and click connect. By dragging over you may be copying over an input to output and therefore when connected causing a loop back. You have to be careful because in the last portion of the video, something illegal was done and that was looping back an output to itself. All the inputs looks like they are being connected together. This is why there was a continuous note being sent.

Check to see if this helps. It's  a link to my instructions for setting up the patchbay after my image is installed. https://drive.google.com/open?id=0Byf4qrn_H-ZCQWtvQkVfWWg5Q00&authuser=0

:)
Music is in everyone!!

MusicOverGear

#17
I made a vid for the easiest possible setup (AFAIK), showing every piece of gear I'm using, with hyperlinks, every keystroke, every mouse click. No scripting whatsoever. All using LXDE and GUI software. I tried to upload the vid last nite but my computer went to sleep before it finished. I'm going to try to find a cafe that has Google Fiber (>= 1GB/s) to go upload it on wednesday at lunchtime (if not sooner). I feel really confident that this new vid will work for anyone wanting a no-brainer setup.

loulea

#18
That will be good. Looking forward to it. I've created one to go over how to use JackCtl also. I'm going to upload it to my google drive and it will be played by the drive. I think both vids will  help everyone. Keep up the great work because I felt that no one believed that the PI worked! The problem is understanding how Jack works. It is not intuitive. :)
Music is in everyone!!

Ringleader

#19
Quote from: loulea on August 10, 2014, 07:46:49 AM
Elantric,  The last screen you referenced is only for Audio and has nothing to do with MIDI. The screen is for setting up your audio. For instance you could probably play the audio from the GP-10 thru the PI Audi output if you select it. There are other settings to manipulate to get lower latancies between input and output.

Don't want to derail this conversation, but just a quick question since I know zero about the pi and what it can do. Would it be possible to take all 6 channels of audio output from the Gp-10 or even 2 channels from my HD500 and somehow convert them into something the iPad could use over a single USB cable? Essentially using the pi as a class-compliant USB audio converter  / mixer so to speak?

loulea

#20
Quote from: Ringleader on August 11, 2014, 10:54:40 AM
Don't want to derail this conversation, but just a quick question since I know zero about the pi and what it can do. Would it be possible to take all 6 channels of audio output from the Gp-10 or even 2 channels from my HD500 and somehow convert them into something the iPad could use over a single USB cable? Essentially using the pi as a class-compliant USB audio converter  / mixer so to speak?

According to the USB spec there are two types of USB devices. There is a master(Host with USB Type A Connector) and a slave(Client/ Endpoint with USB Type B Connector). You cannot have two masters(Hosts) together. The PI and the IPAD are masters(USB Hosts)  and really can't be connected together. Some genious could probably do it somehow but that is not me, :P
Music is in everyone!!

Ringleader

#21
Thanks, I see these iConnectivity devices that connect multiple computing devices together but they usually have limitations with audio interfaces over their USB port, etc. Was just wondering if the pi could be programmed to do something similar but without the limitations. The pi is still very interesting for sure, but after reading this discussion, definitely outside of my technology comfort level.

Elantric

#22
Further reading on USB for those interested. Yes - Only ONE connected device may be USB HOST. You cannot connect "USB Host to another USB host" or directly connect one USB Client/Endpoint Peripheral to another USB Client/Endpoint Peripheral. There must always be ONE (and Only ONE)  USB Host in the USB connection.

http://www.eeherald.com/section/design-guide/esmod14.html

QuoteUSB system overview:

The USB system is made up of a host, multiple numbers of USB ports, and multiple peripheral devices connected in a tiered-star topology. To expand the number of USB ports, the USB hubs can be included in the tiers, allowing branching into a tree structure with up to five tier levels.

The tiered star topology has some benefits. Firstly power to each device can be monitored and even switched off if an overcurrent condition occurs without disrupting other USB devices. Both high, full and low speed devices can be supported, with the hub filtering out high speed and full speed transactions so lower speed devices do not receive them.

The USB is actually an addressable bus system, with a seven-bit address code. So it can support up to 127 different devices or nodes at once (the "all zeroes" code is not a valid address). However it can have only one host: the PC itself. So a PC with its peripherals connected via the USB forms a star local area network (LAN).

On the other hand any device connected to the USB can have a number of other nodes connected to it in daisy-chain fashion, so it can also form the hub for a mini-star sub-network. Similarly it is possible to have a device, which purely functions as a hub for other node devices, with no separate function of its own. This expansion via hubs is possible because the USB supports a tiered star topology. Each USB hub acts as a kind of traffic cop. for its part of the network, routing data from the host to its correct address and preventing bus contention clashes between devices trying to send data at the same time.

On a USB hub device, the single port used to connect to the host PC either directly or via another hub is known as the upstream port, while the ports used for connecting other devices to the USB are known as the downstream ports. USB hubs work transparently as far as the host PC and its operating system are concerned. Most hubs provide either four or seven downstream ports or less if they already include a USB device of their own.

The host is the USB system's master, and as such, controls and schedules all communications activities. Peripherals, the devices controlled by USB, are slaves responding to commands from the host. USB devices are linked in series through hubs. There always exists one hub known as the root hub, which is built in to the host controller.

A physical USB device may consist of several logical sub-devices that are referred to as device functions. A single device may provide several functions, for example, a web-cam (video device function) with a built-in microphone (audio device function). In short, the USB specification recognizes two kinds of peripherals: stand-alone (single function units, like a mouse) or compound devices like video camera with separate audio processor.
The logical channel connection host to peripheral-end is called pipes in USB. A USB device can have 16 pipes coming into the host controller and 16 going out of the controller.

The pipes are unidirectional. Each interface is associated with single device function and is formed by grouping endpoints.


http://en.wikipedia.org/wiki/USB


sixeight

But it might be possible to route wireless midi from the pi to the ipad.
Here it is done: http://www.astlab.de/rpi/rpi.shtml

After all, you can route midi between a macbook and an ipad.

Elantric

#24
sixeight! -
thanks for posting this link to DIY  !

http://www.astlab.de/rpi/rpi.shtml


Raspberry Pi DIY Wireless MIDI-OSC Bridge! ( indicates this might also work as a substitute for the Arduino based Jabrudian "Missing Link"   
See attached for PDF version - archived just in case this info disappears in the future.

There is a whole world of interesting / problem solver tools for musicians  based upon the Raspberry Pi !



------

Raspberry Pi MIDI I/O
https://sites.google.com/site/scidiy/pc-diy/raspberry-pi-midi-i-o

http://www.esi-audio.com/products/midimate2/

MIDI breakout board for Raspberry Pi (v0.10)
This is a simple Serial based MIDI breakout board for the Raspberry Pi.
It uses the Raspberry Pi hardware UART RX and TX from its expansion port to provide a "MIDI In" and "MIDI Out" function.  ...
https://zuzebox.wordpress.com/2012/03/18/midi-breakout-board-for-raspberry-pi-v0-10/

https://zuzebox.files.wordpress.com/2012/03/rpi_midi_board_schematic-0v102.pdf



-----
http://www.raspberrypi.org/forums/viewtopic.php?f=38&t=67727



Published on Jun 2, 2013
Quick demo of a Raspberry Pi being used as a very basic synthesizer.

How to set up a Raspberry Pi for use with real-time, low-latency audio: http://wiki.linuxaudio.org/wiki/raspb...

Hardware used:
* $35 Raspberry Pi version B rev. 2
* $10 Icidu (OEM brand) class 10 8GB SD card
* $2 C-Media USB audio interface: http://dx.com/p/virtual-5-1-surround-...
* Powered USB hub bought at the Makro during a sale which set me back $5
* Pair of PC speakers that I had lying around
* USB WiFi dongle, forgot the price, but I just ordered some dongles that cost about $6: http://dx.com/p/ultra-mini-nano-usb-2...

Software used:
* Raspbian Linux OS
* rpi.autostatic.com Raspbian audio software repository: http://rpi.autostatic.com/
* amsynth 1.3.2, git rev. 490c0e81702b: https://code.google.com/p/amsynth
* JACK Audio Connection Kit 0.121.3 (aka Jack1) system for handling real-time, low latency audio (and MIDI): http://www.jackaudio.org/ (patched for ARM)
* aj-snapshot to restore the ALSA and JACK connections: http://aj-snapshot.sourceforge.net/
* multimidicast to send and receive MIDI over UDP multicast: http://llg.cubic.org/tools/multimidic...
* Humatic TouchDAW: http://www.humatic.de/htools/touchdaw... (Android app)

So the grand total is $58 for the hardware (minus the cheap Android tablet), all software is completely free.


====

http://hackaday.com/2013/01/21/tired-of-playing-the-macbook-play-the-raspberry-pi/
http://www.subf.net/linklist/index.php?topic=236.0





--


Raspberry Pi + Pd(Pure Data)
Installing and Running pd-vanilla on Rpi.
http://www.epicjefferson.com/2012/10/raspberry-pi-pd/


=====


Serial Port MIDI on the Raspberry Pi
I noticed a project at Raspberry Pi was having to use a microcontroller to buffer 38400 Baud serial port data down to the Midi standard of 31250. As part of an ongoing larger project I solved this problem by changing init_uart_clock = 2441406 in /boot/config.txt on the raspberry Pi.
http://www.siliconstuff.com/2012/08/serial-port-midi-on-raspberry-pi.html