How to build your very own string synth


The Eminent Solina is one of the fameous string synthesizers from the 70’s.
It is based on a paraphonic oscillator, a simple envelope and a phaser.


The oscillators in the original was a divide down structure where you generate the frequencys for the top octave and divide those down by modulo 2 for the rest of the octaves.

Paraphonic means it’s kind of polyphonic but shares some parts of the soundpath.
In this case it’s the envelope shared by all the keys played on the keyboard.

So what does it sound like?

Pretty nice eh?

Build instructions and the full source code for upload in an Arduino Nano can be found at the link to the right top on this page or this link:

My work on these free synthesizers is based on donations from people.
If you find the code useful, please consider a $3 donation  to keep future developments open source.

Donate $3

Chips for building DIY synthesizers can be found at:



44 Responses to “How to build your very own string synth”

  1. Chris Arndt Says:

    Very cool project! Is there a repository for the source code somewhere? Copy-an-paste from a PDF document is a bit error prone.

    • janostman Says:

      No there isn’t.
      The problem with this site is that I’m not allowed to put any other documents online but PDF’s

      Sorry but you have to live with this.

      Just Ctrl+A to mark the whole code and paste it into an .ino doc.

  2. Chris Arndt Says:

    Ok, thanks. But you could, for example, just paste the code into a Github Gist and link it here.

  3. astro-sound Says:

    This is great Jan, thanks for the write-up. I’ll definitely be building one of these soon after I’m done building a module using your VCDM chip.

    The gate/trig signal output is on D10, correct?

  4. genericpenguin Says:

    Ran through uncrustify and fixed a few lines wrapped by PDF. Compiles through Arduino app but have not tested.

  5. Tilman Baumann Says:

    Love the noob decals.

  6. Lolo4731 Says:

    Good work may!!
    Can work with Uno R3?

  7. inevitablecraftslabs Says:


  8. will wiffen Says:

    Where are the instructions etc, to the right of the page?

  9. steve Says:


    Any recommendations for a green noob to learn Synth basics from the ground up…? I am pretty proficient at C using the Arduino environment, but musically I am ignorant.


    • janostman Says:

      I dont’ really know of any good source for such.

      I’d say get my code running and learn how it works.

      Look at the mono synth code to make filters to your synth.

      You have to start somewhere.

  10. A Slew of Open-Source Synthesizers | Hackaday Says:

    […] has also built up a full-fledged string synthesizer keyboard out of just an Arduino Nano. It’s patterned on the Eminent Solina String Ensemble, and […]

  11. A Slew of Open-Source Synthesizers | Technology News Says:

    […] has also built up a full-fledged string synthesizer keyboard out of just an Arduino Nano. It’s patterned on the Eminent Solina String Ensemble, and we’ve […]

  12. Robin Says:

    Really great project!
    I just built up the solina synth on breadboard and it sounds great on its own, but running it through a slowly modulated moog-filter makes for some beautiful poly-pads and chordstabs.

    Im planning to do a kind of chordgenerator-module with voltage control over rootnote and type of chord(maj, min, min7, etc.), maybe inversions too. I guess it would be possible to use A0-A4 as cv-inputs, since it wouldn’t use the keyscanning anyways.

    Unfortunately im pretty new to Arduino and the code is way over my head right, so i guess i will use a second Arduino to read the cv-inputs and send the correct Midinotes to the nano-solina and see how that works out. 🙂


    • janostman Says:

      I’m kind of proud of it myself.

      • Robin Says:

        I just noticed a little quirk when using it with a midikeyboard, for example: when you play a four-note chord and let go of three notes, the whole chord will go on until you let go of the last note.. maybe there is something wrong with my midikeyboard? has anybody experienced the same issue?

      • janostman Says:

        It’s not a quirk. It’s Paraphonic and not Polyphonic.

  13. dark music blog Says:

    i like your work. thanks for sharing.

  14. Gary Says:

    Thanks so much for sharing! Here’s my version;

  15. Günther Klebinger Says:

    Awesome project, I really can’t wait for the christmas holidays to build my own!
    Do you have a bigger Version of the schematics somewhere? The picture ist quite small… Thanks!!!

  16. gartenxxl Says:

    With hаvin so much content and articles do you ever run into any
    issues of plagorism or copyright infringement? My site has a lot of
    exclusive cⲟntent I’ve either created myself or outsourced ƅut it lookѕ like
    a lot of it is popping it up alⅼ over the web without my peгmission. Do you know any ways to help reduce content from ƅeing ripрᥱd off?
    I’d defіnitely appreciate it.

    • janostman Says:

      I don’t think there is a way to stop plagorism.

      I choose to only post things I don’t mind being copied.

  17. Norduk Jo Says:

    My best congrats for your blog and projects. You are a genius!
    I’m trying to make this magnificient synth. (I haven’t slept for days, try help with another cool person, but now… you are my only hope).
    I’m using an arduino MEGA ADK. Put the 8 col and 5 rows in the respective pins in the code. I had to adapt the code to read fast and recognize the pins in MEGA. (When finished and working proper, I will give you the code so may others get the way). I’m using a cheap toy keyboard (20$, not so cheap), but with the same col and rows.
    But…. In the physical octave, when I play for example G, Is the same note in the other octaves. Sometimes is not. the notes are little bit random after playing a while. And when i press the same key continously, it start given the same note, but after the 5th time I press, it pitch up giving another note and behaving randomly.
    Anyone had the same problem? Anyone can have an idea about what it is? Should I put all my hardware in the junkyard?
    I put the order of the wires, from backward, and foward of the col and rows, change the wires, went to a priest, an exorcist, I tried so many things, but the problem still. I’m using MEGA Adk, because I had it already and try to save good money 😦
    Aside this, I’m put succefully some features, like LCD screen, switchs for some effects.
    Any word, is appreciate 🙂
    Thank you so much

    • janostman Says:

      The problem is that your cheap toy keyboard doesnt have a diode on every key.

      It will still work fine as you discoverd until you press 3 keys at the same time and run into something called Ghost keys.

      The answer is simple, you cant fix it. Without the diodes you can only play 2 keys at a time.

      Real musical keyboards have the diodes built in.

  18. Build Your Own String Synthesizer With An Arduino – Synthtopia Says:

    […] Instructions and the full source code for the project are available at Ostman’s site. […]

  19. DIY Modular Synth: Solina String Synth – Morocco Dave Says:

    […] MIDI gadgets. Whilst Googling around for ideas and how-to-do articles, I came across a fantastic Arduino-based string synth project by Jan Ostman, beautifully demonstrated here by a builder of the […]

  20. Magnus Says:

    Hello. Thank you Jan for sharing these projects, Its fascinating what you accomplished with using low-level assembler.

    I have taken upon me to create one of these, I was lucky to find a Toy-Piano for 3€ with diodes in it, so i didnt have to add the diodes myself, altough I needed to swap the orientation of them, since they were opposite.

    Anyway, it almost work just fine, except one weird occurance i cannot get my head straight about and Im now seeking guidance.

    It appears to be some “noise” on Digital pin 2, and Im wondering if its something since its the same pin as INT0? But both yours and Blog Hoskins have the same without problem so i dont understand.

    I was gonna try to change the pin to D12 or D13 but the assembler is way too hard for me to manipulate. I tried with two Nanos ; same result.

    I have uploaded a video to demonstrate how it behaves, its each 8 note that i have taped that are behaving odd.

    I can conclude its not the keyboard, since if i for example change the row to another one, it will just transpose the problem to that other key.

    This is a shared-link-view only.

    Thank you once again, have a nice weekend!

    • janostman Says:

      Are you abolutely sure its not the keyboard?
      Some solder bridge?

      Those chinese toy keyboards arent reliable either.
      Check that all the diodes on the keyboard is soldered the correct way.

  21. Magnus Says:

    I tought i was according to how it behaved when i changed the row (of 8) to another and it transposed. But I disassembled the cables to be absolutely sure to check with wire, and yeah i was wrong, it sounds good when direct connecting the wire to it.

    Thank you for fast reply, ill try see if I can find the issue the keyboard.

  22. janostman Says:

    As you get 2 keys at the same time it sounds like a diode problem.

    • Magnus Says:

      Alright, have done some troubleshooting. I dont have a proper diode tester in my multimeter, but I can conclude that no diodes have became a solderbridge and that they’re also the right way.

      I have done some various testing, and it’s very odd situation. If I have more than 3 connected to the digital pins (row of 8) the unwanted sound will occur. And it only occurs at digital pin 2.

      I have recorded a demonstration with only the first key connected, (first pin of column of 5, and first pin of row of 8) . “Column-Wire 1” goes to A0 and “Row-Wire 1” goes to D2.

      If I interfere at the “black bridge” leading to the other diode for example, that shouldnt be leading anywhere since the switch is off and the “Column-Wire 2” to A1 is not even connected ; it will add that noise, even if there is nothing else connected.

      I do the same demonstration in the video by changing the pin from D2 to D3, and it doesn’t have that issue.

      Im wondering that if I could just be using one of the other empty Ports on the atmega, change D2 to D12, it could be a work-around. Would it be hard to make that change in the code? I have tried to grasp how the code work, I understand they are in different registers, but that doesnt help me enough how to properly reassign it.

      Thank you 🙂

      Shared video-link:

  23. Jaromir Says:

    Hello, Jan. This synth is simply awesome’ I was build it but slightly different – the keyboard begins at “F” key. I was modify program (field “NOTES” – rearrange values) and use arduino pins 12 and 13 to switch to octave plus and minus. Works very well. But there is one bad thing: when i press higher “F” and highest “D”, the sound is horrible detuned. The same thing with pressing lowest “F” and next “D” key. If i press the same combination in the middle of keyboard, all is OK. This thing is present only on these two combinations, all others are fine. This thing exist in unmodified program too. What’s wrong?

  24. Jaromir Says:

    Hello, Jan. I found it! There is something bad in subroutine “digitalReadFast”. If i replace “digitalReadFast” to ordinary “digitalRead” in keyscanner section, then all is OK. I was discovered, that this error occurs if i press first key in matrix (row 0, column 0), plus 10-th key (row 1, column 1), then keyscanner returns “additionaly pressed” key in row 0, column 1. So result is that keys 0+8+9 are pressed. This situation repeat for keys 8+17, 16+25, 24+33 and so on… In my case, notes are F-d, d#-a#, a-f1# and f1-d2.

  25. Jaromir Says:

    Hello, Jan. It is possible to change waveform or it is “hardwired”?

  26. String Synthesizer – ubbsoft Says:

    […] etwas gefunden, was ich schon immer mal bauen wollte: Einen String Synthesizer. Auf der Seite und wird ein solcher […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: