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.

Elantric

The Raspberry Pi will be the easiest Lowest cost to run "Headless" without a Monitor. The other PCs mentioned above will require a Windows OS install and possibly a small display monitor and keyboard /Mouse.

charrich56

Guys,

This setup (R Pi +USB MIDI)  could with a little work,  turn into a really flexible system for live performance control,  way over and above just switching patches. 

The first thing I would like to try with it is a Guitar Wing wireless controller.   The Pi should have enough horsepower to do some pretty cool MIDI processing, arpeggiation,  different MIDI effects, etc.  It might even have enough horsepower to sequence some external synths and effects too, and the video out is a bonus - could see it with a touch screen monitor on stage for lyrics and cues, etc.   

With a laptop or desktop of course you have a lot more power but the big river to cross,  is using a laptop in a live gig situation. 

The Pi setup wouldn't be nearly as much hassle and risk, and you could afford to have a backup on hand.  And it would fit on a pedalboard.   

I'm an old time UNIX hacker and speak Linux a bit too.   Anybody interested in doing some more cool stuff with the Pi?   

-Charlie



hippietim

Quote from: Elantric on August 09, 2014, 10:40:04 PM
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


By the time you've got all of that setup, wouldn't it just be simpler to use a tiny Windows tablet?

hippietim



glennfin

Yes, PLEASE let us know and don't forget to included what USB to MIDI interface you used in addition to any other info like drivers, USB hub, etc...

Quote from: hippietim on October 31, 2014, 11:31:52 AM
I've got one of these that I'm going to try with the GP-10.

http://www.toshiba.com/us/tablets/encore/mini

sixeight

Power to the pi  ;D

Finally got round to setting up the raspberry pi with the VController and the GP-10 following Gumtowns excellent instructions. It is probably only a temporary solution, waiting for CodeSmart's MIDX-10 board.


Spawn-X

Sorry for my bad English. I'm just a poor lonesome froguitarist...

So, feel free to correct me if I make a mistake...

Gears: V-Guitar: VG-99+FC-300; GP-10; AX100MKII; Nord Modular G2 Engine.
DAW: Cubase Pro 9.5 + BabyFace + RC-50

sixeight

Today I tested the Gp-10 MIDI bridge script on Jessie lite and this also works. The reason for Jessie lite is that the Mustang MIDI bridge also works on that platform.

I have been experimenting with automatic connection. So when the Pi is running and you connect a USB device, a connect script should automatically be executed.

This is described here:
http://ubuntuforums.org/archive/index.php/t-502864.html

I got this working!!!

Created a script:
sudo nano /usr/local/bin/connect_midi

Added the lines:

#! /bin/sh

#connect GP-10 to VController
aconnect 'Teensy MIDI':0 'GP-10':0
aconnect 'GP-10':0 'Teensy MIDI':0

#connect GR-55 to VController
aconnect 'Teensy MIDI':0 'GR-55':0
aconnect 'GR-55':0 'Teensy MIDI':0

#connect VG-99 to VController - does not work for some reason
aconnect 'Teensy MIDI':0 'VG-99':0
aconnect 'VG-99':0 'Teensy MIDI':0

#connect ZOOM G3 to VController
aconnect 'Teensy MIDI':0 'ZOOM G Series':0
aconnect 'ZOOM G Series':0 'Teensy MIDI':0


Made the script executable:
sudo chmod 755 /usr/local/bin/connect_midi

Don't know why the VG-99 connection does not work?

Then I ran lsusb and found the vendor and product ID's of my devices.

Then I wrote the rules script:
sudo nano /etc/udev/rules.d/77-midi_connect.rules

Added the lines

#Run script on connection of all Roland USB devices
ACTION=="add", ATTRS{idVendor}=="0582", RUN+="/usr/local/bin/connect_midi"

#Run script on connection of all ZOOM USB devices
ACTION=="add", ATTRS{idVendor}=="1686", RUN+="/usr/local/bin/connect_midi"

#Run script on connection of VController
ACTION=="add", ATTRS{idVendor}=="16c0", RUN+="/usr/local/bin/connect_midi"


Then I executed the following commands:

sudo chown root:root /etc/udev/rules.d/77-midi_connect.rules
sudo udevadm control --reload


And now I can plug in my devices after the Rpi has started and they are automatically connected.

vtgearhead

Start with the GP-10 unplugged, then open a window as root and run this:

$ udevadm monitor --property > /tmp/udev_monitor.out 2>&1

Now, plug the GP-10 in, wait about 10 seconds and unplug it.

Enter Ctrl-C in the window where you started the monitor.  I would need to see the trace of events to diagnose the problem. udev is a powerful system, but it requires a deep understanding of device attributes during the USB add, change and remove phases.

One additional note:  You cannot directly start long-running processes from a 'RUN' action.  May not be a problem for that series of aconnect commands, but something to keep in mind.  Unless you jump through a few hoops (see my udev rules for mustang) the udev system seeks out and kills any processes you might have started from 'RUN'.  Drove me nuts before I found discussion of this on line.

sixeight

Thanks Steve. Cracked it now. I forgot the #! /bin/sh at the top of the script, so the script would not run. I updated my previous post with the changes.

I can now plug and unplug the GP-10 from the raspberry pi without having to restart the RPI . The midi connections will automatically be restored

vtgearhead

Excellent!  Always good when it turns out to be something simple.

guitared

I have an android tablet, running setlistmaker app to change patches on a gr55 and also gt 100, through a roland usb midi cable..
I want to add in my gp 10 using the raspberry pi. Is this possible?
thanx
ed

Elantric

Sure
But many order a Primovasound MIDX10 it MIDX-20

guitared

Thanks for the reply Steve...
I am/was on the waiting list for one of Roberts midx10s, but now they are on hold while he assembles the midx20s. I
think the 20s may be out of my budget range, as the Canadian dollar is bad right now. All I need to do is change patches
and looks like the raspberry pi kit on amazon may be more suited to my needs.

ed

admin

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.

utensil

Quote from: admin on June 23, 2020, 10:42:28 AM
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


philjynx

If you only need one USB host port, the RPi Zero is tiny and a lot cheaper than the 3 or 4 variant, more than up to the job.

admin

Quote from: philjynx on June 10, 2022, 03:23:35 PMIf you only need one USB host port, the RPi Zero is tiny and a lot cheaper than the 3 or 4 variant, more than up to the job.

in order to create a functional USB Host to 5 pin MIDI I/O adapter requires a RPI with 2 USB host Ports.

The 2nd USB Host port is used to connect a class compliant USB to 5 pin MIDI adapter

USB ports explained
https://www.vguitarforums.com/smf/index.php?topic=15763.0

Frankster

I've got a huge MIDI pedalboard setup with three Eventides, Boss GP-10 and RC500 looper and I've tried loads of ways to route MIDI round everything but the thing that just worked for me has been WebMIDI running in Chromium browser on a Raspberry Pi. I'm still developing this but currently I can receive program and controller change from the GP-10 and MIDI clock from the RC500 and route them to the Eventides very easily, all over USB MIDI. The Pi has a touchscreen so things like tempo and patch change can all be controlled in the browser.

Next step is going to be implementing a program change map based on mySQL. The one drawback to WebMIDI is that it has to run over http (ideally https) so the Pi is running Apache2. At the current stage of development it posts a JSON request to a PHP script to get a list of program changes back. As it's running on localhost this is really fast and there's no delay noticeable in use.

I've tried developing this kind of thing before using C++ or Python, tried various microcontrollers, Teensy, ESP32, usually they don't work with USB hubs. Python's Mido library was especially frustrating as there are two different and incompatible versions of python-rtmidi and neither seems to support multiple MIDI ins. WebMIDI has so far handled everything I've thrown at it but you will need a fairly fast Pi. I'm running on an 8Gb Pi4 and there's no problem with latency. Some code - FIRST COMMIT, NO GUARANTEES, NO WARRANTY, NO SUPPORT - is at https://github.com/GilgaFrank/GP10WebMIDI/

Obviously you'll need to console.log your particular MIDI device names and adapt the code to your requirements. I haven't got very far with it but it only started working a couple of days ago. Best of luck, all feedback appreciated!

EDIT: Forgot to mention, this only seems to work properly in Chromium. Firefox ESR doesn't fully implement WebMIDI. The intention is to have this running in Chromium in kiosk mode so it looks like I'm using an ATM but really it's a MIDI controller.

Frankster

Quote from: Bluesbird on July 27, 2022, 05:49:02 AMWhy is connect bay in jack audio not sufficient for routing all of your midi devices?
Because it's just a straight connection with no logic to take actions depending on the source, destination and type of message.

In my setup I am taking clock from one source (the RC500) and program change from another (GP-10). I also want to use the GP-10 as a master program select device and have different program changes sent to the three Eventides depending on entries in a database. This system will let me select one patch on the GP-10 then a different patch on the Timefactor, Pitchfactor and Space while having all the delays and arpeggio effects tempo-synced to the looper, there's no way Jack Audio can do all that. I know I could use the MIDI program change maps in the Eventides but that's really fiddly to set up and the RPi solution lets me build a web front end to, well,  rule them all.

Frankster

Quote from: Bluesbird on July 27, 2022, 06:39:54 AMOh, o.k. Would qmidiroute alongside jack routing accomplish what you are trying to do?
It would do some of what I want but without the database integration and the ability to save patches!

Frankster


gumtown

Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/