Old 12-13-2023, 07:32 AM   #1
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default JSFX JSAdditiv

Polyphonic additive synthesizer



Features:

* Wavetable oscillator that reads single cycle waveforms from disk
* Additive synthesis engine that allows to modify the wave
* Wave editors for harmonics amplitude and phase
* 8 voices unison engine
* Pitch, amplitude and filter adsr

Installation

Import the following link into Reapack repositories:
Code:
https://raw.githubusercontent.com/tiagolr/tilr_jsfx/master/index.xml

Last edited by tilr; 01-07-2024 at 12:17 PM.
tilr is offline   Reply With Quote
Old 12-13-2023, 07:33 AM   #2
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Note on linux at least it has a bug where on init the first waveform is not loaded by default, let me know if it happens on Mac too, thanks.
tilr is offline   Reply With Quote
Old 12-13-2023, 12:05 PM   #3
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Hi. Amazing synth. I try add new waves - its work
when change harmonic or phase - on play is reset
(need add to @init ext_noinit = 1
Thanks
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 12:14 PM   #4
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

If add harmonic to custom wave second add same harmonic = noise
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 12:32 PM   #5
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
Hi. Amazing synth. I try add new waves - its work
when change harmonic or phase - on play is reset
(need add to @init ext_noinit = 1
Thanks
Thanks, it does reset, will try and apply that fix, about your second point about noise when adding a second harmonic I cannot reproduce, maybe its the volume clipping?
tilr is offline   Reply With Quote
Old 12-13-2023, 12:50 PM   #6
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Behevior (with ext_noinit)change harmonics than touch any knob = harmonics changes (sound change!)
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 01:03 PM   #7
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

"about your second point about noise when adding a second harmonic I cannot reproduce, maybe its the volume clipping?"

first add 1 harm ad many harmonics same level
second change same harm = noise
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 01:11 PM   #8
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
"about your second point about noise when adding a second harmonic I cannot reproduce, maybe its the volume clipping?"

first add 1 harm ad many harmonics same level
second change same harm = noise
Still cannot replay, does it happen only with that waveform? Maybe its too large for the FFT sizes (I set it to max 4096), can you drop that waveform here?
tilr is offline   Reply With Quote
Old 12-13-2023, 01:16 PM   #9
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Yes its only with this wave (i load 1 only)
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 01:33 PM   #10
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
Yes its only with this wave (i load 1 only)
Can you upload it here? Maybe its fixable by increasing the FFT size
tilr is offline   Reply With Quote
Old 12-13-2023, 01:52 PM   #11
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Its guiro percussion 0.5 sec long
About harmonics - in abletons operator there is user (blank) wave
and if you load any wave and change it -wave becomes user (no harm - no sound)
in additiv that behevior only with sine_1 wave, other : no harm -is sound
SNJUK2 is offline   Reply With Quote
Old 12-13-2023, 02:01 PM   #12
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
Its guiro percussion 0.5 sec long
About harmonics - in abletons operator there is user (blank) wave
and if you load any wave and change it -wave becomes user (no harm - no sound)
in additiv that behevior only with sine_1 wave, other : no harm -is sound
0.5 sec is probably too long for FFT 4096, if you want change the code to higher probably fixes the issue, I may patch aswell and support larger waveforms.

When clearing all harmonics still produces some sound indeed, something to fix.

EDIT: I'm going to wait a few more issues before uploading a new PR
Here is where you can change the FFT size, it will go into new PR
Line 120 change to
Code:
  window = 512 >= len ? 512
         : 1024 >= len ? 1024
         : 2048 >= len ? 2048
         : 4096 >= len ? 4096
         : 8192 >= len ? 8192
         : 16384 >= len ? 16384
         : 32768;

Last edited by tilr; 12-13-2023 at 02:10 PM.
tilr is offline   Reply With Quote
Old 12-14-2023, 01:30 AM   #13
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,784
Default

Quote:
Originally Posted by tilr View Post
Maybe its too large for the FFT sizes (I set it to max 4096), can you drop that waveform here?
Is it based on FFT ?

Does that not introduce too much latency for live playing ?
mschnell is offline   Reply With Quote
Old 12-14-2023, 02:48 AM   #14
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by mschnell View Post
Is it based on FFT ?

Does that not introduce too much latency for live playing ?
It computes only when the wave changes, so its pretty smooth. The unison is quite a CPU hog though.
tilr is offline   Reply With Quote
Old 12-14-2023, 08:51 AM   #15
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Hi.
Code:
function normalize_wave(buf, len)
local (_min, _max, i) ( 
window = 512 >= len ? 512
        : 1024 >= len ? 1024
        : 2048 >= len ? 2048
        : 4096 >= len ? 4096
        : 8192 >= len ? 8192
        : 16384 >= len ? 16384
        : 32768;
  _min = 1;
  _max = -1;
  loop(i = 0; len,
    _min = min(_min, buf[i]);
    _max = max(_max, buf[i]);
    i += 1;
  );
  loop(i = 0; len,
    buf[i] = 2 * ((buf[i] - _min) / (_max - _min)) -1;
    i += 1;
  );
);
I change that - nothing changes
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 09:07 AM   #16
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
Hi.
Code:
function normalize_wave(buf, len)
local (_min, _max, i) ( 
window = 512 >= len ? 512
        : 1024 >= len ? 1024
        : 2048 >= len ? 2048
        : 4096 >= len ? 4096
        : 8192 >= len ? 8192
        : 16384 >= len ? 16384
        : 32768;
  _min = 1;
  _max = -1;
  loop(i = 0; len,
    _min = min(_min, buf[i]);
    _max = max(_max, buf[i]);
    i += 1;
  );
  loop(i = 0; len,
    buf[i] = 2 * ((buf[i] - _min) / (_max - _min)) -1;
    i += 1;
  );
);
I change that - nothing changes
Hum there should be a window code on `function synthesize(buf, len)` not `function normalize_wave`, again may be easier if you upload guiro-01.wav here I'll have a look

EDIT: sorry about the wrong line number
tilr is offline   Reply With Quote
Old 12-14-2023, 09:17 AM   #17
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

Ok change function synthesize(buf, len)
if change harm - nothing happens ,sound not changed
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 09:20 AM   #18
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

and CPU Up x 6
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 09:23 AM   #19
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

https://drive.google.com/file/d/142I...usp=drive_link
sample
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 09:34 AM   #20
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

You need lfo ,becouse if use PM lfo not possible save preset
and why needed 31 bookmarks in harm/phase ?

Last edited by SNJUK2; 12-14-2023 at 09:44 AM.
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 09:39 AM   #21
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
You need lfo ,becouse if use PM lfo not possible save preset
Not sure I follow, can you translate that , saving presets works here with custom waves.

About the other issues, thanks for reporting, I'm also finding the same problem with guiro.wav, the CPU stays normal but editing the partials nothing happens, only thing I notice is that the wave is too big for FFT at 75Kb, still editing should work, will try to fix this and other issues you found. Thanks.
tilr is offline   Reply With Quote
Old 12-14-2023, 09:44 AM   #22
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
You need lfo ,becouse if use PM lfo not possible save preset
and why needed 31 bookmarks in harm/phase ?
and need global pitch
I understand now the lfo preset, the 31 slots for harm/phase is ceil( 1024 (FFT harmonics) / 34 (displayed harmonics) ) = 31 slots

Global pitch sure I got that request before aswell.
tilr is offline   Reply With Quote
Old 12-14-2023, 10:23 AM   #23
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

about lfo - its sound design
you make sound - need lfo (for example filter cutoff
How to make lfo at cutoff and then save synth preset?
Param Modulation lfo dont saved at preset
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 10:35 AM   #24
SNJUK2
Human being with feelings
 
SNJUK2's Avatar
 
Join Date: Feb 2017
Location: Zhytomyr,Ukraine
Posts: 449
Default

31 slots for harm/phase is ceil( 1024 (FFT harmonics) / 34 (displayed harmonics) ) = 31 slots
Sorry ,but i think its not user frendly

Its just my opinion. Thanks
SNJUK2 is offline   Reply With Quote
Old 12-14-2023, 10:43 AM   #25
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Quote:
Originally Posted by SNJUK2 View Post
about lfo - its sound design
you make sound - need lfo (for example filter cutoff
How to make lfo at cutoff and then save synth preset?
Param Modulation lfo dont saved at preset
Makes sense

Quote:
Sorry ,but i think its not user frendly
Agree, for less harmonics would have to truncate the harmonic count, if you look at serum for example it retains all harmonics, its not as user friendly as Operator but still think its good enough.

About the other problems I'm still struggling to figure out what causes them. Guess I'll need to understand the FFT library I'm using better to be able to debug.
tilr is offline   Reply With Quote
Old 12-14-2023, 11:39 AM   #26
tilr
Human being with feelings
 
Join Date: Oct 2023
Posts: 243
Default

Fixed the problem with large wave files (eg. guiro-01.wav), will be uploaded next version.
The problem with no harm no sound is that there is residual harmonics in those waves it just does not show on the display, pressing ctrl+click on the harmonics removes all sound from the wave.
The third problem is when removing all harmonics except fundamental it does not produce a pure sine wave for some reason, not sure I can fix this.
tilr is offline   Reply With Quote
Old 12-14-2023, 02:26 PM   #27
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,784
Default

Quote:
Originally Posted by tilr View Post
It computes only when the wave changes,.
Perfect !
mschnell is offline   Reply With Quote
Old 04-05-2024, 07:47 AM   #28
mequaz
Human being with feelings
 
Join Date: Jul 2008
Posts: 48
Default Love the synth

But alas I'm not synth programmer 😅🤷‍♂️. Any presets any one can share for some of these synths?
mequaz is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 06:16 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.