Categories Menu

Posted by on Apr 25, 2013 | 6 comments

Pure Data Wavetable Synth – Part 8

Part08-01aDespite all of this, I’m still relatively new at Pure Data and the Max language. To those who chime in with corrections or clarifications in the comments, you are most appreciated! If you’re new to PD, make sure you check the comments section for clarifying info provided by generous souls.

We’re picking up steam here. The synthesizer is essentially done. What we’re doing in the last two projects is adding features to make it a little more fun. Today, we’ll be adding in a 3 stage filter section. We’re going to route our synthesizer output through a hi-pass filter, then a band-pass filter, and finally a low-pass filter. It will pass through each of them in series, but we’ll be able to turn the filters on and off. Just to make things a little extra interesting, we’ll incorporate an LFO into each filter to sweep the center frequency (which we’ll also be able to turn on and off). You’ve completed the previous seven tutorials…right? ;)

Read More

Posted by on Apr 23, 2013 | 2 comments

Pure Data Wavetable Synth – Part 7

Part07-01Despite all of this, I’m still relatively new at Pure Data and the Max language. To those who chime in with corrections or clarifications in the comments, you are most appreciated! If you’re new to PD, make sure you check the comments section for clarifying info provided by generous souls.

Today is “amplitude” day in our wavetable synthesizer series. We’re going to be implementing amplitude modulation, as well as a method to control the ADSR envelope of our individual voices. Do I need to say this next part again? Well, I will just in case. This is part 7 in this series of tutorials. Reading parts 1 through 6 before tackling today’s tasks is encouraged. As with the last two tutorials, make sure you connect your MIDI device and configure it in PD before opening your patch. MIDI input and control won’t work otherwise.

Read More

Posted by on Apr 18, 2013 | 2 comments

Pure Data Wavetable Synth – Part 6

Part06-01

More of those deceptively “small” changes. ;)

Despite all of this, I’m still relatively new at Pure Data and the Max language. To those who chime in with corrections or clarifications in the comments, you are most appreciated! If you’re new to PD, make sure you check the comments section for clarifying info provided by generous souls.

In the last tutorial in this series, we achieved MIDI control of playback. It would be nice to have some of the features built into our MIDI controllers. So, today we’ll be implementing pitch bend and modulation…as those are two features common to most controllers. If you haven’t finished the other projects in this series yet, then I strongly suggest you do so before tackling today’s projects.

Let’s begin by adding pitch bend.

Read More

Posted by on Apr 16, 2013 | 6 comments

Pure Data Wavetable Synth – Part 5

Part05-01

Finally….PLAYBACK!

Despite all of this, I’m still relatively new at Pure Data and the Max language. To those who chime in with corrections or clarifications in the comments, you are most appreciated! If you’re new to PD, make sure you check the comments section for clarifying info provided by generous souls.

So far we’ve imported a file, created the controls necessary to select the parameters of the wavetable sample we’re going to pull out of that file, and actually constructed the sample we’re going to use for playback. We’re finally ready to implement some MIDI control and listen to what we’ve done thus far! As before, this is all assuming you’ve read and completed parts 1 through 4. Before we open up our patch, we need to configure PureData to look at our MIDI controller.

Read More

Posted by on Apr 11, 2013 | 4 comments

Pure Data Wavetable Synth – Part 4

Part04-01Despite all of this, I’m still relatively new at Pure Data and the Max language. To those who chime in with corrections or clarifications in the comments, you are most appreciated! If you’re new to PD, make sure you check the comments section for clarifying info provided by generous souls.

We’re finally going to build our wavetable sample today. Once we’re done with this component, we’ll actually be able to start building the playback system, which is where the real fun begins. As before, I’m working under the assumption that you’ve read the previous articles.

The picture above should give you a good indication of where we’re going. The new section that we’ll be working on today is labeled “Load Sample,” and the bulk of the visible code should look very familiar to you. It’s remarkably similar to the little sub-patch/function we built to calculate the maximum exponent that can be used to construct the sample out of our original file. [We did this in the second article.] Let’s review what’s happening in this code.

Read More