Mechanical glockenspiel

I've been working on this on and off for 4 years. Finally I got it to play something. As you can notice, there's a lot of calibration to be done.

Video

The hit is performed by moving the mallet to a defined height above the bar. Then the mallet moves to a lower defined height. The speed of the mallet and the flexible stem makes it travel further and hit the bar, then return to the defined lower height (after some oscillating). Well, in a perfect world, that is.

I calibrated the whole thing so that the hits would sound nice. For that I used a MKR 1010, which communicated with Blynk on my phone. For actually playing midi music on this, I switched to Leonardo, to be able to output midi directly via USB to the Leonardo. Works like a charm.

But as you see, and hear, each hit is too hard. Nothing left of my calibration. I need something to adjust the overall dynamics in real time, while playing. Probably a potentiometer.

The paper wings on the mallets are there to damp the tremendous vibration of the mallets. I might have to add a device with a pole and a rubber sling to suspend the mallets to decrease the torque caused by the unbalanced mallets. That might decrease the vibration. Right now not only do the mallets hit too hard, they also hit the bars several times.

The quality of the servos appeared to be lower than what I expected. I went for fast servos, but I should have focused on other things. One of the vertical servos gets stucked every once in a while. I have to twist it a bit to get it going. What on earth is going on there? I have a spare on of same model, but the servos are glued with epoxy. Will be tricky to detatch.

I still hope to make the mallets react to the velocity parameter of the note on message. But adjusting the higher and lower position of each mallet and each bar is tricky. I thought I could just adjust the mallet to a nice fortissimo hit and a nice pianissimo hit and then just interpolate according to the velocity parameter. But so far I'm happy to get any sound without hitting the bars so hard that they jump off. Or to get any sound at all, instead of having the mallets just dance above the bars and not hit them.

I named the instrument charillino. Derived from carillon, which is either a large bell tower instrument or a music box. I have an idea of a charity project, where I'd use this instrument (together with others I have built). That gave me the final form of the name.

Here's a video of the calibrating process. For this process I use Blynk on my phone. Works great. When I'm satisfied, I dump the data from the Arduino back to the computer to be pasted and hardcoded into the code again.

Calibrating

4 Likes

Name a Christmas song you want to hear played by the charillino.

1 Like

great work just in time for Xmas!

may be guides near the bars (like a vertical V shape) to direct / center the mallets when they go down would help limit the side vibrations and the bottom of the V could serve as well as a physical limit on how fat the mallet goes down?

of course they would add visual noise to your clean design...so not ideal. May be if they were made of transparent acrylic with and enclosure to hold the bars as well ?

Carol of the bells, please

The arc arrangement is fantastic work.
Check your hardware store for rubber grommets that fit snuggly on the mallet handles. They will reduce vibration and can be adjusted in their position to change the amount that they mitigate. You can also use multiple grommets and they only cost a few cents each.

Probably a good benchmark test, too.

Ok, Carol of the Bells it is. Just downloaded it from musescore.com, a simple arrangement suitable for my charillino. I transposed it to G minor, edited it slightly to fit in G3 to G5.
Wait for it. Might take some time.

1 Like

It's my favorite, thanks a bunch.

Here is a funny version:

The Little Swallow

That's the same song :laughing:

Carol of the Bells it will be. I found an easy arrangement of it on musescore.com and modified it a bit. Attached is a pdf score made with MuseScore, as well as an mp3 made with MuseScore. The score has to be written like that, on two staves. Upper stave for upper mallet, lower for lower. Carefully arranging so that the mallets don't cross each other.
Bars 1 to 11 should work well. But later in the score, the eighth notes won't work as is. I have a delay of 250 ms after each horizontal movement of a mallet until the vertical strike happens. This is to ensure the horizontal movement reaches the right glockenspiel key. But here I have a tempo of 140. That's 140 quarter (crotchet) notes in a minit or 280 eighth notes in a minute, or 214 ms per note. I have to adjust the delay between the horizontal and vertical mallet movements.
And I have to fix the broken vertical servo. After that you will see and hear a video of my Charillino playing this lovely Ukrainean melody.
Carol_of_the_Bells.pdf (42.6 KB)
Carol_of_the_bells.mp3

2 Likes

That was fantastic. Thank you so much for taking the time to make it!
I cannot wait to see it played on your wonderous machine.

I have a non-Christmas request:

Bohemian Rhapsody.

Pachelbel's "Canon"

Great suggestions! I'll look into them. Sorry, but I decided to fix a few problems before the following recording/video session.

1 Like

It does appear that the mallets hit rather hard. What would if you raise these with the servo but allow them to fall under gravity? But really a great invention.

Good idea. But before I test that, I'm going to test another thing. After the down strike, I'm going to raise the mallet immediately, say 100 ms or less after the strike. In the video the bars lie on 3D printed frames. They are too hard. I'm in the middle of the process of replacing the frames with another design, where the bars lie on a wounded lace. Better sustain, less jumping off.

I have reused bars from a cheap glockenspiel. If I'd start from scratch, I would use metal tubes, which I'd hang horizontally and I'd hit them from below with a grand piano like action. The servo would push the mallets upwards and the mallets would continue detatched from the pushing servo, hittibg the tube and then falling back.

2 Likes

Ok, here comes the Carol of the Bells:

I 3D printed springs to support the mallets. But apparently they were not stiff enough. I'm going to add some polymeric foam to the springs, adding stiffness to the whole thing. Hopefully the vibrating stops in the foam.

Here I have new beds for the bars, with a short lace of nylon. That prevents the bars from trembling and jumping off. But I have to re-calibrate each hit. I have a feeling this new bed with the damping lace will also enable dynamic variations. The discant mallet still has a tendency of stopping, I have to look into the problem with the power supply or the servo itself.

The glockenspiel bars I used go up to G7. I have two spare G7 bars, which I intend to tune to G#7 and A7, just because there was space for them.

In this version, I added an extra movement to the mallet strike. After going down, it goes up after 100 ms. This prevents the mallet from bouncing several times on the key. This is actually what all other similar mechanical instruments do. But there's a lot of timing issues left. The bass mallet misses the lowest key every time. Sometimes it goes over due to the inertial momentum of the mallet, when it travels a long range. Sometimes it strikes too early, that happens at the end. I think I had a 250 ms delay between the note on message and the down strike. On note on message, the mallet starts going to its upper position as well as to the right bar. After 250 ms is passed, it performs the down strike and after another 100 ms it goes up again. Inside this last 100 ms, it must reach the down position and hit the bar once.

I've used Blynk for the calibration, but since I have more parameters to calibrate, I'm going to use Arduino Cloud for it. And a computer interface instead of a smartphone interface.

3 Likes

Now I wonder how youtube decided that your video needs to be age restricted?

Fixed.

1 Like

now it says it's unavailable.... :frowning: