Close
0%
0%

Digibone

A digital instrument with all the flare of a trombone, with the power and flexibility of an MIDI instrument

Similar projects worth following
This project aims to create a Digital musical Instrument with a similar feel to (and to an extent, look of) a trombone.
In essence the build will be a MIDI controller will all the computing done on-board making it a standalone instrument.

The plan for this project can be broken down into three main parts: the input controller, the midi synth and the output.

The Input Controller

The Input Controller aims to mimic the input of a trombone, reading the combination of breath input and slide position and generating a MIDI output for the synthesizer of the project.

To achieve this an ultrasonic sensor will be used to give a slide-like input, an air pressure sensor to interpret the note on/note off state, and an Arduino Pro Micro to calculate and output the MIDI output.

MIDI Synth

This part of the project will take the MIDI input and process it into an actual sound.

The plan is to use FluidSynth to handle this processing. At the moment it is running nicely on an Android phone, however this will be transferred to a headless Raspberry Pi on the near future.

Output

Nice and simple - an amplifier to make things loud!

Currently the project is running a 5v Amplifier connected to a small car Speaker.

The amp running at 5v is ideal for the project, as it allows the amp and synth unit to be powered from a 5v source; in this instance a large USB power bank with two USB ports for charging devices.

***Unfortunately due to a change in work patterns has prevented me from getting a video up of the working example, which is currently all mounted to my yellow plastic Trombone for demo purposes.

I aim to get a video up before the week is out!***

Digibone.ino

Rough starting point for the code. Features breath sensor control for velocity, ultrasonic sensor input mapped to 7 positions and range up/range down buttons.

ino - 2.65 kB - 05/29/2023 at 20:46

Download

  • 1 × Justboom Amp/Dac To convert the output from the Pi into audio for the speaker
  • 1 × Raspberry Pi To run the software and output audio
  • 1 × Arduino Pro Micro To read all sensor input from the hardware and pass commands to the Pi
  • 1 × Speaker To play dem glorious tones!
  • 1 × Air Pressure sensor To control Note on/note off and velocity of note

View all 8 components

  • Slide or No Slide; THAT is the question

    Craig Hissett11/18/2019 at 17:31 0 comments

    As I look for alternatives in the speaker department I've toyed with the idea of mounting an old bluetooth speaker (with Aux in) to the end of the instrument, just so I can get building and playing. The battery would need replacing, but given it's powered from a 3.7v old Nokia-style battery it may well be powerable via a Pi USB port.

    Using this style of speaker would greatly reduce the need for a wide, boxy frame on my shoulder and would allow me to really condense the design.

    While thinking about making the back section as compact as possible it got me thinking about the slide.

    The plan was originally to build a frame roughly to the size of a normal trombone, and the player would place his hand within the slide frame to manipulate the pitch of the instrument via the ultrasonic sensor in there. Now I'm thinking... Why build the frame?

    The frame would have no practical impact on the instrument, and would make the thing 2-3 times longer than it needs to be. In fact removing the frame would give the player more rooms for gesturing. I could add another ping sensor to pick up the hand moving into and out of the line of sight of the main ping sensor. This could be interpreted as either a slide up to the note or away from the note, or could be used to change ranges.

    This has potential.

  • Heavy-Assed Speaker

    Craig Hissett10/29/2019 at 17:36 0 comments

    So, I assembled a little frame to start mounting components to using the Totem Maker parts I have.

    Unfortunately the car speaker I have is really weighty and is just too heavy to by hanging in front of a player's shoulder.

    A trombone's weight is pretty evenly balanced either side of the shoulder, with weights available to help counterbalance the instrument if needed. I thought about using the  mounting of the electronics and batteries to counter balance the speaker but it still wouldn't match the weight of it.

    I'm now on the look out for a smaller speaker.

  • Frame Update | Totem!

    Craig Hissett09/26/2019 at 15:28 1 comment

    After re-purposing some of the extrusion I ordered for this project to build a frame for my son's room I was back to the drawing board on this one.

    I was planning on ordering some more, but then stumbled on a company called Totem, who specialise in mechanical and electrical prototyping kits.

    After speaking to the guys there about the prospect of using their maker kits to construct a frame for this project, they have kindly agreed to send me a kit to use on this project in exchange for me documenting my use with it.

    This is awesome!

    This is a link to the kit I will be using:

    https://totemmaker.net/product/totem-maker-kit/

    The kit looks great; the lengths and panels can be cut to custom sizes and shapes, and has plenty of fixings to create all kinds of shapes and mountings.

    The plan will be to create a rectangle for the slide frame (which will hold the ping sensor at the top), then a rectangle back section with mounting spots for the arduino, Pi and batteries, and a square section on the end of it to hold the car speaker.

    I really can't wait to get the kit and see what I can come up with!

  • Construction | Slide parts ordered

    Craig Hissett04/04/2019 at 13:47 0 comments

    I've just put an order in for the following lengths of 20x20 aluminium extrusion:

    500mm x 2

    100mm x 4

    This will give me the parts I need to:

    • Build my slide
    • Mount my Arduino Pro Micro
    • Mount my Air Pressure Sensor
    • Mount my encoder for pitch changes

    Once the slide is built I should have a fully working slide-based MIDI controller :-)

    Following that it will be the construction of the back frame.

    I am contemplating changing the frame from a simple 2D section to a 3D box section, allowing me to mount a forward facing speaker for a more trombone-like output. 

    I could always add a secondary speaker at the back of the frame behind the main speaker for some interesting chorus-like effects or stereo output (playing harmonies, stereo delay etc).

  • Dimensions

    Craig Hissett04/01/2019 at 16:33 1 comment

    I've put a bit of thought into the pieces I'll need to build a suitable frame out of aluminium extrusion.

    It'll look cool, plus give me a nice, easy to assemble/adjust frame. It'll be nice to use the channels to run cables too. I've decided to target 15mm x 15mm extrusion as it's small enough to hold comfortably without being too flimsy.

    Dimensions based on 15mm material

    Slide Section calculations
    400mm - slide space (360mm travel [60mm between positions], +40mm for tolerance? Can be adjusted with another inserted piece?
    +15mm - for the 'water key' brace
    +15mm - for handle
    +50mm - for mouthpiece area

    Top Section calculations
    200mm - to form the shoulder mount.
    +15mm - for top bar
    +15mm - for brace bar

    Parts to order
    480mm bar x 2
    230mm bar x 2
    100mm bar x 4

    All in all it'll give me an instrument length of  ~ 74cm once the two half pieces are joined together - nice and small, but enough space to mount everything and get a decent slide area.

    Now i just need to find a cheap supplier of 15x15 extrusion :)

  • Ultrasonic Slide | Test setup

    Craig Hissett03/31/2019 at 00:10 0 comments

    Tonight I've put together a little test setup on a breadboard, consisting of an Arduino Pro Micro, an ultrasonic sensor, and a button ( to act as the air pressure sensor).

    First step was to get it spitting out data to the serial window; using the NewPing library I was able to get it firing out the distance measured in cm in no time.

    Next step was to incorporate the MIDI code, and sure enough it started to fire MIDI data out.

    Next i need to tidy up the code (using an if statement for checking the button/air pressure sensor in the future, cleaning up midi sending to only send one value and to silence the previous one).

    Finally I need to write some mapping to take the slide measurements and determine what should be played.

    The note that should be played on the very centre of the slide length (4th position at the 15cm mark) will be the note, bang on in the centre. Either side of that note the slide postion will determine what level of pitchbend should be applied to achieve the note for that position. 

  • Slide Mechanism Decisions

    Craig Hissett03/26/2019 at 13:48 1 comment

    Just a quick think-out-loud about how to read the slide positions for my pitch bending shenanigans.

    I'm pretty much set on a slide frame with a freely moving handle inside. 30cm of travel would be great, as it would give me the following positions:

    1st position - 0cm

    2nd - 5cm

    3rd - 10cm

    4th - 15cm

    5th - 20cm

    6th - 25cm

    7th - 30cm

    It's just under half the size or a normal tenor trombone length, but it will be perfect for the compact build I am after :)

    So far, I have two options for tracking positions on the slide:

    1) encoder, belt & pulley

    I like this idea; encoder at one end, handle connected to the belt to rotate the encoder. Would be easily enclosed, plus end switches at position 1 & 7 would help calibrate it.

    2) Ultrasonic sensor

    Fixed at the top, offset from the handle. The handle would have a small 'paddle' opposite the sensor.

    Care would need to be taken to not have the hand on the handle affecting readings. This would make it like a shoulder mounted Theremin. I like theremins, ha ha ha.

    I'm open to more suggestions :-)

  • Pitchbending Madness

    Craig Hissett03/24/2019 at 01:37 0 comments

    Just a quick note-to-self to check out this discussion regarding pitchbending:

    https://forum.arduino.cc/index.php?topic=457971.0

    On my slide I am aiming to have 7 positions, giving me 7 definitive semitones in each range. Ideally I'd need to implement pitch bending between those semitones to give that trombone feel.

    I thought pitchbending would be limited to a semitone either side, but apparently may be possible to bend much further.

    If this is true, and it's possible to perhaps reach three semitones either side of a note, I could use one semitone per range (the one on the 4th position  middle of the slide) and then use the slide to determine the amount of bend on the note.

    Yaaay

  • Fresh Ideas for 2019

    Craig Hissett03/21/2019 at 01:01 0 comments

    I've been working on a few other Arduino/Pi/MIDI projects recently, such as my Guitar effects Pedal and a Drum Module, and it's given me a real spark to get all my music based projects finished.

    This one was really taking shape for the 2018 contest until changing jobs threw me off track a bit. I've now started to rethink this one and definitely reckon I can complete it after my other two projects are wrapped up.

    The Slide mechanism was always something I never figured out fully, but I think I have a plan for it. I want to build the frame out of aluminium extrusion (20x20 perhaps). Rather than having an extending slide I'll just have a handle on runners inside the frame, and use am encoder to track position. I'll have an endswitch at the fully open (7th position) and fully closed (1st position) for calibration,  and on powering on require the user to return the slide to the home position.

    I've done a fair bit of work using python on a Pi to simulate a midi device, so ideally I'd like to follow that pattern and connect all switches direct to the gpio of the Pi. For the analog stuff I have an analog Pi HAT which i could use to read the air pressure sensor and any pots that end up being used. 

  • Project Future

    Craig Hissett10/24/2018 at 20:23 0 comments

    The last few weeks have been a read whirlwind at work, starting a new role as a systems developer, undertaking a lot of training to support my new job plus working a silly amount of hours of overtime in order to support my old team following my move.

    This is all great news, however it culminated in me not getting this project up to standard for the Hackaday Prize round for musical instruments. I am absolutely gutted to have not been able to put something up to meet the criteria, as it's not too far away at all.

    Rather than give up on this project I'm going to keep plugging away at it, and instead of creating something to compare with a trombone I'm going to make it a more erganomc shape if that's the way the project takes me.

    Hopefully in a few weeks I'll have some time to put it all together.

    Cheers!

View all 29 project logs

  • 1
    Assemble Frame

    Coming Soon

  • 2
    Install slide sensors

    Coming Soon

  • 3
    Install buttons

    Coming Soon

View all 9 instructions

Enjoy this project?

Share

Discussions

uri.shani wrote 04/09/2018 at 04:11 point

Hey, looks exciting! You might wanna check https://learn.sparkfun.com/tutorials/hackers-in-residence---the-electricbone, they use a sound sensor and PD to get the base note.

  Are you sure? yes | no

Craig Hissett wrote 04/09/2018 at 08:51 point

Thank you so much for this - you've saved me weeks of head scratching there :-)

The sound sensor module looks great. I'll have to pick one up on pay day.

  Are you sure? yes | no

uri.shani wrote 04/09/2018 at 10:38 point

Sure, looks just the right fit for your project. I actually thought of going further with their design, but never really got to it.

  Are you sure? yes | no

Craig Hissett wrote 04/09/2018 at 15:23 point

Yeah the design is great. When i thought my project out in my head it was very similar to what they've done; arduino reading the sensor input, and the Pi pricessing the MIDI. I'm hoping to have mine look more trombone-like, so i can stash an amp, DAC and speaker over the shoulder.

If you ever fancy working on it feel free to jump on board with my project :-)

  Are you sure? yes | no

Blecky wrote 03/29/2018 at 04:51 point

Woo, we are Diva Plavalaguna Achievement buddies!

  Are you sure? yes | no

Craig Hissett wrote 03/29/2018 at 05:22 point

Yay! thanks for following my DigiBone project. The Litar is looking awesome!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates