Jump to content

Weird MIDI Bellows Prototype


Recommended Posts

For my previous attempt at a MIDI concertina, I used a load cell as the bellows sensor. I found that it responded too slowly compared to an acoustic instrument. I know that the "right" way to do it would be to use an actual bellows with a pressure or air flow sensor, but I'd like to find something a little more budget friendly. So after a lot of brainstorming and testing, I have the wacky device shown in the video bellow. It's still at a pretty early stage, but I haven't run into any show-stopper problems yet.

 

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

3 minutes ago, Owen Anderson said:

Riffing on the idea of alternative sensors for bellows, what about a string/cord on a spring loaded coil, with rotational sensors on the coil?

 

I've occasionally wondered about using an LVDT sensor, but you'd probably want to combine it with some sort of damper so it doesn't open and close too easily.

Link to comment
Share on other sites

6 hours ago, Owen Anderson said:

Interesting! Mind first pick would have been an optical encoder rather than the Hall effect sensor, but yours seems to work fine.

 

Because of how the mechanical linkage works, the rotation speed is nonlinear in relation to the bellows motion. The hall effect sensor gives me absolute position, not just speed, which will allow me to correct for this in software. There are optical encoders that can do this, but the hall effect sensor gets me 12-bit precision in a relatively small space for a few dollars.

 

6 hours ago, Owen Anderson said:

Riffing on the idea of alternative sensors for bellows, what about a string/cord on a spring loaded coil, with rotational sensors on the coil?

 

I considered that, and I think I've seen the idea suggested (maybe even implemented?) somewhere else. You would need at least three strings to account for tilting the ends relative to each other, unless you did something to prevent that, like my mechanism does. It would also produce a force trying to close the bellows, which you might want to counteract somehow. I may run into the same thing with my approach, since I expect a little bit of preload on the sensor arm will help reliability and responsiveness. The main reason I didn't go the string-winder route is that I didn't want to mess with multi-turn torsion springs and tangled strings.

Edited by Steve Schulteis
Link to comment
Share on other sites

A few other approaches that I've considered:

 

Time-of-Flight Distance Sensor

These operate by emitting a signal and measuring how long it takes to return after echoing off a target object. I've never been terribly impressed with the accuracy or reliability of ultrasonic distance sensors, but there are also an assortment of light-based options that should work better. This solution requires that the end with the sensor stays pointed toward the other end without anything in between.

 

Some things to watch for with these sensors are response time, resolution, and effective range. Something like this might do the trick:

I've wondered if a DIY version of this could place the emitter and receiver on opposite ends of the instrument, removing the need to bounce the signal off a specific surface and eliminating the downsides of this approach. It would probably have to be ultrasonic to be feasible, but it might still be worth a try. I haven't found any commercially available products that function in this way - the emitter and receiver are always integrated into the same part.


IMU

In theory it should be possible to place a 9-DOF IMU in each end of the concertina, compute their relative positions/orientations, and use that to determine bellows motion. The main reason I didn't explore this route further is that it is one of the more expensive options short of building a real bellows. I've seen this approach suggested in the forum, but as far as I know, nobody has actually tried it.


Capacitance-based Proximity Sensing

This is probably too susceptible to interference (e.g. from the user's body) to work as a bellows sensor.
 

Link to comment
Share on other sites

Sorry to post over and over to my own thread, but in looking for that last link, I also stumbled onto this: https://www.midi.org/midi/midi/midi-articles/tirare-midi-string-instrument, which led me to discover that there is actually a device called a "string potentiometer" that is exactly what Owen described in a ready-made package. So there's another possibility for you.

Link to comment
Share on other sites

I'm puzzled in two ways.

First the reported slow response of the load cell. That's what I've been using and I'm not aware of any delay, so I'm wondering what was happening in your electronics.

Second, it seems to me that the distance apart between the ends is a strange analogue for what the pressure would be in real bellows. Even if you take the differential of that signal, it tells you how fast the virtual bellows are moving, which is at best a very rough analogue for how hard you are pulling or pushing.

Link to comment
Share on other sites

41 minutes ago, Richard Mellish said:

I'm puzzled in two ways.

First the reported slow response of the load cell. That's what I've been using and I'm not aware of any delay, so I'm wondering what was happening in your electronics.

Second, it seems to me that the distance apart between the ends is a strange analogue for what the pressure would be in real bellows. Even if you take the differential of that signal, it tells you how fast the virtual bellows are moving, which is at best a very rough analogue for how hard you are pulling or pushing.

 

I don't think it's a delay in electronics or software - as far as I can tell, it's how quickly the bar actually flexes. Maybe it's my sloppy playing, but I get bellows changes after button presses that produce a sort of chirpy sound that I don't get with my acoustic. I've tried a number of changes to correct it, including more practice. If you're getting good results, I'd be interested to compare notes.

 

My plan is to use the rate of change of the position. I agree that it's not a perfect analog for a real bellows, but an unmoving pressure sensor isn't either. Each captures only half of the feel of a real bellows.

Link to comment
Share on other sites

2 hours ago, Steve Schulteis said:

 

I don't think it's a delay in electronics or software - as far as I can tell, it's how quickly the bar actually flexes. Maybe it's my sloppy playing, but I get bellows changes after button presses that produce a sort of chirpy sound that I don't get with my acoustic. I've tried a number of changes to correct it, including more practice. If you're getting good results, I'd be interested to compare notes.

 

My plan is to use the rate of change of the position. I agree that it's not a perfect analog for a real bellows, but an unmoving pressure sensor isn't either. Each captures only half of the feel of a real bellows.


I think this chirping you’re encountering is not an effect of slow cell action, but not implementing the valve equivalent, that is a pressure threshold that starts the reed. I had the exact same problem and it is a true acoustic concertina behaviour if you have extremely sensitive reed and a very light/thin plastic valve. In an acoustic box you regulate this by the stiffness and weight of the valve. So it is actually the other way around - the sensor is too sensitive and too unstable around zero point. When I tried to correct this with real pressure sensor it turned out, that the reading below about 6 out of 1024 levels was extremely unstable, both in value and sign so it had to be cut off by sending note on/off commands and not just volume commands around zero point (I was working on a duet, so initially sending on/off commands only on button down/up and a global volume seemed viable).

 

As to your contraption - I don’t think it will survive a full, intense Irish session. Look at Cormac Begley’s playing style and how much lateral movement of the bellows and ends tilting there is. Preventing ends tilting also prevents doing a basic bellows tremolo.

Link to comment
Share on other sites

52 minutes ago, Łukasz Martynowicz said:

I think this chirping you’re encountering is not an effect of slow cell action, but not implementing the valve equivalent, that is a pressure threshold that starts the reed. I had the exact same problem and it is a true acoustic concertina behaviour if you have extremely sensitive reed and a very light/thin plastic valve. In an acoustic box you regulate this by the stiffness and weight of the valve. So it is actually the other way around - the sensor is too sensitive and too unstable around zero point. When I tried to correct this with real pressure sensor it turned out, that the reading below about 6 out of 1024 levels was extremely unstable, both in value and sign so it had to be cut off by sending note on/off commands and not just volume commands around zero point (I was working on a duet, so initially sending on/off commands only on button down/up and a global volume seemed viable).

 

That's definitely a possibility. I had tried adding some dead zone, and I remember it being unsatisfactory somehow, but I'll give it another shot.

 

 

52 minutes ago, Łukasz Martynowicz said:

As to your contraption - I don’t think it will survive a full, intense Irish session. Look at Cormac Begley’s playing style and how much lateral movement of the bellows and ends tilting there is. Preventing ends tilting also prevents doing a basic bellows tremolo.

 

I can't really argue with that - I expect it would be utterly destroyed. I wonder how well most budget instruments would handle that sort of playing, though.

 

The end tilt thing is definitely a limitation, and one that I had accepted. I suppose I could fashion some kind of u-joint on each end, but I'm not sure if that would help or hurt, and this thing is absurd enough already.

  • Like 1
Link to comment
Share on other sites

On 11/7/2022 at 4:45 PM, Steve Schulteis said:

 

I don't think it's a delay in electronics or software - as far as I can tell, it's how quickly the bar actually flexes. Maybe it's my sloppy playing, but I get bellows changes after button presses that produce a sort of chirpy sound that I don't get with my acoustic. I've tried a number of changes to correct it, including more practice. If you're getting good results, I'd be interested to compare notes.

 

My plan is to use the rate of change of the position. I agree that it's not a perfect analog for a real bellows, but an unmoving pressure sensor isn't either. Each captures only half of the feel of a real bellows.

I think Łukasz probably has the right explanation of your chirpy sound. My system is purely analogue up to the relays that trigger the contacts-to-midi module. There are two sets of relays, for pull and push, and over a small range of outputs from the load cell neither set can be energised (i.e. there is a dead zone as mentioned by Steve while I have been writing this). There is also an analogue output to the volume input of the contacts-to-midi module, which likewise remains at zero until there is enough positive or negative signal from the load cell.

 

The least satisfactory aspect of mine is the articulation between the right-hand end and the load cell (which is rigidly fixed to the left-hand end). I have tried several arrangements which I haven't liked. I am intending to try a coil spring but have put the project aside for a bit.

Edited by Richard Mellish
Corrected a typo
Link to comment
Share on other sites

So far no luck with adjusting the dead zone of the load cell. I think it makes some difference, but it isn't getting me all the way there. There are a few more ways I can approach it, but I'm doubting this is really my issue.

 

Looking at the electronics again, I'm using an HX711 to read the load cell value. This part has a max read speed of 80 samples per second. Compared with Richard's pure analog approach (which sounds super cool, by the way), that's likely to be a noteworthy difference in timing. It's still relatively quick as far as human perception is concerned, which is why I've mostly dismissed it up to this point. Maybe I'll give a faster amp/ADC a try at some point.

 

I currently think the most likely difference is just how we're each playing the instrument. The fact that Richard found it strange to focus on bellows motion instead of bellows pressure suggests that we each think about the mechanics of the instrument a bit differently. For the record, I do think the resistance of the bellows is important/useful feedback while playing. But maybe the motion component is more important for me than it is for Richard. Or maybe it's that I'm just a less skilled player in general - I wouldn't be offended by that suggestion. 😛

Link to comment
Share on other sites

6 hours ago, Owen Anderson said:

If you have an oscilloscope, could you probe the analog output of the load cell and visualize its Fourier transform? You should be able to see if it has a lot of higher frequency content (above 40Hz due to the Nyquist limit) that is getting lost due to sampling rate.

 

I'm afraid I don't have a scope. I'll throw an instrumentation amp in my next digikey order and see what that produces with a faster adc.

Link to comment
Share on other sites

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...