Categories Menu

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

Posted by on Apr 9, 2013 | 2 comments

Pure Data Wavetable Synth – Part 3

Part03-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.

In the last article we created a background calculation process to make sure that our wavetable sample is optimized for the playback process, and that it will not exceed the length of the imported file. Today we’ll be creating the controls to select the parameters of our wavetable sample…How long will it be? Where should the sample begin? What kind of fades should we put on the head and tail of the sample to prevent non-zero crossings (and the clicks that come with them)? Again, I’m assuming you’ve read and completed the previous projects.

Because we’re creating a computer program, and computer programs do explicitly what they’re told to do…regardless of whether or no it will cause an error, we need to make sure that we don’t let our sample do anything invalid. We’ve already ensured that, at its most basic, the sample can’t be larger than imported file.

Read More

Posted by on Apr 4, 2013 | 6 comments

Pure Data Wavetable Synth – Part 2

Part02-01

What we’re building today…looks can be deceiving!

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 first article of this synthesizer construction series, we built a patch that imports a sound file to PureData and plays it back. This time, we’re going to be working on an “under the hood” function for our patch that will be critical in constructing the wavetable sample out of a portion of the imported sound file. In order to control the length of these articles, I’m going to operate under the assumption that you’ve read and completed the previous installments.

That picture above is what we’re going to be left with when we finish today’s task. Don’t let the addition of only four “atoms” fool you, this one’s going to take a while. In order to help us keep things cleaner, better organized, and easier to trace…we’re going to introduce sub-patches and a more extensive use of variables to our patch. We’ll also be looking at the idea of “hot” and “cold” inlets on atoms; as well as how they affect the order of operations in PD.

Read More