Dev needed for custom synth waveforms

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I've created a JS synth using the Web Audio API. It currently uses the Web Audio API's built in subtractive waveforms, but I'd like to add a handful of less common waveforms. The kind you might find in the wavetables of synths like Serum, Massive, etc.

I managed to use the Web Audio API's PeriodicWave class to create a pulse wave with variable pulse width. But anything beyond that is above my head.

I'd like to hire someone to do this. No JS or Web Audio API experience is needed. This is pure DSP, as I just need algorithms to plug into the PeriodicWave. Here's a bit of info on the PeriodicWave class with a simple example: https://developer.mozilla.org/en-US/doc ... riodicWave

PM if interested!
Interactive training apps for modern musicians
Building Blocks – DAW-Based Composition and Music Theory http://bit.ly/2OoU99N
Syntorial – Synthesis - http://bit.ly/2LPwD3E

Post

To give some hint how you can do it by yourself:

Create an array of floats, like 2048 of float values.
Draw you waveform into that array (pad with 0 after the waveform ends).
Then do a FFT on that waveform (i.e. https://github.com/dntj/jsfft)
The FFT will convert waveform from time-domain (that are sample values) into frequency domain (this are frequency values). PeriodicWave input is what the FFT outputs: an array of real und imag values, describing the cos/sin frequencies that compose your custom waveform.

Post

PurpleSunray wrote:To give some hint how you can do it by yourself:

Create an array of floats, like 2048 of float values.
Draw you waveform into that array (pad with 0 after the waveform ends).
Then do a FFT on that waveform (i.e. https://github.com/dntj/jsfft)
The FFT will convert waveform from time-domain (that are sample values) into frequency domain (this are frequency values). PeriodicWave input is what the FFT outputs: an array of real und imag values, describing the cos/sin frequencies that compose your custom waveform.
Thanks for the tip PurpleSunray. The development work for my company has grown beyond the point that I can do everything myself, so I'm in hiring mode now. A year ago I would've gladly figured this out on my own but now's a different story.
Interactive training apps for modern musicians
Building Blocks – DAW-Based Composition and Music Theory http://bit.ly/2OoU99N
Syntorial – Synthesis - http://bit.ly/2LPwD3E

Post

Hi,

Please see here:

http://www.galbanum.com/products/archit ... eforms2010

Here is a partial listing of previous clients for such things and there are actually many more:

http://www.galbanum.com/services/techlicensing/
http://www.galbanum.com/network/alliances/

Please send me an email if you like, and I'd be happy to help.

-Andrew

Post

Galbanum wrote:Hi,

Please see here:

http://www.galbanum.com/products/archit ... eforms2010

Here is a partial listing of previous clients for such things and there are actually many more:

http://www.galbanum.com/services/techlicensing/
http://www.galbanum.com/network/alliances/

Please send me an email if you like, and I'd be happy to help.

-Andrew
Thanks Andrew. Will take a look.
Interactive training apps for modern musicians
Building Blocks – DAW-Based Composition and Music Theory http://bit.ly/2OoU99N
Syntorial – Synthesis - http://bit.ly/2LPwD3E

Post

https://developer.mozilla.org/en-US/doc ... riodicWave

Hey, that's pretty cool.

It looks like you're asking for the amplitudes of sines and cosines in order to build waveforms through additive synthesis? Am I right in concluding that these are single cycle waveforms?

Post

Leslie Sanford wrote:https://developer.mozilla.org/en-US/doc ... riodicWave

Hey, that's pretty cool.

It looks like you're asking for the amplitudes of sines and cosines in order to build waveforms through additive synthesis? Am I right in concluding that these are single cycle waveforms?
Yes single cycle. And I ended up taking PurpleSunray's advice after all (I couldn't help myself). So you can take any single cycle wav file, upload it, use the Web Audio API to decode it into an array of floats, use jsfft to convert that to real/imag FFT outputs, and then plug those new values into the PeriodicWave, and bam. Custom waveforms for your oscillator. Much easier than I initially realized.
Interactive training apps for modern musicians
Building Blocks – DAW-Based Composition and Music Theory http://bit.ly/2OoU99N
Syntorial – Synthesis - http://bit.ly/2LPwD3E

Post Reply

Return to “DSP and Plugin Development”