Jump to content

Recommended Posts

Posted (edited)

Inspired by Danny's Bandon.ino project, I decided to build another MIDI concertina using a 1kg load cell for the bellows sensor.  Here's my first video:

 

 

 

I used two simple 3d-printed attachments to hold the load cell in the center, and I can easily read press or draw forces on it with the HX711 that came with it.  The rest is the same buttons/lights/chassis/teensy/etc.  

 

It's a slightly different experience with the ends not moving at all, and perhaps easier to play quickly and precisely.  I still have to adjust the programming to account for the new sensor's sensitivity.  By the way, it has a huge dynamic range that doesn't come through in the video --- I think my camera applied some dynamic compression so you can't hear how loud/quiet it gets.

Edited by caj
Fixed the video
  • Like 7
Posted

Very exciting. Would you make a link to "Danny's Bandon.ino project"? I also thougt over these things, but i am not able, to realize it from the tec-side.

 

Posted
24 minutes ago, b13 said:

Very exciting. Would you make a link to "Danny's Bandon.ino project"? I also thougt over these things, but i am not able, to realize it from the tec-side.

 

 

He's posted about it here, and you can find details on page 3 of this thread.

 

That inspired me to try using a load cell as well.    My impression is that it makes much more sense for something like a MIDI concertina kit, because it's self-contained and widely available.  My previous attempt at a sensor was homebrewed and required a bit of assembly, with more moving parts that made it complicated to install (and noisy.)  The load cell has no moving parts and obviously makes no noise at all.

Posted

Here's another attempt to convey the box's dynamic range:  I shunted the audio straight from Mainstage to Blackhole and from Blackhole to OBS, and I think it works better to show how it sounds.

 

 

It's actually way more effective when I plug the laptop into an external speaker, in which case I can really make the thing go from meek to blasty.  

  • Like 3
Posted
12 hours ago, Howard Mitchell said:

It’s almost a year since I produced this prototype midi anglo using a load cell. https://youtu.be/pAvdKVcUVAs?si=t4ezH3S3_pk4fxvk

 

it needs more work on the algorithm to relate force to midi polyphonic pressure. 

That would be difficult wIth my system, which sends an analogue control voltage to an off-the-shelf MIDI controller; but if you have a microprocessor doing the clever stuff a simple look-up table should do the job.

Posted
21 hours ago, Howard Mitchell said:

it needs more work on the algorithm to relate force to midi polyphonic pressure. 

 

May I ask what the exact problem is?  From the video, it already sounds incredibly responsive.

 

I had a problem where I wanted dynamics with quiet notes from gentle pressure, but I also wanted the notes to sound quickly and firmly without ramping up in volume when I played normally.  Right now I'm addressing that by taking the force input and squashing the low end, so that it goes from 0 to medium loud faster while still allowing me to play quietly.

  • 2 months later...
Posted

I resurrected my MIDI concertina project (details to follow) and am now looking into ways to emulate bellows movement. Load cells look rather interesting; however, all implementations presented here use a hinge type of load cell attachment, so haptically, the movement to drive this is more like opening and closing a book rather then pushing and pulling, right?

 

I mused about a way to translate a push/pull lateral movement to a single load cell sensor, but that appears to be amazingly difficult. When I push a concertina's bellows halfway in and hold it there, the sound dies. From what I can tell, there is no way for a load cell to detect such a condition as we would need a derivative over a period of time rather than an absolute force measurement. In other words, one would need some mechanism that exercises a (measurable) short burst of force on the load cell when the "bellows" is worked which would then reduce to zero quickly so that in the next cycle we could detect further movement. Sort of like a "rachet" type of construction which is bound to be fairly noisy, though.

 

Alternatively, if there are load cells that are rather flexible and can cover a comparatively wide range of forces, we could try mapping the bellows travel range (about 20cms or so) to the smaller load cell range (meaning that subsequent cell reading deltas can be used to determine whether there has been further bellows movement), but that requires fairly stiff and heavy mechanical anchorings of the cell bearing.

 

I also thought about an extension of the book fold construction where the two ends of the Midi conc sit on a sliding rail or a pantograph style railing but a tilting of either end would still be required to drive the load cell. Would probably be a little better than the book hinge,  but still far away from the concertina feeling.

 

So... are we back to air pressure sensors?

Posted
2 hours ago, RAc said:

I resurrected my MIDI concertina project (details to follow) and am now looking into ways to emulate bellows movement. Load cells look rather interesting; however, all implementations presented here use a hinge type of load cell attachment, so haptically, the movement to drive this is more like opening and closing a book rather then pushing and pulling, right?

 

I mused about a way to translate a push/pull lateral movement to a single load cell sensor, but that appears to be amazingly difficult. When I push a concertina's bellows halfway in and hold it there, the sound dies. From what I can tell, there is no way for a load cell to detect such a condition as we would need a derivative over a period of time rather than an absolute force measurement. In other words, one would need some mechanism that exercises a (measurable) short burst of force on the load cell when the "bellows" is worked which would then reduce to zero quickly so that in the next cycle we could detect further movement. Sort of like a "rachet" type of construction which is bound to be fairly noisy, though.

 

Alternatively, if there are load cells that are rather flexible and can cover a comparatively wide range of forces, we could try mapping the bellows travel range (about 20cms or so) to the smaller load cell range (meaning that subsequent cell reading deltas can be used to determine whether there has been further bellows movement), but that requires fairly stiff and heavy mechanical anchorings of the cell bearing.

 

I also thought about an extension of the book fold construction where the two ends of the Midi conc sit on a sliding rail or a pantograph style railing but a tilting of either end would still be required to drive the load cell. Would probably be a little better than the book hinge,  but still far away from the concertina feeling.

 

So... are we back to air pressure sensors?

I confess that I don't quite understand the situation that you are envisaging.

 

In my arrangement one end is rigidly attached to the load cell and the other end is attached through a spring that allows a small amount of movement, but only a small amount. There are no bellows so no air flow in or out: the only movement of the two ends towards or away from each other is a small distance proportional to the force rather than (as with a real concertina) continuous movement in one direction until the force direction is reversed.

 

The load cell with its associated electronics produces a unidirectional analogue voltage with a magnitude proportional to the force (in either direction), plus on/off voltages on a pair of signal lines according to pushing or pulling. A steady push or pull force produces a steady analogue voltage. This corresponds to the situation with a real concertina (steady force means steady air pressure above or below atmospheric and therefore steady sound), except that, with no air flow into or out of bellows, the sound continues for as long as I like, rather than running out of air.

 

If I stop pulling or pushing, the voltage goes off, causing the sound to stop, just as with a real concertina.

 

 

Posted
On 10/30/2024 at 2:57 AM, RAc said:

I resurrected my MIDI concertina project (details to follow) and am now looking into ways to emulate bellows movement. Load cells look rather interesting; however, all implementations presented here use a hinge type of load cell attachment, so haptically, the movement to drive this is more like opening and closing a book rather then pushing and pulling, right?

 

I mused about a way to translate a push/pull lateral movement to a single load cell sensor, but that appears to be amazingly difficult. When I push a concertina's bellows halfway in and hold it there, the sound dies. From what I can tell, there is no way for a load cell to detect such a condition as we would need a derivative over a period of time rather than an absolute force measurement. In other words, one would need some mechanism that exercises a (measurable) short burst of force on the load cell when the "bellows" is worked which would then reduce to zero quickly so that in the next cycle we could detect further movement. Sort of like a "rachet" type of construction which is bound to be fairly noisy, though.

 

 

The load cell is so stationary that there is no movement at all.  The one I built uses hinges just to hold it together, but it doesn't open or close; the hinges are actually just a way to hold the sides rigid without providing any additional resistance to the push/pull force.  

 

I chose that form factor in part because it places my hands roughly where the go on my anglo, and the push-pull force is very similar to what I experience on the anglo; close enough that it doesn't feel foreign, it just feels like another anglo that never runs out of air.

 

Now, digging in to your other question:  first, when you push a concertina's bellows halfway and hold it there, the sound does indeed die but so does the force you are applying.  If you kept pushing the bellows wouldn't be held halfway.  On the load cell concertina, if you imitated that motion it would correspond to pushing for a bit and then easing up.

 

If on the other hand you really want to imitate a concertina bellows exactly, where the bellows really do move in and out and the sound corresponds to the air flow from bellows moving, you probably shouldn't use anything even remotely like a load cell.  It would be the wrong sensor for what you want to measure.  I'm not sure what you should use in a case like that, but aside from pressure sensors, I might want to experiment with one of these:

 

  1. A linear slider potentiometer, with a stroke length similar to the concertina bellows extension.  Just connect the ends to your ends, and use the resistance to represent bellows extension.  May be inexact or noisy, I'm not sure.
     
  2. A capacitive encoder slider (commonly seen in digital calipers,) which benefit from not wearing out and from having a very precise resolution as well as an objectively defined discrete value (which is why they are used in digital calipers).  The downside to this one is figuring out how to get one and read it; I'm not aware of any such slider for hobbyist use, and the ones you can scavenge from calipers have proprietary hardware to read them.
     
  3. A hole.  As a cheap alternative to a pressure sensor, you can seal the bellows, put a pinhole in one end, and a mic next to the pinhole.  The noise power on the mic is your airflow.  Measuring bellows direction is a separate exercise.
Posted

Thanks for the answer, caj, much appreciated!

 

The idea I am toying with right now is this:

 

Getting Started with the HC-SR04 Ultrasonic sensor | Arduino Project Hub

 

If I can measure/sample the distance between the two "end plates" accurately enough, I can compute the velocity of the "bellows movement" from the deltas over time and translate that into a midi volume code. All it would take then is some mechanic that connects the ends of the concertina moveably (eg telescopic rods or pantographic railing as outlined earlier) and one of those ultrasonic sensors that constantly monitor the difference between the ends. The only question is if those sensors read fast enough (accuracy should be enough).

Has anyone experimented with that approach as of yet?

Posted
1 hour ago, RAc said:

Thanks for the answer, caj, much appreciated!

 

The idea I am toying with right now is this:

 

Getting Started with the HC-SR04 Ultrasonic sensor | Arduino Project Hub

 

 

Wow, I never thought of using those.  I have a bunch lying around the lab, and it would definitely be worth experimenting with.

 

So, in theory, if you can get clean readings, it would be great for both speed and resolution.  If your bellows ends are 6" apart, a round-trip sound wave would take a bit over 1ms to be detected, and you could easily perform multiple readings in 1/100 sec if you want to average them or take a median.  In addition, if you count microseconds you could do this with millimeter resolution --- again, if you can get clean readings.  

 

The big question is whether the sound wave is going to come back without reflections from the rest of the box.  I'd start by just holding two plates apart to see how well it works.  The mechanical apparatus to hold it together might be best kept out of the way, and possibly arranged to keep the plates parallel.  So a "scissor lift" style pantograph mechanism on the edges of the plates might be the way to go.
 

 

  • Like 1
Posted

unfortunately, the data sheet (HC-SR04-datasheet-version-2.pdf) states that the cycle period should not be below 50ms. It is probably still sufficient but may not yield a fine enough granularity for reliable velocity sampling. I will probably give it a try anyways.

 

When I first thought about using distance measurement, what I had in mind was laser reflectors which you find in any commercially available digital messuring tape. But I seem to have a hard time finding modules that can integrate with Arduinos (there are rather a lot of infrared based obstacle proximity sensors but those do not provide the distance). 

Posted
18 hours ago, RAc said:

Thanks for the answer, caj, much appreciated!

 

The idea I am toying with right now is this:

 

Getting Started with the HC-SR04 Ultrasonic sensor | Arduino Project Hub

 

If I can measure/sample the distance between the two "end plates" accurately enough, I can compute the velocity of the "bellows movement" from the deltas over time and translate that into a midi volume code. All it would take then is some mechanic that connects the ends of the concertina moveably (eg telescopic rods or pantographic railing as outlined earlier) and one of those ultrasonic sensors that constantly monitor the difference between the ends. The only question is if those sensors read fast enough (accuracy should be enough).

Has anyone experimented with that approach as of yet?

I think that could work, but as with a real concertina you would have a limited period with sound coming out before you have to reverse direction. With real concertinas we deal with that as an inherent feature of these instruments, but I don't understand why you want to reproduce it when you don't need to. You would also need some arrangement for connecting the two ends while allowing movement to and fro. Slide bars like those on a steam locomotive possibly? Telescoping tubes? And some arrangement for providing an appropriate amount of resistance to movement, not so much as to make pulling and pushing difficult, but not so little that the ends snap together as soon as you exert a small push.

Posted
1 minute ago, Richard Mellish said:

I think that could work, but as with a real concertina you would have a limited period with sound coming out before you have to reverse direction. With real concertinas we deal with that as an inherent feature of these instruments, but I don't understand why you want to reproduce it when you don't need to. You would also need some arrangement for connecting the two ends while allowing movement to and fro. Slide bars like those on a steam locomotive possibly? Telescoping tubes? And some arrangement for providing an appropriate amount of resistance to movement, not so much as to make pulling and pushing difficult, but not so little that the ends snap together as soon as you exert a small push.

 

Agreed. The root idea is to approximate the behavior or a real concertina just enough to use the MIDI as a usable training instrument (noise reduction being the key factor here). My dev work will come to an abrupt stop exactly at a point where I can use the gizmo for the daily drill so I can impress the girls with my killer skills without exposing my beloved to my routine practicing.

 

Hope that makes sense! 😉

Posted
4 hours ago, RAc said:

unfortunately, the data sheet (HC-SR04-datasheet-version-2.pdf) states that the cycle period should not be below 50ms. It is probably still sufficient but may not yield a fine enough granularity for reliable velocity sampling. I will probably give it a try anyways.

 

 

Well, I suspect that 50ms is just a recommendation due to the full distance range of the sensor.  50ms allows a round-trip of sound over a distance of about 20 feet.   It would definitely be worth testing how well it works if you cycle at 10ms or less.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...