I've taken a new direction with this project now. I've decided that, even though the principle is ok for the resistor ladder, (fret resistance didn't seem to be an issue), the problems of string bending, dynamics and polyphony still remain. That's quite a list. I'm using the output of the guitar to trigger oscillators and envelope generators quite happily. I have 2 oscillators, a sub octave oscillator and a low pass filter with resonance so far. I can detune and sync oscillators and change oscillator waveforms, (sawtooth, pulse, with PWM, sine and noise). Note triggering though is problematic at the moment since, especially with the low E string, the amplitude of the string dies away and swells back before dying off again. This amplitude swelling retriggers the envelope generator. If anyone knows a work around, I'm open, as always to suggestions. I know it can be done... Anyway, as my wife says, "It sounds Phatt"! There's some high frequency noise on the video. You can't hear that in my workshed - it must be the camera. Importantly, it feels good and natural to play. Pitchbending is of course spot on, no dynamics as yet but the tracking is immediate,(just the latency of the soundcard - about 6 ms). I've been concentrating on the bass end of the guitar since the desire to play some nice moog style basslines is behind the whole project. It's also mono at the mo but polyphony is easy to implement. That's all for now, LFO's, dynamics and better triggering next.
Monday, 12 July 2010
Friday, 2 July 2010
Tuned guitar
I've got the guitar in tune! Only on one string but that's very easily sorted in software. Basically the guitar outputs one of 2 numbers per fret. I have a lookup table that correlates both numbers to the relevant MIDI pitch number and it plays it.
Semitone trills don't seem to work - though anything greater than a semitone does... I blame the Expression controller. It's not optimised for instantaneous jumps in pitch.
During my continuing research I've come across this unfortunate piece of information, "Actually, the ZETA Mirror 6 kicked ass when you played clean, but the fret/string contacts got dirty over time and the performance degraded as this occurred", (http://www.richardhallebeek.com/interviews/mcclish.php). This is from the founder of Zeta, the violin/guitar people. Bugger! I would have thought that the act of playing the guitar would de-oxidise the frets. This conbined with the polyphony problem means that I'm thinking of changing my approach to this problem... Anyway, here's a brief demo of what I've got..
Semitone trills don't seem to work - though anything greater than a semitone does... I blame the Expression controller. It's not optimised for instantaneous jumps in pitch.
During my continuing research I've come across this unfortunate piece of information, "Actually, the ZETA Mirror 6 kicked ass when you played clean, but the fret/string contacts got dirty over time and the performance degraded as this occurred", (http://www.richardhallebeek.com/interviews/mcclish.php). This is from the founder of Zeta, the violin/guitar people. Bugger! I would have thought that the act of playing the guitar would de-oxidise the frets. This conbined with the polyphony problem means that I'm thinking of changing my approach to this problem... Anyway, here's a brief demo of what I've got..
Monday, 28 June 2010
Crude working model
Ok. Here is a short video of my, (rather small) Electric guitar showing the resistors, crudely pinned to make connections to the frets. There's no triggering, no ptroper scaling etc etc. The biggest ptroblem so far is the fact that as I play higher and higher on the fretboard the groups of numbers sometimes overlap i.e. If I play G, I may get a reading of 63,64 or 65. That's fine to sort out with software. Unfortunately, G# will be 65, 66 and 67. The numbers overlap! Bugger! This is, obviously bad news.. I'm waiting for bigger resistors to arrive in the post. Currently out of a possible 127 numbers, I'm only getting about 2/3 of the full sequence from 1st to last fret, (it starts at around 53 and goes up to 114 or therabouts). I'm hoping that bigger resistors will increase the spread of numbers so that they don't overlap anymore. If anyone knows better let me know huh?...
Saturday, 26 June 2010
step 1
Ok,
I've connected resistors between the frets by gouging out a little hole in the side of the guitar neck next to each fret and slotting resistors in to make a connection. I'm holding them there for the moment with pins from my wife's needlework tin.
I bought some 5K resistors to do this with initially though I've doubled them up now to get a greater range of numbers from the expression pedal input. I'm rather cheekily using the expression socket on the back of my GI10 guitar to MIDI converter to read off the values. Basically, 5 volts from this socket has been applied to the resistor highest up on the neck,(nearest to the body) and the wiper from the expression socket has been attatched to the string. As different frets are played, different numbers are input via the GI10.
So, I can read which fret is being fingered via the expression input. These appear as CC11 values. It's a start!
Now, in order to convert those numbers into note values, I've used the midiConverter3 from Piz midi (http://freemusicsoftware.org/1177). This translates midi CC's to note on, (followed by note off).
I now have a totally out of tune MIDI guitar
- BUT -
The Values go up as I get higher on the fretboard - Hooray!
Next, I need a lookup table to change the values of the CC's to correspond to the correct note numbers....
I've connected resistors between the frets by gouging out a little hole in the side of the guitar neck next to each fret and slotting resistors in to make a connection. I'm holding them there for the moment with pins from my wife's needlework tin.
I bought some 5K resistors to do this with initially though I've doubled them up now to get a greater range of numbers from the expression pedal input. I'm rather cheekily using the expression socket on the back of my GI10 guitar to MIDI converter to read off the values. Basically, 5 volts from this socket has been applied to the resistor highest up on the neck,(nearest to the body) and the wiper from the expression socket has been attatched to the string. As different frets are played, different numbers are input via the GI10.
So, I can read which fret is being fingered via the expression input. These appear as CC11 values. It's a start!
Now, in order to convert those numbers into note values, I've used the midiConverter3 from Piz midi (http://freemusicsoftware.org/1177). This translates midi CC's to note on, (followed by note off).
I now have a totally out of tune MIDI guitar
- BUT -
The Values go up as I get higher on the fretboard - Hooray!
Next, I need a lookup table to change the values of the CC's to correspond to the correct note numbers....
Introduction
Hi there,
There are a lot of frustrated midi guitar players out there.
Guitarists want to be able to expand their sounds like keyboardists. Pitch detection on commercial midi guitars takes time and that time is often too long, resulting in problems with playability.
Sooooo..
I've decided to have a go at using a resistor ladder, (http://en.wikipedia.org/wiki/Resistor_ladder), to derive pitch information from the guitar frets by using the contact between the string and fret as a switch. Each fret would have a resistor between it and the next and the highest fret played would be the note, (just like a guitar).
If this works the problems of delay, (latency) would pretty much disappear. False note triggering should also be a thing of the past. I should at this point stress that THIS MAY WELL NOT WORK. clever R&D people have been working at this problem for decades and still not licked it, (BTW there are some precedents for this idea the vox Guitar organ and the zeta mirror 6. Both used a matrix like configuration rather than resitor ladders, neither is still in production).
I have an old crappy electric guitar which I'm happy to experiment on to achieve my goal.
I'm not an electronics or software guy. I'm a musician who sees the potential in music technology to allow me access to the sounds I dream of...
Please feel free to comment on the project and if you have any ideas to share, PLEASE DO. I will probably need all the help I can get..
There are a lot of frustrated midi guitar players out there.
Guitarists want to be able to expand their sounds like keyboardists. Pitch detection on commercial midi guitars takes time and that time is often too long, resulting in problems with playability.
Sooooo..
I've decided to have a go at using a resistor ladder, (http://en.wikipedia.org/wiki/Resistor_ladder), to derive pitch information from the guitar frets by using the contact between the string and fret as a switch. Each fret would have a resistor between it and the next and the highest fret played would be the note, (just like a guitar).
If this works the problems of delay, (latency) would pretty much disappear. False note triggering should also be a thing of the past. I should at this point stress that THIS MAY WELL NOT WORK. clever R&D people have been working at this problem for decades and still not licked it, (BTW there are some precedents for this idea the vox Guitar organ and the zeta mirror 6. Both used a matrix like configuration rather than resitor ladders, neither is still in production).
I have an old crappy electric guitar which I'm happy to experiment on to achieve my goal.
I'm not an electronics or software guy. I'm a musician who sees the potential in music technology to allow me access to the sounds I dream of...
Please feel free to comment on the project and if you have any ideas to share, PLEASE DO. I will probably need all the help I can get..
Subscribe to:
Posts (Atom)