6

At my high school we can take a class where we basically learn about a subject on our own for a semester. I was thinking that I want to learn about "sound programming," but I realized that I have no idea what that entails. I'm interested in learning about, for example, how a synthesizer works, how I could write a VSTi, and how sound works in computer science. Is this a feasible subject? Are there any good tutorials out there for somebody completely new to this? Any tips or suggestions would be greatly appreciated.

Edit: This is the sort of thing that I'm interested in.

hotpaw2
  • 70,107
  • 14
  • 90
  • 153
Austin Gayler
  • 4,038
  • 8
  • 37
  • 60
  • It sounds to me (no pun intended) like you're interested in the area of audio engineering. Does your school have a Stagecraft program? That, combined with a programming class, would seem like a good start. – aqua Jan 24 '11 at 05:34
  • What computer operating system(s) do you have access to, and what programming language(s), if any, do you know? – Phrogz Jan 24 '11 at 05:36
  • aqua-No, my school doesn't offer a "Stagecraft" program, or for that matter, any programming classes Phrogz-Windows/Ubuntu and C++ – Austin Gayler Jan 24 '11 at 05:56

3 Answers3

2

VST plugins are normally written with C++. But it's possible to use other languages as well. Building a VST plugin with C++ is quite an involved project. Without pre-existing experience it's probably too much for a school project. Additionally you'll probably spend as much or more time implementing the VST part and GUI as you will actual sound programming.

However there are a other ways to create a VST plugin and still get your hands dirty writing code.

SynthEdit is a modular environment for creating synthesizers and effects. Modules such as oscillators, envelopes etc are connected visually with wires. Patches can be exported as VST plugins. SynthEdit allows additional modules to be programmed with C++.

SynthMaker is another option similar to SynthEdit. It features a code module which allows you write DSP code without the difficultly of compiling modules in another language.

The advantage of using SynthEdit or SynthMaker in your situation is that you can focus your programming efforts on a particular area, such as creating a filter or oscillator module. SynthEdit/SynthMaker can then handle the other areas (GUI, voice logic, etc).

Using SynthEdit or SynthMaker will also allow you to prototype ideas quicker. So you will have more time to experiment with different synthesizer or effect architectures before settling on something to complete for your school project.

DSP theory can be quite involved and maths heavy but that alone shouldn't put you off. Depending on what you want to do, a basic understanding of digital audio principles and algebra level maths may be enough to take you a surprising long way.

Shannon Matthews
  • 9,649
  • 7
  • 44
  • 75
  • Thanks for the answer. I understand that doing a VSTi will probably be over my head, and I guess that I just put that in the OP because it was something that sort of related to what I was trying to get at. However, I want to focus on the programming part, so I guess I should just scratch that idea. This: http://stackoverflow.com/questions/36567/beginner-digital-synth is a post I found that more correctly describes what I want to learn than I can describe. – Austin Gayler Jan 24 '11 at 15:38
  • I have heard that VSTi's made with SynthEdit and SynthMaker are frequently buggy. Has this been your experience, or is this just rumor without any real basis? – Warrior Bob Jan 25 '11 at 22:36
  • 1
    @Warrior Bob: I know of SynthEdit and SynthMaker more by reputation than personal experience. But AFAIK they are reasonably stable in most hosts. SynthEdit did have a long standing incompatibility with multicore machines, but that bug has now been fixed. However there are probably quite a few SynthEdit plugins in the wild which have not yet been recompiled with the new version so still have the bug. – Shannon Matthews Jan 25 '11 at 23:08
1

You might try looking for resources on DSP (Digital Signal Processing) and/or Audio Signal Processing. The programming itself (unless you're looking for an existing audio library) will likely be more math intensive than programming intensive, so it might be a good fit for a query at math.stackexchange.com.

Kevin Stricker
  • 17,178
  • 5
  • 45
  • 71
0

There's a very flexible and powerful audio application called Plogue Bidule. You could use it to learn about audio processing and synthesis, by creating your own 'bidules' or groups using low-level math and logic building blocks. There's an existing user community, and I've had a hard time finding a limit to what it can do. You're not going to be doing any code with this tool, but it's great for performance and learning about audio processing and synthesis fundamentals.

jdev
  • 729
  • 2
  • 13
  • 36