Shop OBEX P1 Docs P2 Docs Learn Events
Vibrating String Sensor — Parallax Forums

Vibrating String Sensor

ArchiverArchiver Posts: 46,084
edited 2002-01-23 19:24 in General Discussion
Hello all,
I am trying to build a device that records a piano performance as midi
data. I have a switch on each hammer that is triggered by each key, but
this is only on/off data. I built a device that translates this into
midi data, but because no intensity is recorded, the recording is not
very realistic.

I could easily put pickup coils under each of the strings, but how would
you suggest reading these values, and assigning a number between, say, 0
and 15, based on its amplitude? The pickup coils would return an AC
signal, so an analog-digital converter wouldn't work w/o some
modification.

Managing the output off all these will not be a problem. I just want to
build a device that will read a string intensity, and have it be simple
enough to replicate it 60 something times. Any ideas?

Thanks in advance,
Paul Jordan

Comments

  • ArchiverArchiver Posts: 46,084
    edited 2002-01-21 23:04
    Hi Paul,

    Sounds like a big job to "midify" a piano keyboard !

    I've seen something about that a few years ago. There was a special chip
    scanning the status of each input of the 88 switches, and sending note-on,
    note-off midi signals, plus the velocity information. I think this is what
    you're missing with "normal" switches.
    The mechanical part of the switches is made of two bars (like 2 thick copper
    wires), connected to 0V and 5V. Each key is fitted with a kind of spring
    (like the lower strings of the piano), connected to an input of the circuit.
    When the key is not activated, the spring is *just* touching the 0V bar.
    When you hit the key, the spring immediately leaves the 0V bar, and touches
    the 5V bar a certain time later. This time depends on the attack of the note
    played, and is mesured by the electronic circuit, which sends a note-on
    message and its velocity.
    This is another way to manage the velocity information.

    Anyway, how do you read all those switches ? Don't you get any delay problem
    when you play a chord ?

    Best regards,

    Phil.

    Original Message
    From: "Paul Jordan" <automations@c...>
    To: <basicstamps@yahoogroups.com>
    Sent: Monday, January 21, 2002 11:34 PM
    Subject: [noparse][[/noparse]basicstamps] Vibrating String Sensor


    >
    > Hello all,
    > I am trying to build a device that records a piano performance as midi
    > data. I have a switch on each hammer that is triggered by each key, but
    > this is only on/off data. I built a device that translates this into
    > midi data, but because no intensity is recorded, the recording is not
    > very realistic.
    >
    > I could easily put pickup coils under each of the strings, but how would
    > you suggest reading these values, and assigning a number between, say, 0
    > and 15, based on its amplitude? The pickup coils would return an AC
    > signal, so an analog-digital converter wouldn't work w/o some
    > modification.
    >
    > Managing the output off all these will not be a problem. I just want to
    > build a device that will read a string intensity, and have it be simple
    > enough to replicate it 60 something times. Any ideas?
    >
    > Thanks in advance,
    > Paul Jordan
    >
    >
    > 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.
    >
    >
    > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
    >
    >
    >
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-21 23:59
    Thanks for the info Philippe.
    This actually a project to convert a huge stash of player piano rolls
    over to midi files. As it is a player piano, only about 60 keys need to
    be monitored; there are only about 60 different notes used on the rolls.

    Right now all the switches are hardwired into a gutted Yamaha
    synthesizer, so the switches are actually 'playing' on the synth, which
    has a midi output. Thus there is on delay, but also no intensity info.

    I did have success using one Basic Stamp 2 to scan 16 keys, and send the
    midi data for this. It was plenty fast. I would just need 4 stamps for
    64 keys. Each would operate on a different midi channel.

    However, this has no advantage unless I can capture the intensity data.

    I did succeed in building a midi 4-stringed mandolin...
    http://users.characterlink.net/jordan/mandolin.htm

    I also want to put intensity sensors on this. There are only 4 strings,
    so it shouldn't be that hard.
    Any ideas on how to read the string vibration intensity anyone? It
    shouldn't be that hard...

    Paul Jordan

    Original Message
    From: Philippe Derenne [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=KcT2hivOatQPXkrFW87oVqinYPy-83PnKrVeXic-Jd2Dl3BnRnRkqsIYPLc9NOoDATtLVEru0nlnJS1J]derennep@s...[/url
    Sent: Monday, January 21, 2002 3:05 PM
    To: basicstamps@yahoogroups.com
    Subject: Re: [noparse][[/noparse]basicstamps] Vibrating String Sensor

    Hi Paul,

    Sounds like a big job to "midify" a piano keyboard !

    I've seen something about that a few years ago. There was a special chip
    scanning the status of each input of the 88 switches, and sending
    note-on,
    note-off midi signals, plus the velocity information. I think this is
    what
    you're missing with "normal" switches.
    The mechanical part of the switches is made of two bars (like 2 thick
    copper
    wires), connected to 0V and 5V. Each key is fitted with a kind of spring
    (like the lower strings of the piano), connected to an input of the
    circuit.
    When the key is not activated, the spring is *just* touching the 0V bar.
    When you hit the key, the spring immediately leaves the 0V bar, and
    touches
    the 5V bar a certain time later. This time depends on the attack of the
    note
    played, and is mesured by the electronic circuit, which sends a note-on
    message and its velocity.
    This is another way to manage the velocity information.

    Anyway, how do you read all those switches ? Don't you get any delay
    problem
    when you play a chord ?

    Best regards,

    Phil.

    Original Message
    From: "Paul Jordan" <automations@c...>
    To: <basicstamps@yahoogroups.com>
    Sent: Monday, January 21, 2002 11:34 PM
    Subject: [noparse][[/noparse]basicstamps] Vibrating String Sensor

    >
    > Hello all,
    > I am trying to build a device that records a piano performance as midi
    > data. I have a switch on each hammer that is triggered by each key,
    but
    > this is only on/off data. I built a device that translates this into
    > midi data, but because no intensity is recorded, the recording is not
    > very realistic.
    >
    > I could easily put pickup coils under each of the strings, but how
    would
    > you suggest reading these values, and assigning a number between, say,
    0
    > and 15, based on its amplitude? The pickup coils would return an AC
    > signal, so an analog-digital converter wouldn't work w/o some
    > modification.
    >
    > Managing the output off all these will not be a problem. I just want
    to
    > build a device that will read a string intensity, and have it be
    simple
    > enough to replicate it 60 something times. Any ideas?
    >
    > Thanks in advance,
    > Paul Jordan
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-22 00:34
    Ever thought about reading the rolls directly? Maybe you can do it with some
    phototransistors?

    Original Message

    > This actually a project to convert a huge stash of player piano rolls
    > over to midi files. As it is a player piano, only about 60 keys need to
    > be monitored; there are only about 60 different notes used on the rolls.
    >
    > Right now all the switches are hardwired into a gutted Yamaha
    > synthesizer, so the switches are actually 'playing' on the synth, which
    > has a midi output. Thus there is on delay, but also no intensity info.
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-22 00:55
    Good idea Rodent, tried that. The paper leaked too much light through. I
    painted a roll black, and that fixed that problem. Light still leaked
    around the holes. There are more like slits, about a millimeter wide.
    The player piano uses a vacuum and bellows arrangement to sense, and
    that is pretty foolproof.

    Maybe if I get some of those thin rectangle LEDs a d phototransistors I
    could do it. The different widths would let different amounts of light
    in. That could work. Although then it couldn't record a person, which is
    pretty neat to be able to do. Although the person could play on the
    synth just as easily...

    I would still like to be able to sense the amplitude of the mandolin's 4
    strings, however. http://users.characterlink.net/jordan/mandolin.htm

    Thanks again.
    Paul Jordan

    Original Message
    From: Rodent [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=zmcnKUfVdS7v-L9mn0tJGP2c8eJtPYkLcG1v04pKnsHPgZyh_ypG6lJd63LPGmPfy3f90huEYLlAb4LFpQ]daweasel@s...[/url
    Sent: Monday, January 21, 2002 4:35 PM
    To: basicstamps@yahoogroups.com
    Subject: Re: [noparse][[/noparse]basicstamps] Vibrating String Sensor

    Ever thought about reading the rolls directly? Maybe you can do it with
    some
    phototransistors?

    Original Message

    > This actually a project to convert a huge stash of player piano rolls
    > over to midi files. As it is a player piano, only about 60 keys need
    to
    > be monitored; there are only about 60 different notes used on the
    rolls.
    >
    > Right now all the switches are hardwired into a gutted Yamaha
    > synthesizer, so the switches are actually 'playing' on the synth,
    which
    > has a midi output. Thus there is on delay, but also no intensity info.
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-22 01:12
    Paul,
    Have you tried just going off the vacuum lines with vacuum switches.
    You could set up the vacuum switches in one of two was, depending on the switch.
    The first way would be an of on stitch a a given vacuum level.
    The second on would be set as a gauge that would go from Atmosphere to the max
    vacuum level of the system.
    With the second version you should be able to correlate the vacuum reading to a
    slot width on the roll.
    Just an idea.

    Paul Jordan wrote:

    > Good idea Rodent, tried that. The paper leaked too much light through. I
    > painted a roll black, and that fixed that problem. Light still leaked
    > around the holes. There are more like slits, about a millimeter wide.
    > The player piano uses a vacuum and bellows arrangement to sense, and
    > that is pretty foolproof.
    >
    > Maybe if I get some of those thin rectangle LEDs a d phototransistors I
    > could do it. The different widths would let different amounts of light
    > in. That could work. Although then it couldn't record a person, which is
    > pretty neat to be able to do. Although the person could play on the
    > synth just as easily...
    >
    > I would still like to be able to sense the amplitude of the mandolin's 4
    > strings, however. http://users.characterlink.net/jordan/mandolin.htm
    >
    > Thanks again.
    > Paul Jordan
    >
    >
    Original Message
    > From: Rodent [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=Hmfg3fNQ6ASX6y1SxzBg_KInp9nzh6wZ75ncaUmmy0j1faa0c1WBoZp0b7RMbUuJSdKKpW_GQj_-]daweasel@s...[/url
    > Sent: Monday, January 21, 2002 4:35 PM
    > To: basicstamps@yahoogroups.com
    > Subject: Re: [noparse][[/noparse]basicstamps] Vibrating String Sensor
    >
    > Ever thought about reading the rolls directly? Maybe you can do it with
    > some
    > phototransistors?
    >
    >
    Original Message
    >
    > > This actually a project to convert a huge stash of player piano rolls
    > > over to midi files. As it is a player piano, only about 60 keys need
    > to
    > > be monitored; there are only about 60 different notes used on the
    > rolls.
    > >
    > > Right now all the switches are hardwired into a gutted Yamaha
    > > synthesizer, so the switches are actually 'playing' on the synth,
    > which
    > > has a midi output. Thus there is on delay, but also no intensity info.
    >
    > 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.
    >
    >
    > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-22 05:45
    Paul,

    I hesitate to mention a non-stamp solution, but why reinvent a midi
    sampler? Low-cost samplers exist, so one approach is to find a decent
    player piano and sample the output directly to midi files. My midi
    experience is with a Korg digital grand, but for a real piano
    performance experience, I still prefer an acoustic Steinway Model M.

    Dennis

    Original Message
    From: Paul Jordan [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=olpXrfcc31IwJJ2GwdfBDUClzUZTcLfSHAvQ9o-fll1t2S4JtzEL00TrtIzE3o9L39lUT2sM4ryxAtsgGkEjmnYbSnI8]automations@c...[/url
    Sent: Monday, January 21, 2002 2:35 PM
    To: basicstamps@yahoogroups.com
    Subject: [noparse][[/noparse]basicstamps] Vibrating String Sensor


    Hello all,
    I am trying to build a device that records a piano performance as midi
    data. I have a switch on each hammer that is triggered by each key, but
    this is only on/off data. I built a device that translates this into
    midi data, but because no intensity is recorded, the recording is not
    very realistic.

    I could easily put pickup coils under each of the strings, but how would
    you suggest reading these values, and assigning a number between, say, 0
    and 15, based on its amplitude? The pickup coils would return an AC
    signal, so an analog-digital converter wouldn't work w/o some
    modification.

    Managing the output off all these will not be a problem. I just want to
    build a device that will read a string intensity, and have it be simple
    enough to replicate it 60 something times. Any ideas?

    Thanks in advance,
    Paul Jordan


    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.


    Your use of Yahoo! Groups is subject to
    http://docs.yahoo.com/info/terms/
  • ArchiverArchiver Posts: 46,084
    edited 2002-01-23 19:24
    Heres another different approach, I sometimes use a program called
    "Sound2Midi" it allows you to convert a recording of audio into Midi. It
    might be usefull in this application.
    check this link: http://www.hitsquad.com/smm/programs/Sound2MIDI/
    Richard


    Original Message
    From: Rodent [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=pJ4t38EgNuaSIu9QnP6RmbsfzrrvsxbGfjdImOpGmwD9jvblIW7zzcFp-2ZVr_5JtQ4aMR9OwSI3FQ]daweasel@s...[/url
    Sent: Monday, January 21, 2002 7:35 PM
    To: basicstamps@yahoogroups.com
    Subject: Re: [noparse][[/noparse]basicstamps] Vibrating String Sensor


    Ever thought about reading the rolls directly? Maybe you can do it with some
    phototransistors?

    Original Message

    > This actually a project to convert a huge stash of player piano rolls
    > over to midi files. As it is a player piano, only about 60 keys need to
    > be monitored; there are only about 60 different notes used on the rolls.
    >
    > Right now all the switches are hardwired into a gutted Yamaha
    > synthesizer, so the switches are actually 'playing' on the synth, which
    > has a midi output. Thus there is on delay, but also no intensity info.




    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.


    Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Sign In or Register to comment.