Programming languages

I want to learn and understand computer languages used for making synths, and learn all about firmware and boot loaders ect ect

My question is>>

1. What languages do I need to learn

2. Could I buy a book or online course and pick it up, or would it be better to enrol on an Open University course?

3. (Potentially stupid question warning) Would I need to know the fundamentals of electronics to create software synths, or the firmware/software that controls hardware synths?

First question back is can you program at all already? as embedded development isn’t the best starting place.

You can write synths in Javascript and HTML5 these days. An example of such a thing

Personally I’d start with the easier languages and gradually work downwards. I started in BASIC, then Pascal, small amounts of Z80 and 6502, C, Java, C++ and my current job is web technology and Java mostly.

Thanks 6581punk.

The only thing I have ever programmed was beep noises on a computer that was either a Sinclair Spectrum or Commodore 64, that was years ago :smiley: from memory it went something like this beep (2,3) or something along those lines!

I think I am going to enrol with the Open University on a programming course, that should cover HTML, Java and C++

@Adam you could do worse than trying JavaScript, as a starter language. The advantage of this is you can relatively easy create a webpage to test program logic. JavaScript will introduce you to all the basic programming concepts and structures.

You could also jump straight into C++.


1. C, with a course focused on embedded systems.

2. I suggest you to start with arduino tutorials, as a kind of “training wheels”. There are too many programming classes that focus on programming for a desktop computer or a smartphone, or for websites - you don’t want to get into that - you’ll have to unlearn a lot if you get into that. So I suggest starting by arduino (which uses a subset of C/C++), and then digging deeper from there.

3. You can create software synths (plug-ins) with no knowledge of electronics - this knowledge would come into play only if you’re interested in accurately emulating analogue circuits.

You need some good knowledge of electronics to create firmware for a hardware synth - because your code will control circuits in the microcontroller (peripherals) and outside of it.

Hallo friends…

I have an Raspberry Pi 2 and its a very interesting low cost development platform for music programming languages such:

Greetings from germany. Rolf

Thank you for all your help guys, it is greatly appreciated :slight_smile:

If you aim for understanding how telling a Computer what to do works (aka programming) and not for designing a Synth like the Shruthi with that platform you may have a look here for the Toy Version (just like my son) and here for embedded System environment for total clueless starters (just like me)

I’d say the big difference between the lower level languages like C and the higher ones is memory allocation and access. Pointers in C tend to confuse a lot of people, they’re not that bad but they cause a lot of crashes for beginners.

I like the idea of buying an Arduino and learning a little about C/C++ and I also like the look of the Picaxe which uses Basic as its language…

I think this is the way forward for me, for the meantime :smiley:

Thanks again for all your great suggestions!

Hi Adam

This is a good choice. I started in the 90s to programming little midi hardware and learn something new every day now… :slight_smile:

Have fun…

Best from germany. Rolf

Thanks Rolf :slight_smile: