Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 14:59 03 Nov 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : read out carolling christmas bells

Author Message
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 963
Posted: 09:24am 02 Nov 2025
Copy link to clipboard 
Print this post

Hi to all,

I have this carolling christmas bells and would like to recreate it. Do you have any idea how I could read the tone sequences of the 12 bells with an Picomite?


My carolling christmas sounds just like in this video.
https://www.youtube.com/watch?v=kMaAlwRZgPU

Or does anyone know where I can find these sound sequences in digital form???

Frank
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2796
Posted: 09:53am 02 Nov 2025
Copy link to clipboard 
Print this post

In the photo the wire bundle appears to get thinner as it goes along each string of bells, so I am guessing there is a common plus 1 wire to each striker solenoid. If so perhaps the Port() Function can be used to record the sequence of strikes for each string. If there is no practical way to connect to the solenoids sewing pins could be pressed into the wires.

It may be possible to record the tone of each bell with a microphone, amp and FIN on a Picomite.

Or if you can capture the audio from that video you could use Audacity to find the tone and timing of each bell.
Edited 2025-11-02 19:57 by phil99
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1658
Posted: 10:09am 02 Nov 2025
Copy link to clipboard 
Print this post

Hi Frank,
is it about the sequence of notes (melody), or the sound of the bells?
Regards
Michael
causality ≠ correlation ≠ coincidence
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 963
Posted: 11:59am 02 Nov 2025
Copy link to clipboard 
Print this post

@phill99:

I had already opened it up several years ago. The 12 bell signals are simply routed to a ULN2003 or similar.
I would have no problem soldering the appropriate voltage dividers to the µC lines to tap the signals.
  phil99 said  Or if you can capture the audio from that video you could use Audacity to find the tone and timing of each bell.
That's a great idea! Unfortunately, I have no idea how to do that with Audacity...

@twofingers:
The sequence of musical notes is important to me, or rather, when which µC output is switched at what point in time.

Frank
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1658
Posted: 12:29pm 02 Nov 2025
Copy link to clipboard 
Print this post

I'm still not sure if I understand you correctly. The melodies (sheet music) of most songs should be available online.

If you want to use a PicoMite for analysis, I would try using the MATH FFT function. That can give you the frequency of the main tone.
I usually use the ancient Cool Edit 2000 for sound analysis, which also offers comprehensive frequency analysis. However, Cool Edit is probably over 30 years old and is no longer officially available.
Another option is, for example, ChatGPT (or similar). ChatGPT also analyzes the main frequency, and perhaps even more. Modern times.

Kind regards
Michael
causality ≠ correlation ≠ coincidence
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2796
Posted: 12:29pm 02 Nov 2025
Copy link to clipboard 
Print this post

It is some years since I used Audacity but I recall it has a time scale below the view of the waveform. Like a long oscilloscope trace. From that you can see when each bell is struck.
By magnifying the timescale and scrolling along it you should be able to see the envelope of each chime.
By magnifying the timescale further still you can see the cycles within each chime to calculate its frequency.

As for capturing the audio there is probably some way to intercept the data stream to the sound card, saving it as .wav. Failing that record from the audio line out socket. Perhaps loop back to line in.
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 963
Posted: 01:45pm 02 Nov 2025
Copy link to clipboard 
Print this post

I want to recreate the carolling christmas bells with a xylophone. To do this, I need the sequence of the bells. I don't care about the frequencies — I just want to know when to strike which tone element.
Reading it from the musical notes is too tedious for me.

In principle, I need a 12-channel logic analyzer to record the sound sequences. I'm just not sure how I can achieve that with an Picomite.

I would have 12 inputs there, but I can't trigger an interrupt for each of them. I could connect each of the 12 inputs to an additional input via diodes and trigger an interrupt there. ...or should I just poll the inputs?

Can I read in all the pins at once?

Frank
 
NPHighview

Senior Member

Joined: 02/09/2020
Location: United States
Posts: 213
Posted: 03:08pm 02 Nov 2025
Copy link to clipboard 
Print this post

Some thoughts from listening to the YouTube video:

* The sequence is over 40 minutes long. I was able to convert it to MP3 using one of the on-line "YouTube to MP3" converters. The resulting mid-quality file is 36 MBytes, far too large for MMBasic to play unmodified. Message me and I'll send you the MP3 file.

* If you use GoldWave or another audio editor, you may be able to break up the 40+ minute recording into individual songs, then save them individually to the SD card. Your MMBasic program could pull each in sequence, or randomize the sequence if you'd rather.

* There are a number of paid and free tools to convert an MP3 to MIDI; "Basic Pitch" from Spotify hung up and never completed. I didn't download "AnthemScore" - it's free trial only will do 30 seconds of audio, and I don't have a use for this otherwise.

* Listening to the first two songs, I noticed that the span is over an octave. If the main range is from C to C, there are times when a lower B flat is played.

* Playing the MP3 file in the background while writing this, I hear that most are in the key of C, but some aren't, with an even broader range of notes.

* There are also times when multiple notes are played at the same time, for harmony. It sounds like the originators may have had spring-wound music box mechanisms to record. The music box "pins and springs" mechanism may provide you with the mental model you need.

* Harkening back to the dawn of my career in the 1970s, you may be able to set up "tone detectors" using LM567 phase-locked loops, one per Xylophone key. Your set of ~20 of them would be tuned to each of the notes, and when detected, strike the Xylophone key through one solenoid per key. This would not accommodate the dynamics (softer vs. louder) that the music sometimes employs.

Do you envision writing a MIDI interpreter for the Pico?
Edited 2025-11-03 01:16 by NPHighview
Live in the Future. It's Just Starting Now!
 
NPHighview

Senior Member

Joined: 02/09/2020
Location: United States
Posts: 213
Posted: 03:18pm 02 Nov 2025
Copy link to clipboard 
Print this post

I also asked Claud.ai for help. This is the response I received:

  Quote  Ah, music boxes! That's actually perfect for transcription - they have clear, distinct notes with simple polyphony. This should work well.
Recommended approach:

Split your MP3 into manageable chunks (5-10 minutes each). You can use:

Audacity (free) - just open, select portions, and export
Online MP3 cutters (search "split mp3 online")
FFmpeg command line if you're technical

Use Basic Pitch on each chunk - since it's music box tones (clear pitches, minimal overtones), Basic Pitch should work very well once the file size is manageable.
Download the MIDI files from Basic Pitch for each chunk
Share the MIDI files with me - I can create an artifact that reads MIDI files and converts them to your comma-separated format optimized for solenoid/xylophone control

Format clarification for your use case:
Since you're driving solenoids, would this format work?

C5/250ms, E5/250ms, {C5,E5,G5}/500ms
Or do you need timestamps? 0.00:C5, 0.25:E5, 0.50:{C5,E5,G5}
Or MIDI-style? note_on,note_off events?

Let me know what format would be most useful for your xylophone controller, and once you have a MIDI file (even just from the first chunk as a test), I can build you a converter!


Sounds like you could get assistance from our AI friends with your project.
Live in the Future. It's Just Starting Now!
 
NPHighview

Senior Member

Joined: 02/09/2020
Location: United States
Posts: 213
Posted: 03:24pm 02 Nov 2025
Copy link to clipboard 
Print this post

After about 15 minutes, the songs on the YouTube video turn to gibberish.

(I've been singing semi-professionally for 50+ years and have sung just about every winter holiday song imaginable).

Just for fun, I Googled for "MIDI files for Christmas Carols Music Box" and came up with tons. One is https://www.classicalmidi.co.uk/christmas.htm
Live in the Future. It's Just Starting Now!
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1658
Posted: 03:29pm 02 Nov 2025
Copy link to clipboard 
Print this post

Hi Frank,
If I understand you correctly, you are looking for this solution:
  Quote  How can I use a microcomputer with an input to read 12 digitag signals (1/0) almost simultaneously?

For example, with serial parallel-to-serial shift registers such as the 74HC165 or an analog multiplexer such as the CD4051 or ...

Just ask the AI ...

I think you are more interested in the process than in the finished solution?

Michael
Edited 2025-11-03 02:36 by twofingers
causality ≠ correlation ≠ coincidence
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 963
Posted: 06:18pm 02 Nov 2025
Copy link to clipboard 
Print this post

  NPHighview said  Some thoughts from listening to the YouTube video:

* The sequence is over 40 minutes long. I was able to convert it to MP3 using one of the on-line "YouTube to MP3" converters. The resulting mid-quality file is 36 MBytes, far too large for MMBasic to play unmodified. Message me and I'll send you the MP3 file.
Thank you very much, I converted the video to MP3 some time ago. 40 minutes? I remember that the pieces would repeat after about 20 minutes...

  NPHighview said  * Listening to the first two songs, I noticed that the span is over an octave. If the main range is from C to C, there are times when a lower B flat is played.
Do you think this xylophone would work for the 12 bells?:
https://www.ebay.de/itm/235287401611

  NPHighview said  Do you envision writing a MIDI interpreter for the Pico?
No, I just want to control 12 electromagnets in the correct sequence...

  NPHighview said  Or do you need timestamps? 0.00:C5, 0.25:E5, 0.50:{C5,E5,G5}
That looks very interesting: a timestamp and the musical note to be played.

  twofingers said  
For example, with serial parallel-to-serial shift registers such as the 74HC165 or an analog multiplexer such as the CD4051 or ...
That should also be possible directly with the port pins of the Picomite.
  twofingers said  I think you are more interested in the process than in the finished solution?
Not really! If you had a working solution, I would gladly take it.

Frank
 
NPHighview

Senior Member

Joined: 02/09/2020
Location: United States
Posts: 213
Posted: 12:01am 03 Nov 2025
Copy link to clipboard 
Print this post

The second song has too wide a range of notes to work with the 12-key xylophone. The other songs, in the key of G, would have to be transposed into the key of C to have a chance.

I asked Claude.ai for more information about how to drive solenoids based on MIDI sequences using the prompt:
  Quote  I'd like to build a MIDI-controlled musical instrument. It should accept and interpret MIDI sequences (or a MIDI file), then drive solenoids which will "ping" against Xylophone keys. The solenoids should be driven by MOSFET drivers connected to the I/O pins of a microcontroller such as an Arduino or Raspberry Pi Pico.

and got quite a detailed response. You should find this helpful.
Edited 2025-11-03 12:05 by NPHighview
Live in the Future. It's Just Starting Now!
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 616
Posted: 02:13am 03 Nov 2025
Copy link to clipboard 
Print this post

Nice project !    
There are " carillon " bellringing programs for PC's but I think they
tend to play sound files instead of actually ringing bells... workable I guess
but real bells are always good
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025