V-Guitar GK-IO project a multi-function GK routing device

Started by gumtown, February 06, 2013, 03:47:02 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gumtown

This project has been in the design stages for a little while now, and this week i have the initial design sorted and the midi I/O subsystem working enough to demostrate on the GR-55.
It will be an Opensource project, hopefully available one day in various stages as kitset, short form and product, or as a DIY program your own chips.

Here is a little blurb on what it is

The beginnings of the V-Guitar GK-IO project.
A multi-function hardware device to interface between multiple GK equiped guitars and multiple GK devices such as the GR-55 and VG-99. A modular intelligent system which can support up to four GK input devices and four output GK devices and one programmable hexaphonic High Pass filter. Input to output routing will be completely independant for each string, allowing certain strings to be routed to multiple GK compatable devices, as well as standard GK switching.
The GK-IO also features midi input and midi output with user configurable CTL buttons depending on the display mode, CTL1 and CTL2 plus patch up/patch down, or CTL 1 to CTL 4.
The GK-IO will initially have 16 patches 8 preset and 8 user editable, functions such as GK Volume, S1/S2 switches, GK switch will have the abilty to send cc# data, and a feature which samples the normal pickup and converts the amplitude to a midi envelope level. An external Expression pedal can also be plugged in to send user selectable midi cc# data, as well as four foot pedals to extend the function of the four tactile pushbuttons.
The GK I/O modules will have switch selectable addressing to determin it's function, detected on startup. A minimum requirement of 3 GK I/O modules for 1 in and 2 out, or 2 in and 1 out configurations, and up to 8 GK I/O modules are supported, so the system can be expanded when required.

I am still waiting for my worst ever demo vid to upload to youtube, but i will post it here when ready.

*note the vid is worst than i thought, it was nearly 1:00am there and the phone camera does't like closeups and low light.
I will post a better one soon.


I will attach files here, and update them as things progress.

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

drbill

GP-10, KPA
BM i2.13p, '76 Les Paul Deluxe w/GK-3, MiM RRS, Ibanez RG420GK, Charvel strat copy w/GK-2a, FTP

Elantric

I intend to design PC boards for this and provide artwork. Look forward to making progress on this Gumtown!

whippinpost91850


ploveday

Hmm, this looks quiet similar to some of the things I'm doing with my project.

Shame we didn't collaborate earlier in design stages :)

What hardware are you using (microcontroller etc - I'm using Teensy 3) ?

Might I suggest you have a look at this LCD: http://adafruit.com/products/358 - not only does it have a decent colour LCD (that will fit in a 1U rack panel, or wherever else), but it has a uSD card interface.  This is the one I'm using.  Probably a little more expensive than the character LCD, but...

Anyway, perhaps we could combine efforts, or at the very least, attempt to maintain some compatibility between our configuration?

- Peter

PD FX

awesome from a technical point of view!
Musically I would never dream of using a hex matrix, I'm allready distracted from my own playing with the possibilities from 1 GR55..  For advanced tweaks I use a custom avr processor in midi send/return on the GR55, using Noteon/off to CC conversion, that is enough for me.



ploveday

For me, the idea of using a hex matrix /  processor is to *simplify* the technicalities.  As you say, who wants to think about this stuff when they're playing?

So my intention was to combine the VG-99 and GR-55, and whatever else, as COSM/Synth sound generators, into single patches on my controller.  (also allowing for on-guitar bi-directional controller interface).

I guess, what I find is that managing the two can be a PITA.  I want to be able to choose a patch for a song.  And the assigns for that song, including 'stompbox' assigns of some pedals on my FC-300.  Not have to worry about which patch changes on each I need, or how the hell I'm going to get the GK-Vol to do what I want, or some pickup selector to actually work.

The intention (for me) being to move the work to the setup/programming phase, in that I set up patches as needed on the controller, which then sends appropriate patch changes to the devices, and assigns, etc.  Rather than having to do this work while playing.

This makes it then easier to focus on playing, as the technicalities have been abstracted, or taken care of beforehand.

At least this is the focus I've been putting on my software, YMMV.

- Peter

Elantric

Several of us have been chatting for years about creating an Improved  / expandable version of the Roland US-20 13 pin A/B box.

If you have used the US-20, you know how restrictive it is. if your GR-55 or VG-99 patches do not map the GK-3 Vol pot to "Patch Volume" - the US-20 does NOT WORK. and FWIW - bulk of the factory patches for VG-99 and GR-55 do not map GK-Vol to Patch Volume.

The other issue is the Piezo guitars need a High Pass filter to  track Guitar to PCM or Guitar to MIDI correctly on the GR-55, and VG-99. Bass guitars need yet another separate High Pass filter type. If you are a multi-instrumentalist you have a headache.

With Gumtowns's GK IO, we have a path to build an expandable / programmable US-20 with programmable High Pass filters for each string that solves many problems, and will be open source. The parts are listed in the Excel XLS file
https://www.vguitarforums.com/smf/index.php?action=dlattach;topic=7852.0;attach=6579

PIC16F877A
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010242

PIC16F677
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026026

PD FX

thanks for the explanations, for users that want to combine several hex apparatus your project is the solution, thats clear.

gumtown

The PIC16F877A is now most likely to get upgraded to a PIC18F4685 with 4 x more EEPROM and 12 x more program memory, and featuring nanowatt technology (as the PIC16F677 does). The chip upgrade is still pin compatable with the 16f877a too.

I looked at many designer chips and decided on 'garden variety' parts for many reasons.

In the past I used to have a small electronics manufacturing company, and too many times based production runs on certain components which would suddenly become obsolete with no easy replacement available, which is not good if you have 1000 printed circuitboards already half assembled and become useless.
So the parts are selected for easy and long term obtainability, cheap cost, and DIY assembly, so I am steering away for SMD designs and components, for traditional DIP packages and through hole circuitboards.

The design is going to be highly modular, for example the GK I/O socket will have a small circuit board attached with a pic16f677 micro and three analog switching chips and a DIP switch, the size of a match box with a 20 pin connector tail.
The intention is to have these GK sockets stackable, and be used in either the full sized hex matix switch system or a smaller simple US-20 equivalant A/B switcher.
With the system being modular with options, you can build up a GK switcher system up to suit your own needs with plug'n'play style  building blocks.

The parts will be sourced from one supplier, DigiKey seems the most universal, so a shopping list will be posted for those who wish to build their own, or if you need to purchase printed circuit boards, you will know the parts will fit and align up.

Still have many ideas on what the fully built package would be, I envisage a desktop box with display and 5 buttons, with 2 stereo jacks for 4 footswitch extensions of the buttons, 6 hex pickup insert jacks, a regular guitar input, and an external Expression pedal input.
I suppose an additional switch/push button/ footswitch type module could be added if you wanted to expand the unit into a footcontroller.
The intenal modules are connected and controlled via a common multidrop data buss, and there is room for another 7 types of module
.
DEVICE ID SELECT DATA MAP               
For DATA IN/OUT BUS               
00      GKIO   Input A   000   
01      GKIO   Input B   001   
02      GKIO   Input C   010   
03      GKIO   Input D   011   
04      GKIO   Output A   100   
05      GKIO   Output B   101   
06      GKIO   Output C   110   
07      GKIO   Output D   111   
08      HP Filter board      preset   
09               
0A               
0B               
0C               
0D               
0E               
0F               
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

Elantric


ploveday

So.. I've been thinking about whether I could basically use your project to achieve what I'm trying to do, with perhaps a different "front end" module, but utilising the GK IO modules..  but I'm not quite sure how it hangs together... so I thought I'd ask a few questions:

* What bus is going to be used to interface between modules?  I2C, SPI, ... ?

* I'm not sure how the GK Vol is being managed.  What I was doing was A/D on the GKVol from the guitar (I think you are doing the same), then D/A (PWM/filtered) out to each GK unit, so I could control them independently to the physical knob.  Are you intending something like this, or will it be a simple on/off mux? (16F677 does have PWM outputs, it seems)

* Equally for the switches, are they to be controlled by data outputs, or only muxed?

* I'm going to assume you're not intending to provide a bidirection comms link to the guitar :)  Though if I made a replacement "MCU" front end, but utilised the GK I/O and filter modules, and whatever else, then I suppose that is part of that.  Actually, I'm not even sure.  Is the intention that the "MCU" (16F877A) is 1x for the GK-guitar-input, and drives the LCD etc?  and then we have 1x the 16F677 on each GK module for each GK-device (VG99, GR55, et al)?

* I also see there is only MIDI I/O listed on the "MCU" pic, not the GK PICs.  Which means... no per-GK device MIDI interface?

I'm just really keen to not have totally incompatible systems, and waste time here... if I could make a different "front end module" that still talks with the other modules, that could be the best of both worlds.

Thanks for your time,
- Peter



gumtown

Quote from: ploveday on February 10, 2013, 09:40:37 PM
So.. I've been thinking about whether I could basically use your project to achieve what I'm trying to do, with perhaps a different "front end" module, but utilising the GK IO modules..  but I'm not quite sure how it hangs together... so I thought I'd ask a few questions:
that could be a good plan

Quote from: ploveday on February 10, 2013, 09:40:37 PM
* What bus is going to be used to interface between modules?  I2C, SPI, ... ?
not finalised that at this stage, but probably SPI

Quote from: ploveday on February 10, 2013, 09:40:37 PM
* I'm not sure how the GK Vol is being managed.  What I was doing was A/D on the GKVol from the guitar (I think you are doing the same), then D/A (PWM/filtered) out to each GK unit, so I could control them independently to the physical knob.  Are you intending something like this, or will it be a simple on/off mux? (16F677 does have PWM outputs, it seems)
try to keep it simple mux switched, but am going to sample the GK vol, GK switch and normal PU levels for midi envelope data.

Quote from: ploveday on February 10, 2013, 09:40:37 PM
* Equally for the switches, are they to be controlled by data outputs, or only muxed?
outputs will be muxed but via the PIC with intention of option for button repeat while held down for scrolling midi values.

Quote from: ploveday on February 10, 2013, 09:40:37 PM
* I'm going to assume you're not intending to provide a bidirection comms link to the guitar :)  Though if I made a replacement "MCU" front end, but utilised the GK I/O and filter modules, and whatever else, then I suppose that is part of that.  Actually, I'm not even sure.  Is the intention that the "MCU" (16F877A) is 1x for the GK-guitar-input, and drives the LCD etc?  and then we have 1x the 16F677 on each GK module for each GK-device (VG99, GR55, et al)?
still have thoughts of wireless data (uni directional) using 430Mhz thumbnail sized modules, and an optional receiver module in the GK IO board, the GK-2 has a spare wire, but it is used on the GK-3 to tell the GR-55 where the GK switch position is at. I think it would be bad to send data down the GK cable with a common ground.

Quote from: ploveday on February 10, 2013, 09:40:37 PM
* I also see there is only MIDI I/O listed on the "MCU" pic, not the GK PICs.  Which means... no per-GK device MIDI interface?
want to keep the GK IO modules physically small, might look at an optional 2 port Midiout expander module.

Quote from: ploveday on February 10, 2013, 09:40:37 PM
I'm just really keen to not have totally incompatible systems, and waste time here... if I could make a different "front end module" that still talks with the other modules, that could be the best of both worlds.

Thanks for your time,
- Peter
I'm sure we could work together on a standard here.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

gumtown

Good thing i posted the file text here,
because i over wrote the files with another project without backing it up
WHeeWie !! :P
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

gumbo

Quote from: gumtown on February 24, 2013, 06:23:37 PM
Good thing i posted the file text here,
because i over wrote the files with another project without backing it up
WHeeWie !! :P

DOUBLE WHeeWie!!
...been there.... ::)
Read slower!!!   ....I'm typing as fast as I can...