Multimedia Programming Using Max-MSP and TouchDesigner
上QQ阅读APP看书,第一时间看更新

Introducing the synthesizer example

As mentioned before, we'll start with a simple synthesizer. It's a subtractive one with two oscillators, [saw~] and [rect~]; a lowpass filter, [lores~]; and a standard ADSR,[adsr~]. In this chapter, we won't talk much about the actual synthesis or sound processing. We are going to use the synth to motivate us a bit to learn everything else that's needed around the synth and in many other occasions. While learning these methods, we are going to improve the synth in many ways, and as I said already, it doesn't really matter if it's a synth, a sampler or something else. In fact, I encourage you to build something else and apply the techniques discussed in the upcoming sections to it, rather than working with this synth. One last thing before we dive into it; don't expect this first little synth to sound unbelievably great. Again, we'll come to more sophisticated sound-processing topics in the next chapter.

So let's have a look at where we are going to start off:

So, there are a lot of things we can talk about here. Basically, we have a MIDI input at the top and an audio output at the bottom, and more or less everything in between is our synth. If you open the patch firstSynth_v001, you might not quite see what is shown here. In fact, you won't even be able to get a sound when clicking on the keyboard. Why? Think about it for a moment. First of all, audio might be switched off. Secondly, the cutoff of the lowpass filter is turned down completely, so only very low frequencies will be able to pass. However, I saved it the way it is shown here, not with all [live.dial] objects at zero position. Why isn't that saved too?

Initializing values correctly and saving presets are two slightly different things; you can see that if we decide to manage values via presets and so on. We can also initialize them by recalling a preset. However, there are often many values that don't need to be controlled by presets or other storage management techniques but that need to be initialized. Let's first care for initialization, so when we fire up our patcher, we at least get some sound.