an oscillator with a limited amount of waveforms now belongs to the past!
I've added some more sculpting toys (an harmonic sine generator to add harmonics to the current waveform) and a progressive "changer (the longer you hold the button, the more it gets changed->saves you lots of whrist-pain).
and a fast update, the module just got really awesome! XD
While holding down the "sine" button, you now progressively add an harmonic series to the existing waveform. This can be done realtime without bleeping! Depending on the parameters, you can set the amount of harmonics in the series, their even/odd phase-offset and the harmonic-spreading of the series.
NEW MODULE:
OSC
"sculptor"
-sculptor is based on wavetable synthesis and uses a table to save it's waveforms.
-each waveform is 1024 samples long.
-pressing the "clear" button will clear the current table->no sound!
-holding "sine" will progressively add sine-waves to the existing table.
-The "harmonic" box sets the start harmonic the first added sine will be on.
-Even/odd harmonics have a # degrees phase shift depending on the "phase" box.
-Each higher harmonic will be of a lower volume than the previous lower harmonic (quarter of the volume less then the previous one).
-"jump" sets the harmonic-spreading between each extra sine that's added while holding down the "sine" button.
-"steps" sets the count-max for the amount of sines you want to add, before the count starts again and just adds the same ros of harmonics again, saturating the volume of these harmonics.
-don't forget to push "normalise" and "dcRemove" every once in a while, so the waveform doesn't become too "hot".
-holding change will progressively add small random shapes to the current waveform.
-pressing the "randomise" button will randomise the waveform.
-though the randomised waveform is full of harmonics, holding the smooth-button will progressively smooth out the waveform by averaging each point in the table with another point that has a selectable offset position to the table-position being avaraged ("with" parameter).
-with the "with" parameter you select with which other position you average the selected table position (which is in a "for-loop", so all table positions are being recalculated after each other.
So if "with" is set to 1, each point will be averaged with the next one. If set to 5, each point will be averaged with a point 5 steps next to it. The higher you go, the more you alter the harmonic content: notch or upper harmonic creation.
-after sculpting, you can subtract any DC-offset from the table and normalise the waveform.
-if you have your waveform, you save it using the "save" button to any of the available preset-positions (preset box) (depending on the table-size you have set on the allocation module). I set mine to 524288, which allows me to store up to 512 waveforms!
-to load a waveform, select a preset number and press "load". (REMEMBER!! you need to have a filled table-allocation module to load the waveform from!! If there isn't one yet, it can't find anything and thus won't load anything! In this case (first time you use this module), you first have to make your own table!)
-"morph" sets the rate the current table is morphed into the next selected preset after you hit "load". This is done by fading between 2 arrays and updating them one by one. NOTE! If you hit "load" before a new table is totally faded in, it will update the other and thus immediately change the sound instead of morphing it! Don't worry though, it won't bleep!
NOTE! To be able to actually save your waveforms, you need to add the table-save and table-load modules from the axoloti table folder! This way you can reload your carefully created waveforms after shutdown!
-when you have a preset-file, load it into the table (loud long beep as always) and hit "load" on the "sculptor" oscillator. Now it loads the selected preset from the table WITHOUT A BEEP! For any of your other waveforms, you won't hear any beep while switching presets as long as you don't use the "table save/load" mechanism! (keep that for after your recording/liveset/etc)
-"softness" controls a lowpass filter, the higher the value, the more it dampens the sound.