PadSynth is a sample generator that uses the PADsynth algorithm designed by Nasca Octavian Paul. (This is one the three synthesis methods used in the well-known ZynAddSubFX)

As the name implies, the goal of this tool is to generate pads, i.e. long samples perfectly looped, with slight and constant variations in the sound. You can then use Renoise native DSPs for further sound shaping.

The idea behind this synth is that you describe the frequency spectrum of a sound, by assigning values to its harmonics (with the 64 vertical sliders). The sound is then generated from this spectrum, but with a twist: a “spread” is applied to the harmonics, so that the sound feels more “natural”, less exact and digital.

There is two main parameters to control this spread: “Bandwidth”, which defines the spread of the first harmonic, and “Growth”, which defines how much the spread grows with higher harmonics. Growth at zero means the spread stay the same for all harmonics; a growth of 1 gives a more natural progression.

For example, here’s the frequency spectrum of a sawtooth waveform, obtain with the parameter “Growth” set at 0:

3178

And now with a growth of 1:

3179

You’ll notice that the higher harmonics are spread around their frequency; they peak at a lower level to compensate for the increased number of frequencies in the sound (so that energy stay the same).

The second group of parameters are called “Placement”, and control where the harmonics, or more accurately the overtones, are placed in the spectrum. The default is “Harmonic”, so they are integer multiples of the base frequency of the note. With the other placement methods (“Multiplied”, “Powered” and “Waved”) you can deform this ideal placement to obtain less perfectly musical sounds. For example, here’s a “Waved” placement, with a period of 16 and an amount of 0.50:

3180

This will sound more like a bell than like a musical instrument. You can use the parameter “Harmonize” to shift the overtones toward harmonic positions, to obtain a more usable sound.

In order to produce beautiful pads, you need to have a sample duration of more than one second, and several samples per octave. This can take a long time to generate, that’s why there is a “Test Note” button, which generates only one sample, of a very shorter (0.25 s by default) duration. This is especially useful when you’re making adjustments to an existing sound. This button also has a visual feedback: the sample named “PadSynth Parameters” contains the frequency spectrum corresponding to your parameters (this is how the graphs above were created).

Also note that since you can enter the sample at any point, using the S command in the pattern editor allows some nice variations in the attack of the sound.

The interface is similar, being both inspired by ZynAddSubFX. But the underlying algorithm is different, and the goal of the synth is different, too.

There’s a few things I’m not sure yet in the GUI:

I’ll probably get rid of the “Create?” dialog box, this doesn’t seem to be the renoise way. - I don’t know if I must add more harmonics… 64 seems already a lot, but I clearly can hear a difference with Nasca Octavian Paul reference implementation. - In ZynAddSubFX, the GUI to set up harmonics is way more complex. You can subtract harmonic, change their phase, and use a base function. The thing is, I don’t understand how he’s using this, since it’s not additive synthesis. If anyone has any insight on this… - I’m not sure which other parameters I should/can implement; which ones are the most useful to shape the sound…

Ability to generate stereo samples: the two channels use the same wavetable, but starting at different points. - Non blocking sample generation: you can now generate long samples at high sample rates without ever seeing the “Script not responding” window - No more dialog, in order to be consistent with other destructive Renoise actions - There’s a keybinding to create/open the synth

Note that for the “non blocking” feature, the generation is still computation heavy and the interface won’t be very responsive. There’s a trade-off here, between UI “responsiveness” and time needed for generation. In order to have a somewhat responsive UI, I need to roughly double the duration of the process. What do you think I should privilege?

Keyzone mapping: you can now generate several wavetables mapped across the keyboard, which makes the synth much more useful. - New parameters: you can control the growth of the spread applied to the harmonics; you can also control the placement of these harmonics/overtones. - The sliders are now logarithmic, which means it’s easier to finetune the low values. - Experimental: a fake sample is generated in the first slot, that does not contain sound shows the spectrum corresponding to the parameters selected.

This last feature will probably be optional in the future. I figured it could be useful to have some visual feedback on what the various knobs/sliders do, even if it’s not realtime feedback.

I realize that I did not explain how the synth works and what the various parameters do; I’ll try to write a clear explanation for the next version.

You can now cancel sample generation - There is now a “Test Note” mode, which allows to quickly generate a short sample; very useful when making adjustments to an already existing sound, to avoid waiting for a full range generation. - There is a new placement method, “Waved”

I hope there isn’t too many bugs, as I will publish this version on the tool page.

Yes, this is due to the “non blocking” feature. Samples are now generated in the background, which avoids seeing the “Script not responding” window. Unfortunately I had to sacrifice a bit of speed for this to work. Also note that I have increased the default generation to 1s. It’s best to use the new “Test Note” mode when looking for a new sound, and then switch to the “Keyzones” mode.

im a bit confused about the keyzone thing tho.

Maybe my choice of words is not the best. This is to generate several samples per octave, instead of one for the full range of notes. The parameters are exactly the same that Renoise uses for the pluggin grabber. The “Test Note” mode is here to bypass the multiple samples generation; this is useful when you have already set up a key range and long duration, but want to make a quick test with new parameters.

this waved thing is !!! … this is rapidly becoming the only thing i use in addition to samples and resynth in renoise

Thanks! As there was no bug reports, I assumed it wasn’t used. Nice to know it’s not the case!

Is it because everyone is using plugins, or because the sounds produced are not interesting enough? Or the tool too complicated to use?

Haven’t played with it that much, but it isn’t difficult to use or sound bad at all, have gotten pretty cool results even though it feels a lill random changing the sliders, having no idea what the changes will do to the overall sound. Can take a while generating sounds if you use longer durations and note ranges / step sizes spanning a few octaves, which can be off-putting if you wish to a-b compare the synth on different settings. The test-tone will come in handy in this kind of scenario for sure.

Maybe you can add tool-tips explaining how the different parameters affect the outcome, also for things like the drop-down options in ‘Placement’ (harmonic, multiplied, Powered, Waved)?

I think this tool really starts to shine when you adjust the envelopes in the ‘Instrument Settings’, for example adding a slow attack portion in a volume envelope, use some panning and filtering. Maybe you can take a look at Mxb’s Resynth and use his envelope and arpeggiator tricks for your tool as well?

drakmaniso:

Yes, this is due to the “non blocking” feature. Samples are now generated in the background, which avoids seeing the “Script not responding” window. Unfortunately I had to sacrifice a bit of speed for this to work. Also note that I have increased the default generation to 1s. It’s best to use the new “Test Note” mode when looking for a new sound, and then switch to the “Keyzones” mode.

Maybe you can ask vV how he worked around the ‘Script not responding’ notice, using a progress bar in one of his scripts?

I understand, i have walked the same road when writing the slices to instrument tool. When using the idle notifier to give Renoise some room, this problem got resolved. When adding the progress meter, i also got an insight of frankly how long stuff takes. Thanks to some piece of Taktiks code, i could improve the speed of the process tremendously.
You can choose to work either frame by frame or simply copy a complete range. The first choice is a very poor choice.

Maybe my choice of words is not the best. This is to generate several samples per octave, instead of one for the full range of notes. The parameters are exactly the same that Renoise uses for the pluggin grabber. The “Test Note” mode is here to bypass the multiple samples generation; this is useful when you have already set up a key range and long duration, but want to make a quick test with new parameters.

ahh, i understand what you mean by keyzone/keyrange now. makes sense. i think this is a really neat synth, i just wish that both resynth and padsynth would allow for both to run in the same instrument, would be perfect

As for the improvements requested, I’ll see what I can do for the envelope. I personally prefer to use Renoise graphical editor for this, but I can add an optional ADSR envelope somewhere in the interface. I’ll probably implement the unison feature first, though.