The Digi-Gurdy

MIDI based electronic portable practice hurdy-gurdy.

Similar projects worth following
The hurdy-gurdy is an ancient musical instrument (10th century) with drones and melody strings bowed by a rotating wheel, played by pressing keys which contact them at different points. It has in more recent times featured in the TV series “Black Sails”, “Walking Dead” and also in the “God of War” games. The major barrier for beginners is that they are very expensive and built to order with lead times of several months to a year. Rather like bagpipes, they are noisy when practicing. For pipers, practice chanters and e-chanters are available to solve this problem while nothing similar is available for the hurdy-gurdy. The Digi-Gurdy therefore is an electronic hurdy-gurdy keybox, with correctly placed keys, that outputs MIDI via a USB cable to an attached laptop or phone running suitable MIDI player software, for practice anywhere using headphones, thus preventing eviction or divorce!

Email:     Video clip of it being played: 

Update: 31/03/20 Working on a ventilator no updates for a little while sorry. 26/04/20 New code uploaded for the new Adafruit OLED screen. 19/05/20 Building some again ! See Log #15 below. Also more updates here and extra info on setup and tunings: Updates

What is it?  

In addition to the above, a hurdy-gurdy also has drone strings and a buzzing rhythm section operated by varying the rotation speed of the crank handle. It has been described as the stringed equivalent of the bagpipes and, as with bagpipes, there are design variations in the folk traditions of different countries. Links to videos of real hurdy gurdy players are provided.

The Digi-Gurdy is an electronic hurdy-gurdy keybox, with correctly placed keys, that outputs MIDI (an industry standard digital communication system for electronic musical instruments) via a USB cable to an attached laptop or phone running suitable MIDI player software. When used with headphones this would give you a low cost, portable, compact and silent means of playing the equivalent of the melody strings, i.e. something to learn to play on wherever you may be. It would not even require a battery as it would be powered via the USB cable.

Are you building any?

Yes, a few at least. The plans I have uploaded here are for a version with a hand wired loom. The ones I build from now on will look almost the same but have a custom PCB onto which all switches and Teensy will mount. Teensy will be un-pluggable, so non-Arduino enthusiasts can just mail me the Teensy for a code upgrade. A bit left-field but it might solve a real world problem!


1) Major barriers to entry for beginners are that while a playable electric guitar for example can be bought for around $200, a hurdy-gurdy is made to order by one of a few specialists and costs around $1500 even for a basic instrument with a waiting time of several months to a year.

2) In addition, it is noisy, making a good place to practice without upsetting your companions hard to find! This problem has been solved for bagpipe players with the availability of both practice chanters resembling a simple flute and electronic e-chanters allowing practice while wearing headphones.

How it works: The entire structure of my first attempt was 3D printed in ABS plastic. The keys press on micro-switches and the brain of the device is an Arduino Teensy 3.5 microcontroller. An OLED display shows you which note you are playing at any time. The new one documented here uses alloy extrusions to create a better quality device, with 3D printed components slotted into them.

It also has a Demonstration Mode which plays a selection of >20 songs at the speed of your choosing while displaying the notes on the OLED screen. NOTE: Some of these need more work, feel free to edit them! I have now simulated the crank using a hobby robot gearmotor as a dynamo.

Primary objective: To produce the Digi-Gurdy either fully built or as a kit which could be assembled by someone around 14 years or older with basic soldering and model making skills.

NOTE: Click on my name and send me a private message to obtain the soundfont file for use on the attached mobile phone as it seems to be too large for me to upload anywhere.

Video examples of various styles of hurdy-gurdy players, in no particular order:

Nigel Eaton

Nigel Eaton with Led Zeppelin

Gregory Jolivet

Harry Wass

Efren Lopez

Tobie Miller

Andrey Vinogradov

Jiří Wehle, Prague street performer

Example of a younger player, Patty Gurdy.

Video about the Black Sails TV series soundtrack

Jimmy Page playing HG in the film: The Song Remains The Same

Guilhem Desq

Some Metal: Lamb Of God cover by Helvetion


New mega build manual ! Covers everything I hope using many many annotated photographs. Full length slab version with crank integrated into the device.

Adobe Portable Document Format - 10.30 MB - 05/08/2020 at 23:31



Wiring diagram and instructions for the full length version with crank integrated.

Adobe Portable Document Format - 540.30 kB - 05/08/2020 at 23:29



NOTE: This is exactly the same as V75 also in this listing of files, except tweaked for the latest Adafruit 128 x 64 OLED display. Also added another demo song thanks to Kurt Huber. This display is the one with a small socket on each side of it called the STEMMA version. There are two jumper pads on the back of the board that you now have to cut to set it to SPI mode which this code uses. See here: If you cut the 2 jumpers and also make sure your libraries are up to date, especially the Adafruit GFX one, then this code should just work fine.

ino - 461.84 kB - 05/06/2020 at 13:06



New screenholder .stl for latest Adafruit 128 x 64 "STEMMA" OLED screen that now has a small plug socket each side, meaning I have to change the screenholder design. You also have to carefully cut the bridges between jumpers J1 and J2 on back of the screen, and use my code V76 upwards.The screen I mean is this one:

Standard Tesselated Geometry - 93.70 kB - 05/02/2020 at 11:42



Instructions for use 11/03/20. Mainly for reference. I would recommend watching some of the videos as they show this more easily than a sequence of screenshots in a document can do.

Adobe Portable Document Format - 1.86 MB - 03/11/2020 at 13:37


View all 13 files

  • Project Log #15 Version 5 finally built using the PCB's

    XenonJohn05/19/2020 at 17:44 0 comments

    Have been involved in a ventilator project but finally got around to making a few of the V5 DigiGurdy's which have a custom PCB inside onto which everything connects. Also has the unpluggable Teensy 3.5 on the front under a white 3D printed cover. I have made 2 videos describing everything about this version, see below. All white / aluminium and now using white laser cut acrylic for the front and rear surfaces. I have made 7 so far.

    DigiGurdy Jenga.

    This is 15min long but explains just about everything. The screen flicker on the display is due to my GoPro camera, it does not flicker in real life !

  • Project Log #14: PCB's have arrived for latest version

    XenonJohn04/26/2020 at 23:26 1 comment

    This is a very quick update. 

    20 PCB's have arrived from China which I can solder the microswitches to and also 2 rows of pin headers to allow the Teensy board to be plugged into the FRONT of the DigiGurdy. 

    The whole machine will be white as in the left-hander featured in Project Log 12b.

    The Teensy will have a small 3D printed removable plastic cover. This allows it to be unplugged and sent to me if not an Arduino enthusiast so I can mail it back to you with a software upgrade.

    It also allows an SD card to be slid into the end of it, should I wish to use that for something - working on it. For those who have suggested I design a custom board with WiFi connectivity for software upgrades, my answer would be that to do that I would have to employ someone and unless making 1000 of them, not much point. As it is I paid someone to design this PCB.

    It does speed up the build time considerably and is much neater.

    Other project taking up 99% of my time right now but I thought I would put one of these together just to check that it works - which it does.

    Photos below, just the electronics assembled for testing purposes.

    The USB lead will be held captive in the slot cut for it by the cover which will enclose the Teensy and this cable.

  • Project Log 12b: Version 4, neater & easier to construct

    XenonJohn03/06/2020 at 22:18 0 comments

    Version 4

    - Many software improvements based on suggestions from Nigel Eaton, David Jacobs and others.

    - Have sorted out a reasonable set of tuning options. Startup menu gives you 6 tuning options. Trying to offer a reasonable selection for the more experienced, but not an overwhelming set of options for the beginner either. Select one and it will then show you how to set up the FluidSynth app on your phone so it all works correctly and sounds as it should. The software does not "know" how you have set up the phone app so this is the easiest way to set both up so they work with each other.

    - Many changes to the 3D prints so the whole thing holds itself together just using the 4 long screws at each end.

    - Alloy channel now runs the full length of the device, enclosing the larger gearmotor crank mechanism.

    - Using white laser cut acrylic panels rather than plywood.

    - White USB cable.

    - Going for an aluminium and white plastic effect, rather like an *pple product.

    - 6th tuning option allows you to set it up as a Tenor gurdy.

    These are all shown in the video below. Please note in the video below I am demonstrating them on a LEFT-handed version i.e. back to front !

    To come.......

    I am awaiting imminent arrival of some printed circuit boards onto which the microswitches will be soldered directly. This will eliminate most of the internal wiring and simplify the build further.

  • Project log #12: Stronger Crank and many code changes

    XenonJohn01/24/2020 at 14:26 0 comments

    List of changes to original version based on feedback from a couple of early users:

    1) Much stronger crank mechanism based around a larger gearmotor in new 3D printed enclosure with a 6mm shaft. The bulb has been removed as if it blew, the system would not work as intended. Replaced with wire-wound resistor bridge. 

    2) No run-on when you stop cranking. Originally this was intended to help beginners as it would sound even if you momentarily stopped cranking.

    3) Keys do not play at all unless you are either cranking or have pressed the gaming FIRE button.

    4) Drones did not sound right in previous code when using tuning other than G/C. As the DG code has to be aware of your selected drones on the FluidSynth app on the connected smartphone, this has been addressed by the OLED screen offering you 4 tuning options on startup. Once you select one, it then tells you what drones to select within FluidSynth. This keeps it all working correctly. Tunings are: melody G / Playing in key of G;  melody G / playing in C;  melody D / playing in D;  melody D / playing in G. Trying to keep beginners from information overload but also keep more experienced users moderately happy.

    5) If you intermittently crank with a note key held down, it will sound the note each time, in previous code you had to release and re-depress the key.

    6) In new FluidSynth soundfont (V10 onwards) I have added larger choice of different loudness buzz sounds and keyclick sounds. PM me for the soundfont. I will send by wetransfer as large file.

    7) Repeat MIDI - off commands being sent out on some channels have been much reduced. With FluidSynth these were not noticeable but if attached to a more sophisticated synthesiser program running on a laptop, this could produce problems.

  • Project Log #11: More design tweaks and assembling the first six.

    XenonJohn11/24/2019 at 15:19 0 comments

    I am assembling six DG's for some brave early adopters out there. 

    A few design changes: 

    i) On startup the software measures the voltage on the analog pin from the buzz-sensitivity potentiometer 200 times and calculates the standard deviation. If low, a crank module is present and if large it is not. This means I can use same software for both variants of the design. I have added a gaming button to the crank module now instead of a small switch, so you can play it by tuning the crank, or by pressing this button with right hand. If you want to remove the crank module at some point in the future, you can unbolt it, remove the glowing glass dome and remount the switch from the crank module into the hole where the glass dome was (it will fit exactly). Screw on an end blanking plate, which will be supplied and the machine will then work again just fine in crankless mode with no software changes required.

    ii) In demonstration mode there are now 22 songs.

    iii) Some changes to the code have been made allowing the crank buzz to operate a little more like the real thing.

    iv) Acetone polishing of the 3D printed keys: I want the stems to remain unchanged as they fit the slots in the wooden laser cut panels perfectly, but I do want the key ends to be smooth and shiny, i.e. I want to acetone vapour polish the ends of the keys only. The solution is to wrap the stems in aluminium foil before placing them into my vapour chanber.

    Despite using laser cut panels to reduce the amount of 3D printing, as you can see I have been on a 3D printing-fest for the past 3 weeks to produce all the parts required.

    Have experimented with various pushbuttons, the gaming ones work best.

    Just some of the acetone polished keys.

    Some of the laser cut panels.

    End structures and crank housings, printed and acetone polished.

    Six sets of microswitches mounted and wired up to Teensy boards along with the OLED screens.

    Key-Henge. My acetone polishing rig. The felt is soaked with acetone and held to inside of glass bell with magnets.

    Some nice potentiometers with gold anodized knobs.

    Alloy extrusions all cut to length.

    Fishing reel handles from China.

    Better photo of the acetone polishing rig.

    Self contained crank module wiring now has multi-pin plug to connect it to main body of the DG.

    Bags and bags of 3D printed upper and lower keys, all of which are in the acetone polishing queue!

  • Project Log #10: New Build Videos 21/10/19

    XenonJohn10/21/2019 at 22:51 2 comments

    Here are some new build videos (in 2 parts as YouTube only allow a max video length of 15min. This is the new hybrid version made from laser cut 3mm ply, aluminium extrusions and 3D printed parts. The version shown here is the basic one without the crank module.

  • Log #9: Redesign using laser cut ply to reduce 3D printing

    XenonJohn10/20/2019 at 21:50 0 comments

    October 2019: REDESIGN IS COMPLETE using laser cut ply for the front and rear panels to reduce the amount of 3D printing required somewhat, to reduce overall build time and also to reduce the time spent filing and fettling the keys, keyslots and so on to make everything fit and work smoothly.

    The set of files I have just uploaded all refer to this easier to build crankless version. All the information is there for you to build one. This has an arcade FIRE button on the front right hand surface. Just hold the right hand end in your right hand, press this button with your middle 2 fingers; the drones and open melody string will sound as if you had started to turn the crank, then you start playing.

    - A small amount of filing of the keys may be required but the laser cut ply parts require none at all.

    - The keys can easily be renewed if you break one.

    - Rear ends of the keys project from rear of keybox in a way more similar to a real HG.

    - Keys shaped to hit front deck just before the maximum microswitch travel is reached. This should better protect the microswitches if played too hard.

    I am working on a version of this with the previously described crank module. The build for that version will be 95% the same as this i.e. the extra wiring for the bolt-on crank module and slightly different code.

    The play button does not have to be lime green, they come in many other colours!

    Next project log will feature the crank version of this new design.

  • Log #8: Different tunings enabled & feature in "Prog" magazine

    XenonJohn09/13/2019 at 14:13 0 comments

    Short update:

    I have improved the software so now you can select either of the two commonest tunings for the keyboard i.e. G/C or D/G. You can select the one you want on startup and also change the tuning while the device is in operation by pressing the upper rightmost three keys simultaneously. It is a bit like a Tesla car, load in a software upgrade and your (unchanged) hardware suddenly performs better.

    I have uploaded this version of the code (Version 37).

    Also the original red plastic DigiGurdy has to my surprise been featured in the current edition of Prog magazine - as in Prog Rock. Aug/September 2019.

    I intend to go through all the 3D print files one more time then will also post them up here.

  • Log #7 How to connect to phone and use Fluidsynth to create music

    XenonJohn08/23/2019 at 23:30 3 comments

    This video update shows how you use a phone to play the MIDI data coming out of the DigiGurdy.

    The soundfont file (.sf2 format) has to have been uploaded onto the phone in advance. I will make this file available soon. All the sounds to be played are stored in this file.

    The MIDI player I am using is called FluidSynth and is available free from the Google Play store for Android phones. An Apple version also exists but I have not tried it with the DigiGurdy.

    The DigiGurdy outputs data on 5 MIDI channels. In FluidSynth we must assign an instrument or sound to each of these 5 channels for it to work correctly. This is best explained with a video and so the video below shows me setting up Fluidsynth on a phone in this way. FluidSynth has a very basic user interface but it also has very low latency (time between pressing a key and hearing the sound) and so works well with the DigiGurdy.

  • Log #6: Fully Assembled With Crank Module

    XenonJohn08/19/2019 at 20:56 0 comments

    Here is the DigiGurdy coming together at last, with the crank simulator module attached. This video clip gives an overview of the functions of the device from the point of view of a user and also shows how you select and play songs in demonstration mode. I will add a more detailed video at some point showing you how to get the soundfont onto your phone and set it up to play the sounds correctly with the current version of the DigiGurdy. In this update video you can see:

    - Crank operated drones and open melody string.

    - Crank operated buzzing sound (sound audio file supplied by Nigel Eaton, many thanks).

    - More realistic key-click sounds

    when the keys are pressed.

    - Use of a control knob to adjust the sensitivity of this buzzing rhythm sound when cranking to suit your own style of playing.

    - Blue orb on front panel which glows when turning the crank.

    - Demonstration of the crank-override switch which allows you to practice the melody without need to turn the crank.

    - Demonstration mode is shown being used with user-selection of songs and playback speed.

    The whole assembly is held together with just 4 long screws at each end. Almost no adhesives are required apart from where the screen is held in position.

View all 15 project logs

  • 1
    Step 1

    The detailed build instructions have been uploaded as a .pdf in the uploaded files section.

    NOTE: 09/03/2020: The alloy channel is hard to get in the US however a reader has found this link to a store that WILL ship to the US:

    Meanwhile, the build instructions have been broken down into 2 parts: 

    a) Construction of the electronics and wiring loom and 

    b) Assembly of the aluminium extrusions and 3D printed parts.

    In the updates I have already included a video showing how to use the DigiGurdy from the visual viewpoint of a user (Project Log #6) and also a video showing how to use it with the attached FluidSynth mobile phone application (Project Log #7).

    I have provided a parts listing. However please look at the parts listing .pdf file in the uploaded files section which gives you a lot more details on each of the parts you need plus suggestions as to where to buy them from, i.e. the online search terms to use.

    Below I give you an updated video outlining all the main steps of the construction process.

View all instructions

Enjoy this project?



subi wrote 03/09/2020 at 14:55 point

Hi John,

thank you for sharing your great project!
I've just ordered lot's of parts from UK and China and will try to build a digi gurdy with crank.
I'm a bagpipes and hurdy-gurdy player myself. This one would be a nice addition.

On the "Shopping List" I cant find a Potentiometer. Does any Poti with a Knob will do?

  Are you sure? yes | no

subi wrote 03/10/2020 at 14:04 point

Ups, I found the answer myself in your wiring Plan, sorry!  10k Ohm, 3,3V.

  Are you sure? yes | no

subi wrote 03/12/2020 at 15:51 point

I did it. I have ordered ALL Parts!
I'm from Austria and have ordered in UK (alloys), China (lots of Parts/ebay) and Amazon(de).

Thew new rectangular alloys I have not found anywhere except UK, but those are to expensive with the shipment cost, in my opinion. I will print them.

In total, Parts+shipment Costs are about € 212. Some items's include several pieces of the needed Part, means, spare Parts.

Right now I am thinking of printing all Alloy parts, even the ones I got from uk already (corner alloys). Why? Because i have no clue on how to cut them. Especially the long cut to fit the keys.

Delivery times from China are up to May, so enough time to print all parts.

My most concern at first was, that the lasercut acryl glass will get very expensiv. I found a company who cut's all 5 parts in Germany. White Acryl glass - 64 € including shipment cost. Don't know if that is expensive or not but it was the cheapest I found.

Edit: Forgot the Display, i have that already at Home so it was not within my calculation.

  Are you sure? yes | no

subi wrote 03/18/2020 at 15:38 point

I've got now all "not from China" Parts. Currently printing the third "alloy" channel. Had to fight with warping of such big parts but it seems to be fine now. Cant wait till i have everything from china to proceed.

  Are you sure? yes | no

Michael N wrote 03/23/2020 at 18:45 point

Hi subi,
would you share the company for the laser cuts? I'm from Germany, too ...
I asume, you will find the rectangular alloy profile in almost every German "Baumarkt". I haven't checked, but I remember a good variety from my last visit, when I loocked for the curved profile, based on the building description of the last version ...


  Are you sure? yes | no

subi wrote 03/24/2020 at 13:28 point

I've sent you a PM with details.

  Are you sure? yes | no

Michael N wrote 03/03/2020 at 10:34 point

One more suggestion/question:

Would it be possible to read the crank signals of the trumpet to analyze/train ones coup playing precision, much like it is possible on the MidiGurdy of Marcus Weseloh?


I would appreciate this kind of "biofeedback" training possibility very much, but I will not be able to program it myself, I'm afraid ...

  Are you sure? yes | no

Michael N wrote 03/03/2020 at 10:28 point

I love this project.

One thought: since many people have spare smartphones around, I thought it might be interesting to integrate a custom made smart phone holder underneath the gurdy in a way, so that the smartphone is positioned in a kind of drawer, so that it can be drawn or flipped out, when access is needed.
If, like me, a spare smartphone is available, one would not even need to take it out, if a usb-socket for charging would be part of the body.
Advantage would be that the cable connection would be more stable. So, it even makes sense, if you just connect your phone for playing and take it out afterwards. The drawer could even contain an audio jack inside which would connect to an external jack socket for connecting headphones or an amplifier directly to the gurdy body...
The drawer could be made in a way, so that a wider variety of phones can be used.

  Are you sure? yes | no

Christopher Baker wrote 01/24/2020 at 03:55 point

Is there any plans to sell these fully constructed?

  Are you sure? yes | no

XenonJohn wrote 01/31/2020 at 00:43 point

I have made 6 so far. Small improvements based on feedback as you can see. I have been asked for many more, which would take a very long time to construct as this is not my regular job after all. Working on ways to shorten the construction time at present to make this more feasible. Blown away to be honest by the amount of interest.

  Are you sure? yes | no

Michael N wrote 03/02/2020 at 17:17 point

Thank you for your amazing work. I have seen your New DG Design video of today on Youtube. It looks amazing. Will you release this design as part of this project? I started ordering electronic and mechanical parts, but haven't been printing or lasercutting the pieces, so I might better wait ...
Thank you so much. Great project.

  Are you sure? yes | no

llwy wrote 09/21/2019 at 16:29 point

Great work!

I checked your program. So you dropped the optical encoder and reverted to reading directly the voltage out of the motor?

One stupid question: at which point is the usbMIDI object created? I did not find any #include statement related to it and I could not find its initialization in the code.

Keep up the great work!

  Are you sure? yes | no

XenonJohn wrote 09/21/2019 at 22:36 point

I think the answer to the coding question is that the Arduino Teensy series have MIDI driver software built in which makes life much simpler when trying to get it all to work. The page to look at, with code examples, is this one:

They cost a little more than than the regular Arduino Uno/Mega boards, but having the built in MIDI functionality is worth it. They are around £30 i.e. about $30 if you shop around online - see how I devalued the UK pound there!

I am always looking at ways to keep the build as (relatively) straightforward as possible, in case I ever sell a few ready built or as kits. For example repurposing the keys to select options in menus saves me having to add lots of buttons and switches (inspired by my Sinclair ZX81 computer in the 80's which had up to 5 function options on a single key). The analog crank approach actually worked pretty well when I tested out the idea, having originally started off with an optical encoder setup. More testing required but at the moment it seems to be OK. A removable plug in crank module might be a good thing as people could mail them back to me when they break, while the keybox would still remains playable! The gearmotors are as low as £4 if you buy from China so semi-disposable.

To reduce the large mass of 3D printing involved I am experimenting right now with laser cut ply panels front and rear, which would then just leave 3D printed end structures plus the keys. I am keeping the alloy channels as they just make it look so nice. Update on this in 1 to 2 weeks.

  Are you sure? yes | no

llwy wrote 09/22/2019 at 10:33 point

Dear John, 

Thank you for the explanation. I was trying to test your code with a reduced number of button on an Arduino Pro Micro: I did not realize that the teensy came with its own specific libraries.

I'll order a teensy to test the functionalities.



  Are you sure? yes | no

XenonJohn wrote 07/21/2019 at 17:10 point

Bear in mind that there is a learning curve with 3D printers and it is worth printing a few things that do not matter to you very much just so you become familiar with your particular machine. One or two of the very low cost ones out there are now pretty good.

  Are you sure? yes | no

Jack Walsh wrote 07/21/2019 at 16:01 point

I was just putting together the main body of my digi-gurdy and noticed that there are apparently new print files for redesigned parts.  When will these be released?  I'm willing to start over!!  I particularly like the new key design -- the screws through the keys always seemed unworthy.  Thanks for all your work!!!!!

  Are you sure? yes | no

XenonJohn wrote 07/21/2019 at 17:08 point

If you can wait a few weeks I will soon have a lot more free time to really finish this off. On expert advice (Nigel Eaton) I have been encouraged to really try to get a working crank handle simulator completed as part of this project. This will mean the 3D files might change yet again. Crank work will be feature of next update, more parts on order right now.

  Are you sure? yes | no

Jack Walsh wrote 07/22/2019 at 14:38 point

Yay!!  Gives me some time to practice with just the keys!!!

  Are you sure? yes | no

Shannon wrote 07/05/2019 at 17:53 point

This project might well be the one that makes me buy a 3D printer. I'd still save money over buying an acoustic hurdy gurdy.

  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