Shop OBEX P1 Docs P2 Docs Learn Events
MIDI bass guitar? — Parallax Forums

MIDI bass guitar?

ArchiverArchiver Posts: 46,084
edited 2004-04-05 20:40 in General Discussion
Hello,
I plan on developing a MIDI bass guitar over spring term with the BS2
and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
have no idea how to get this many inputs recognized. I can already
send MIDI signals with my stamp, I just need it to the 80 inputs.

Any advice or suggestions are welcome [noparse]:)[/noparse]

-Jeff

Comments

  • ArchiverArchiver Posts: 46,084
    edited 2004-03-22 03:32
    There are a lot of notes on the bass that are the same... octaves,
    fifths and such. You could definitely cut down on inputs if you make
    the 7th fret of the A string the same as the 12th fret on the E string.
    Just an idea

    Adam

    Original Message
    From: jeff_m_hopkins [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=9oyJo8FPcoAilVIqViS0VC2ffuwKr7gKHdXpVv1nnqxFWsn9S_QdG2odG6pCiZW9fOAZHa1txBtmBAlkGPmGppk]jeff_m_hopkins@y...[/url
    Sent: Sunday, March 21, 2004 6:37 PM
    To: basicstamps@yahoogroups.com
    Subject: [noparse][[/noparse]basicstamps] MIDI bass guitar?

    Hello,
    I plan on developing a MIDI bass guitar over spring term with the BS2
    and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    have no idea how to get this many inputs recognized. I can already
    send MIDI signals with my stamp, I just need it to the 80 inputs.

    Any advice or suggestions are welcome [noparse]:)[/noparse]

    -Jeff




    To UNSUBSCRIBE, just send mail to:
    basicstamps-unsubscribe@yahoogroups.com
    from the same email address that you subscribed. Text in the Subject
    and Body of the message will be ignored.

    Yahoo! Groups Links
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-22 16:07
    Jeff,

    Typically a MIDI guitar or bass uses a multi-output piezo pickup with one
    output per string. Then each string's output is sampled to determine its
    frequency at any given time. That information, along with volume level, is
    converted into a MIDI string, which can then be passed onto whatever MIDI
    device or recorder you like. I've never seen any sort of MIDI guitar, bass
    or otherwise, that looks at every fret on the neck. But then again, I'm a
    keyboard player.

    One of the big problems with any MIDI guitar is response time, since a
    musician will be stifled in his playing once the lag time between hitting a
    string and hearing the response gets over a few tens of milliseconds. Your
    system might get over that lag issue if you're very clever.

    Mike Sokol
    mike@f...
    www.fitsandstarts.com

    " One should not increase, beyond what is necessary,
    the number of entities required to explain anything"...
    -William of Occam-


    > Hello,
    > I plan on developing a MIDI bass guitar over spring term with the BS2
    > and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    > have no idea how to get this many inputs recognized. I can already
    > send MIDI signals with my stamp, I just need it to the 80 inputs.
    >
    > Any advice or suggestions are welcome [noparse]:)[/noparse]
    >
    > -Jeff
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-22 16:38
    At 11:07 AM 3/22/2004 -0500, you wrote:
    >Jeff,
    >
    >Typically a MIDI guitar or bass uses a multi-output piezo pickup with one
    >output per string. Then each string's output is sampled to determine its
    >frequency at any given time. That information, along with volume level, is
    >converted into a MIDI string, which can then be passed onto whatever MIDI
    >device or recorder you like. I've never seen any sort of MIDI guitar, bass
    >or otherwise, that looks at every fret on the neck. But then again, I'm a
    >keyboard player.

    Actually the system of wired frets has been used many times over the years
    for synthesis control. Peavey used to market the Cyber-bass (actually
    made by an Aussie company) that used wired frets for note sensing but used
    piezo pickups for the actually triggering of the note. The Ampeg Patch 2000
    AKA Hagstrom 2000 as well as the venerable Guit-organ all used wired frets
    for synthesis. These were very fast in the triggering department but
    couldn't sense when a note was bent.

    >One of the big problems with any MIDI guitar is response time, since a
    >musician will be stifled in his playing once the lag time between hitting a
    >string and hearing the response gets over a few tens of milliseconds. Your
    >system might get over that lag issue if you're very clever.

    This is less of a problem for an experience midi-guitarist since you pretty
    rapidly learn to play just early enough to make the notes fall on the beat.
    In my case this took well less than a week. Lag exists in many instruments.
    In fact the synth patches being triggered can cause more seeming timing
    problems than any triggering delays, for instance if your patch has little
    or no attack on the front end but swells in volume. Consider large pipe
    organs in big old churches many of these use long wooden strips to connect
    the keys to the pipe valves in some cases these strips can be 20 feet long
    and there is an appreciable delay between the key press and valve action
    due the slack in the wood strip, bending etc. even before you add in the
    physical distance between the pipes and the organist Real old time pipe
    organists take this in stride. Most newer organs use electrical valves but
    the old mechanical types are still being built today. However I must say
    that this sounds a bit like re-inventing the wheel since Cyber-basses
    routinely appear on Ebay for reasonable prices, and there is also the Z-tar
    line by Starr Labs which are in current production. You can also use Axon
    AX100's for bass to midi conversions as well as the new Roland GI-20 system
    both currently in production (these trigger from either piezo or mag
    pickups). matt
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-22 19:56
    It's much worse than that, you've got velocity information & bending
    information, though I'm not precisely sure how you transmit that on the
    midi bus, since there's only one global bend parameter (to my knowledge)

    I wonder if it might make sense, instead of considering a 'fret' an input
    to consider a 'string' an input. Basically I'm saying get 4 pickups, feed
    the pickups into ADC's, and use the microcontroller to process the wave.
    My only trepidation with this would be that the overall wave of a bass
    guitar might be too complex to process without something like a phase
    vocoder or FFT algorithm, which can't reasonably be done on a stamp.


    On Mon, 22 Mar 2004, jeff_m_hopkins wrote:

    > Hello,
    > I plan on developing a MIDI bass guitar over spring term with the BS2
    > and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    > have no idea how to get this many inputs recognized. I can already
    > send MIDI signals with my stamp, I just need it to the 80 inputs.
    >
    > Any advice or suggestions are welcome [noparse]:)[/noparse]
    >
    > -Jeff
    >
    >
    >
    >
    > To UNSUBSCRIBE, just send mail to:
    > basicstamps-unsubscribe@yahoogroups.com
    > from the same email address that you subscribed. Text in the Subject and Body
    of the message will be ignored.
    >
    > Yahoo! Groups Links
    >
    >
    >
    >
    >
    >

    Sean T. Lamont, CTO / Chief NetNerd, Abstract Software, Inc. (ServNet)
    Seattle - Bellingham - Vancouver - Portland - Everett - Tacoma - Bremerton
    email: lamont@a... WWW: http://www.serv.net
    "Do not fear mistakes, There Are None" - Miles Davis
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-22 23:54
    I wanted to stay away from using the ADCs for wav proccessing because
    I was afraid that they wouldn't be able to handle it. I'm not
    interested in sending pitch or volume levels, I'm going to have those
    on potentiometers. I think I've found out how to get so many inputs
    though. The actual finished product I had no intention of playing
    like an actual bass guitar. It's just a MIDI input device.

    Now here goes the Idea, Tell me if this is really bad [noparse]:)[/noparse]

    Okay, the thought was to have 5 volts go from the string down to
    contact plates that are below where the frets are. when you press the
    string down it maked contact with the contact plate, completing the
    circuit. On the back side of these contact platese there will be
    resistors. These resistors will change the voltage depending on what
    fret is pressed down. So by having 2 pins per string it takes the
    inputs up to 8. All I need is to get the BS2 to be able to
    distinguish between about 10 sets of resistors. Maybe a ADC for each
    input string? and then we have a tuning potentiometer, and MIDI
    program up and down buttons, and a MIDI transpose up and down (just
    in case you wanted to play flute or something).


    --- In basicstamps@yahoogroups.com, "Sean T. Lamont .lost."
    <lamont@a...> wrote:
    >
    > It's much worse than that, you've got velocity information & bending
    > information, though I'm not precisely sure how you transmit that on
    the
    > midi bus, since there's only one global bend parameter (to my
    knowledge)
    >
    > I wonder if it might make sense, instead of considering a 'fret' an
    input
    > to consider a 'string' an input. Basically I'm saying get 4
    pickups, feed
    > the pickups into ADC's, and use the microcontroller to process the
    wave.
    > My only trepidation with this would be that the overall wave of a
    bass
    > guitar might be too complex to process without something like a
    phase
    > vocoder or FFT algorithm, which can't reasonably be done on a stamp.
    >
    >
    > On Mon, 22 Mar 2004, jeff_m_hopkins wrote:
    >
    > > Hello,
    > > I plan on developing a MIDI bass guitar over spring term with the
    BS2
    > > and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    > > have no idea how to get this many inputs recognized. I can already
    > > send MIDI signals with my stamp, I just need it to the 80 inputs.
    > >
    > > Any advice or suggestions are welcome [noparse]:)[/noparse]
    > >
    > > -Jeff
    > >
    > >
    > >
    > >
    > > To UNSUBSCRIBE, just send mail to:
    > > basicstamps-unsubscribe@yahoogroups.com
    > > from the same email address that you subscribed. Text in the
    Subject and Body of the message will be ignored.
    > >
    > > Yahoo! Groups Links
    > >
    > >
    > >
    > >
    > >
    > >
    >
    > Sean T. Lamont, CTO / Chief NetNerd, Abstract Software, Inc.
    (ServNet)
    > Seattle - Bellingham - Vancouver - Portland - Everett - Tacoma -
    Bremerton
    > email: lamont@a... WWW: http://www.serv.net
    > "Do not fear mistakes, There Are None" - Miles Davis
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-23 01:11
    It's a reasonable idea. You might look at rctime as a methodology for
    determining resistance.

    One thing I wondered about this : Do bass strings have enough inherent
    resistance to measure the resistive difference from fret to fret? If so,
    you could sort of make the contact point your fret board, and send voltage
    along the string itself. Then you can basically have all your frets on a
    given string be connected. Interestingly enough, this would also work on a
    fretless bass, but you'd have to have the entire neck of the bass be
    metal, then as you put your finger further down the fretboard, you'd get
    higher resistance because of the voltage travelling farther down the
    string before it contacted the metal.

    My main concern with anything that doesn't involve some manner of sensing
    vibrations, though, is this: You have *no* dynamics whatsoever, including
    plucking. The instant you put your left hand on a fret, it plays the note.
    I'm not an expert bassist or anything, but whenever I play stringed
    instruments, I first position the finger on the fretboard, then I play it,
    then I might stop it with my hand. Just tracking the fingers on the
    fretboard isn't going to give you the ability to move your left hand
    without making noise, regardless of whether you're plucking or not. And
    then there's the matter of the open strings - if you made un-fretted
    strings default to playing a note, they'd make noise all the time. If you
    made them default to silence, it would be very hard to play the notes in
    their natural open position.

    Alternatively, doing WAV processing would get all those nuanced bit, you'd
    just have to move up to something with some greater horsepower. Plus, you
    might learn something about linear algebra. If you want to research it,
    there's a lot of stuff around the net on "FFT", or fast fourier transform.
    Here's one such:

    http://www.spd.eee.strath.ac.uk/~interact/fourier/fft.html


    On Mon, 22 Mar 2004, jeff_m_hopkins wrote:

    > I wanted to stay away from using the ADCs for wav proccessing because
    > I was afraid that they wouldn't be able to handle it. I'm not
    > interested in sending pitch or volume levels, I'm going to have those
    > on potentiometers. I think I've found out how to get so many inputs
    > though. The actual finished product I had no intention of playing
    > like an actual bass guitar. It's just a MIDI input device.
    >
    > Now here goes the Idea, Tell me if this is really bad [noparse]:)[/noparse]
    >
    > Okay, the thought was to have 5 volts go from the string down to
    > contact plates that are below where the frets are. when you press the
    > string down it maked contact with the contact plate, completing the
    > circuit. On the back side of these contact platese there will be
    > resistors. These resistors will change the voltage depending on what
    > fret is pressed down. So by having 2 pins per string it takes the
    > inputs up to 8. All I need is to get the BS2 to be able to
    > distinguish between about 10 sets of resistors. Maybe a ADC for each
    > input string? and then we have a tuning potentiometer, and MIDI
    > program up and down buttons, and a MIDI transpose up and down (just
    > in case you wanted to play flute or something).


    >
    >
    > --- In basicstamps@yahoogroups.com, "Sean T. Lamont .lost."
    > <lamont@a...> wrote:
    > >
    > > It's much worse than that, you've got velocity information & bending
    > > information, though I'm not precisely sure how you transmit that on
    > the
    > > midi bus, since there's only one global bend parameter (to my
    > knowledge)
    > >
    > > I wonder if it might make sense, instead of considering a 'fret' an
    > input
    > > to consider a 'string' an input. Basically I'm saying get 4
    > pickups, feed
    > > the pickups into ADC's, and use the microcontroller to process the
    > wave.
    > > My only trepidation with this would be that the overall wave of a
    > bass
    > > guitar might be too complex to process without something like a
    > phase
    > > vocoder or FFT algorithm, which can't reasonably be done on a stamp.
    > >
    > >
    > > On Mon, 22 Mar 2004, jeff_m_hopkins wrote:
    > >
    > > > Hello,
    > > > I plan on developing a MIDI bass guitar over spring term with the
    > BS2
    > > > and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    > > > have no idea how to get this many inputs recognized. I can already
    > > > send MIDI signals with my stamp, I just need it to the 80 inputs.
    > > >
    > > > Any advice or suggestions are welcome [noparse]:)[/noparse]
    > > >
    > > > -Jeff
    > > >
    > > >
    > > >
    > > >
    > > > To UNSUBSCRIBE, just send mail to:
    > > > basicstamps-unsubscribe@yahoogroups.com
    > > > from the same email address that you subscribed. Text in the
    > Subject and Body of the message will be ignored.
    > > >
    > > > Yahoo! Groups Links
    > > >
    > > >
    > > >
    > > >
    > > >
    > > >
    > >
    > > Sean T. Lamont, CTO / Chief NetNerd, Abstract Software, Inc.
    > (ServNet)
    > > Seattle - Bellingham - Vancouver - Portland - Everett - Tacoma -
    > Bremerton
    > > email: lamont@a... WWW: http://www.serv.net
    > > "Do not fear mistakes, There Are None" - Miles Davis
    >
    >
    >
    >
    > To UNSUBSCRIBE, just send mail to:
    > basicstamps-unsubscribe@yahoogroups.com
    > from the same email address that you subscribed. Text in the Subject and Body
    of the message will be ignored.
    >
    > Yahoo! Groups Links
    >
    >
    >
    >
    >
    >

    Sean T. Lamont, Chief Mad Scientist |-- lamont@a...
    Zen Chemical Productions |-- http://www.zenchemical.com
    Fabricators of Unnecessary Amazement
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-23 01:22
    It occurred to me after I posted this : You could actually do both. Drop a
    pickup on the bass, but use it just as an amplitude sensor. You're going
    to get some sort of signal out of that, let's say it's 0-1 volts. So
    you've got 4 strings producing variable voltage / resistance / capacitance
    discharge, and you've got another 4 (or possibly even 1) input which is
    your dynamic control. If there's a finger on the fretboard and no input
    from the pickups, your finger is just sitting on it. If, after that, you
    get a 1V signal from the pickup, you know you've just plucked the string
    pretty hard, and can send midi velocity information appropriately. If
    instead you see a .5V signal off the pickup, you know you've played it not
    quite so hard, and so you can adjust the midi keydown volume information.
    If you stop it with your hand, the pickup output goes to 0V, and so you
    can send a midi noteup command.

    Just a thought.

    Sean T. Lamont, Chief Mad Scientist |-- lamont@a...
    Zen Chemical Productions |-- http://www.zenchemical.com
    Fabricators of Unnecessary Amazement
  • ArchiverArchiver Posts: 46,084
    edited 2004-03-23 14:21
    At 11:56 AM 3/22/2004 -0800, you wrote:

    >It's much worse than that, you've got velocity information & bending
    >information, though I'm not precisely sure how you transmit that on the
    >midi bus, since there's only one global bend parameter (to my knowledge)

    The complete midi data stream from a guitar to synth converter is extremely
    complex and messy. There are so many bend messages that some synth modules
    are unable to keep up. Most midi converters have the ability to either thin
    the bend command data or exclude it all together. You also have issues with
    setting the bend range on synth patches to allow the bend data to be used
    many patches are for keys and have limited bend range preset from the factory.

    >I wonder if it might make sense, instead of considering a 'fret' an input
    >to consider a 'string' an input. Basically I'm saying get 4 pickups, feed
    >the pickups into ADC's, and use the microcontroller to process the wave.
    >My only trepidation with this would be that the overall wave of a bass
    >guitar might be too complex to process without something like a phase
    >vocoder or FFT algorithm, which can't reasonably be done on a stamp.

    In order to determine the actual note being played the system would have to
    wait until it got a complete wave from the bass. This will cause the
    triggering to be slower the lower the note played. Axon converters use a
    proprietary technology to do a very good estimate of the notes frequency by
    analyzing the attack characteristics in their own circuits and use a
    "trained neural network" to make the final decision on frequency. This only
    works when the converter is in pick mode (i.e. using a pick or plectrum
    rather than fingers). The midi guitar and GR30 groups at Yahoo are visited
    regularly by Andras Szalay designer from Blue Chip that did the designs for
    the Axon converter (the Yamaha G50 is an older design of the same system).
    I believe this type of design may well be beyond the ability of the stamp
    to perform.


    >On Mon, 22 Mar 2004, jeff_m_hopkins wrote:
    >
    > > Hello,
    > > I plan on developing a MIDI bass guitar over spring term with the BS2
    > > and BOE. The problem is I need 4 strings * 20 frets = 80 inputs. I
    > > have no idea how to get this many inputs recognized. I can already
    > > send MIDI signals with my stamp, I just need it to the 80 inputs.
    > >
    > > Any advice or suggestions are welcome [noparse]:)[/noparse]
    > >
    > > -Jeff
  • ArchiverArchiver Posts: 46,084
    edited 2004-04-03 01:44
    I've been working with the wired frets idea and I have no noticeable
    wait for the note to be played. I want to try out the idea of having
    a pickup for velocity checks, but I don't know how to hook it up into
    the bs2. Does anybody have any experience for detecting the amount of
    vibration of steel strings with some sort of pickup? And then my
    worry is that it would be sensing some of my other string vibrating.
    any ideas on this? Does a pickup just send voltage depending on
    vibration?

    any help on the subject would be great

    (thanks for the idea)

    --- In basicstamps@yahoogroups.com, "Sean T. Lamont .lost."
    <lamont@a...> wrote:
    >
    > It occurred to me after I posted this : You could actually do both.
    Drop a
    > pickup on the bass, but use it just as an amplitude sensor. You're
    going
    > to get some sort of signal out of that, let's say it's 0-1 volts.
    So
    > you've got 4 strings producing variable voltage / resistance /
    capacitance
    > discharge, and you've got another 4 (or possibly even 1) input
    which is
    > your dynamic control. If there's a finger on the fretboard and no
    input
    > from the pickups, your finger is just sitting on it. If, after
    that, you
    > get a 1V signal from the pickup, you know you've just plucked the
    string
    > pretty hard, and can send midi velocity information appropriately.
    If
    > instead you see a .5V signal off the pickup, you know you've played
    it not
    > quite so hard, and so you can adjust the midi keydown volume
    information.
    > If you stop it with your hand, the pickup output goes to 0V, and so
    you
    > can send a midi noteup command.
    >
    > Just a thought.
    >
    > Sean T. Lamont, Chief Mad Scientist |-- lamont@a...
    > Zen Chemical Productions |--
    http://www.zenchemical.com
    > Fabricators of Unnecessary Amazement
  • ArchiverArchiver Posts: 46,084
    edited 2004-04-05 20:40
    I think you could just use an ADC ; what you really want to measure is the
    voltage peak. Check out the output of your pickups in a voltmeter or a
    scope. The worst thing i could see would be if you'd need to amplify (or
    unamplify) the signal to get it in the right range.

    On Sat, 3 Apr 2004, jeff_m_hopkins wrote:

    > I've been working with the wired frets idea and I have no noticeable
    > wait for the note to be played. I want to try out the idea of having
    > a pickup for velocity checks, but I don't know how to hook it up into
    > the bs2. Does anybody have any experience for detecting the amount of
    > vibration of steel strings with some sort of pickup? And then my
    > worry is that it would be sensing some of my other string vibrating.
    > any ideas on this? Does a pickup just send voltage depending on
    > vibration?
    >
    > any help on the subject would be great
    >
    > (thanks for the idea)
    >
    > --- In basicstamps@yahoogroups.com, "Sean T. Lamont .lost."
    > <lamont@a...> wrote:
    > >
    > > It occurred to me after I posted this : You could actually do both.
    > Drop a
    > > pickup on the bass, but use it just as an amplitude sensor. You're
    > going
    > > to get some sort of signal out of that, let's say it's 0-1 volts.
    > So
    > > you've got 4 strings producing variable voltage / resistance /
    > capacitance
    > > discharge, and you've got another 4 (or possibly even 1) input
    > which is
    > > your dynamic control. If there's a finger on the fretboard and no
    > input
    > > from the pickups, your finger is just sitting on it. If, after
    > that, you
    > > get a 1V signal from the pickup, you know you've just plucked the
    > string
    > > pretty hard, and can send midi velocity information appropriately.
    > If
    > > instead you see a .5V signal off the pickup, you know you've played
    > it not
    > > quite so hard, and so you can adjust the midi keydown volume
    > information.
    > > If you stop it with your hand, the pickup output goes to 0V, and so
    > you
    > > can send a midi noteup command.
    > >
    > > Just a thought.
    > >
    > > Sean T. Lamont, Chief Mad Scientist |-- lamont@a...
    > > Zen Chemical Productions |--
    > http://www.zenchemical.com
    > > Fabricators of Unnecessary Amazement
    >
    >
    >
    >
    > To UNSUBSCRIBE, just send mail to:
    > basicstamps-unsubscribe@yahoogroups.com
    > from the same email address that you subscribed. Text in the Subject and Body
    of the message will be ignored.
    >
    > Yahoo! Groups Links
    >
    >
    >
    >
    >
    >

    Sean T. Lamont, CTO / Chief NetNerd, Abstract Software, Inc. (ServNet)
    Seattle - Bellingham - Vancouver - Portland - Everett - Tacoma - Bremerton
    email: lamont@a... WWW: http://www.serv.net
    "Do not fear mistakes, There Are None" - Miles Davis
Sign In or Register to comment.