Old 08-06-2016, 03:59 AM   #1
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default JSFX: Ze Cheesy Harmonic Synth

Here we go.
This implements an additive synthesizer based on 16 sequency Walsh functions (instead of frequency sine waves).

Those were used in the first commercially available synth, the RMI hamonic synth. Walsh functions used in the RMI synth.


"Ze Cheesy Harmonic Synth" uses third order DPW for antialiasing (low cpu, quite efficient and sounds good to my personal taste).
Code:
desc:Ze Cheesy Harmonic Synth rev 00
/* T.Rochebois 08/2016
  WT code based on code developped at IEF/AXIS lab around 1997.
  Walsh function generation based on patent US3878749 by Allen Organs/RMI (1975)
*/
slider1:0<0,1,0.001>Seq. 1
slider2:0.4<0,1,0.001>Seq. 2
slider3:0<0,1,0.001>Seq. 3
slider4:0.2<0,1,0.001>Seq. 4
slider5:0<0,1,0.001>Seq. 5
slider6:0.2<0,1,0.001>Seq. 6
slider7:0<0,1,0.001>Seq. 7
slider8:0<0,1,0.001>Seq. 8
slider9:0.2<0,1,0.001>Seq. 9
slider10:0.3<0,1,0.001>Seq. 10
slider11:0<0,1,0.001>Seq. 11
slider12:0<0,1,0.001>Seq. 12
slider13:0<0,1,0.001>Seq. 13
slider14:0<0,1,0.001>Seq. 14
slider15:0.3<0,1,0.001>Seq. 15
slider16:0.6<0,1,0.001>Seq. 16

slider22:0.4<0,1>Vibrato
slider23:10<0.2,10>Glide rate
// ___________________________________________________________________
@init
function WSH_init()
  instance(sal) local(seq x x0 x1 x2 x3 x4)(
  sal  = ad; ad += 32*16;
  x = 0; loop(32,
    x0 =  (x& 1)    ?1:-1;
    x1 = ((x& 2)>>1)?1:-1;
    x2 = ((x& 4)>>2)?1:-1;
    x3 = ((x& 8)>>3)?1:-1;
    x4 = ((x&16)>>4)?1:-1;
    sal[x + 32 *  0] =             x4;
    sal[x + 32 *  1] =          x3   ;
    sal[x + 32 *  2] =       x2*x3*x4;
    sal[x + 32 *  3] =       x2      ;
    sal[x + 32 *  4] =    x1*x2*   x4;
    sal[x + 32 *  5] =    x1*x2*x3   ;
    sal[x + 32 *  6] =    x1   *x3*x4;
    sal[x + 32 *  7] =    x1         ;
    sal[x + 32 *  8] = x0*x1      *x4;
    sal[x + 32 *  9] = x0*x1   *x3   ;
    sal[x + 32 * 10] = x0*x1*x2*x3*x4;
    sal[x + 32 * 11] = x0*x1*x2      ;
    sal[x + 32 * 12] = x0   *x2   *x4;
    sal[x + 32 * 13] = x0   *x2*x3   ;
    sal[x + 32 * 14] = x0      *x3*x4;
    sal[x + 32 * 15] = x0            ;
    x += 1;
  );
);
function PIWT_init(nMax) instance(n x y z w dp _dp _dp3) (
  this.nMax = nMax;
  n = nMax;
  x = ad; ad += n;
  y = ad; ad += n;
  z = ad; ad += n;
  w = ad; ad += n;
  dp = n*440/srate;
  _dp = 1 / dp; 
  _dp3 = _dp * _dp * _dp;
);
// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
function PIWT_dcRemove(t n) local(i m)(
  m = 0;  i = 0; loop(n, m += t[i]; i += 1; );
  m /= n; i = 0; loop(n, t[i] -= m; i += 1; );
);
// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
function PIWT_norm(t n) local(i m)(
  m = 0;  i = 0; loop(n, m = max(t[i], abs(m)); i += 1; );
  m = 1.1/(m+0.1); i = 0; loop(n, t[i] *= m; i += 1; );
);
// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _   
function PIWT_integ()
  instance(x n y z w z y x)
  local(i)(
  PIWT_dcRemove(x, n);
  i = 0; loop(n-1, y[i+1] = y[i] + x[i];                i += 1;  );
  PIWT_dcRemove(y, n);
  i = 0; loop(n-1, z[i+1] = z[i] + y[i] + (1/2) * x[i]; i += 1;  );
  PIWT_dcRemove(z, n);
  i = 0; loop(n,
    y[i] *= 1/2;
    x[i] *= 1/6;
    i < n-1 ? w[i+1] = w[i] + z[i] + y[i] + x[i];
    i += 1;
  );
  PIWT_dcRemove(w, n);
);
// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
// Call before aProc if there is a discontinuity of dp _dp
function PIWT_disc() 
  instance(n dp _dp _dp3 p out w z y x w0 w1 w2) local(p0 a)(
  p -= 2*dp; p += n * (p < 0); p -= n * (p >= n); p0 = p|0; a = p - p0; 
  w0 = w[p0] + a * (z[p0] + a * (y[p0] + a * x[p0]));
  
  p += dp; p -= n*(p>=n); p0 = p|0; a = p-p0;
  w1 = w[p0] + a * (z[p0] + a * (y[p0] + a * x[p0]));
  
  p += dp; p -= n*(p>=n); p0 = p|0; a = p-p0;
  w2 = w[p0] + a * (z[p0] + a * (y[p0] + a * x[p0]));
);
// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
function PIWT_aProc()
  instance(n dp _dp _dp3 p out w z y x w0 w1 w2 w3) local(p0 a)(
  p += dp; p -= n*(p>=n); p0 = p|0; a = p-p0;
  w3 = w[p0] + a * (z[p0] + a * (y[p0] + a * x[p0]));
  out = (w3 - w0 + 3 * (w1 - w2)) * _dp3;
  w0 = w1; w1 = w2; w2 = w3;
  out;
);
// ___________________________________________________________________
// Init the wave table
_srate = 1 / srate;
piwt.PIWT_init(32);
wsh.WSH_init();
dpLfo = 2*$pi*5.5*32/srate;

// ___________________________________________________________________
@slider
x = 0; loop(32,
  piwt.x[x] = slider1 * wsh.sal[x + 32 * 0];
  seq = 1;loop(15,
    piwt.x[x] += slider(seq + 1) * wsh.sal[x + 32 * seq];
    seq += 1;
  );
  x += 1;
);
PIWT_dcRemove(piwt.x,32);
PIWT_norm(piwt.x,32);
piwt.PIWT_integ();
piwt.PIWT_disc();
// ___________________________________________________________________
@block
while (midirecv(offset, msg1, msg23)) (
  msg2 = msg23 & 0x7F; msg3 = msg23 >> 8; status = msg1 & $xF0;
  status == $x80 ? ( status = $x90; msg3 = 0; );  // note off
  status == $x90 ? (                              // note on
    msg3 == 0 ? (msg2 == note ? gate = gate2 = 0; )
  : ( 
      note = msg2;
      dpc = (piwt.n*440*_srate) * 2 ^ ((note - 69) * (1/12));
      gate2 == 0 ? (dpg = dpc;);
      gate2 = msg3 * (1/127);
      gate = sqrt(gate2);   
    );
  );
  midisend(offset, msg1, msg23);
);
// ___________________________________________________________________
@sample
k <= 0 ? (
  k = 32;
  pLfo += dpLfo; pLfo -= 2*$pi*(pLfo>0);
  dpg  += 32*_srate*slider23 * (dpc - dpg);
  piwt.dp = dpg * (1+ slider22*0.05*sin(pLfo));
  piwt._dp = 1 / piwt.dp;
  piwt._dp3 = piwt._dp * piwt._dp * piwt._dp;
  piwt.PIWT_disc();
);
k -= 1;
env += (gate>env ? 0.01: 0.0001) * (gate - env);
spl0 = spl1 = min(10,max(-10,env*piwt.PIWT_aProc()));
Next step: ADSR enveloppe

Here is a short demo with vibrato/tremolo and antialiasing (+5 octaves at the end of the demo).
https://soundcloud.com/thierry-roche...cheesyharmo-02
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...

Last edited by Smashed Transistors; 08-09-2016 at 01:26 PM.
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 07:50 AM   #2
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Ripe.
IXix is offline   Reply With Quote
Old 08-06-2016, 08:15 AM   #3
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

It would be great to have your plugins ReaPack compatible. It's too easy to miss these goodies if you don't check the forum every day.

It's really easy to make your JS plugins ReaPack ready, just add a header to the plugin and put it on Github. You can fork the ReaTeam repository if you don't want to set up your own, which makes things easier.

I put the first jsfx in ReaPack through reateam so I can help if you need it.
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-06-2016, 10:54 AM   #4
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Hi

I'm having a look at this... i'll try it... i've never used github so i hope i won't do anything wrong.

I usually post stuff that are still experimental stage in the forum and upload some of the "finished" work in the reaper stash.
I think that a github repository can be very useful for stuff that are in between.

I may take some time to pack most of my stuff and add some documentation and make sort of a bundle.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 11:04 AM   #5
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Hi,

I made a branch (TiaR)
but I get "Sync failed to push local changes It seems you do not have permission to push your changes to this repository".

__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 01:22 PM   #6
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

OK I see you forked the JSFX folder

Make sure you've got the header filled out

https://github.com/cfillion/reapack-index/wiki/Examples

When you upload you can make a folder by entering /Synthesizers/*yourfilename.jsfx*

If you hit backspace in the text field you can rename the folder.




Be very careful with keeping the header consistent with formatting.

Then commit changes and hit the pull request button. Cfillion will check if it's ready for next update.
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-06-2016, 01:38 PM   #7
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Excuse me but i do not know where is "Copy and paste this URL in Extensions > ReaPack > Import a repository:"

What "Extensions > ReaPack > Import a repository" ?
Is that in the github software, on the github web page ? some other software ?
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 01:48 PM   #8
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

Quote:
Originally Posted by Smashed Transistors View Post
Excuse me but i do not know where is "Copy and paste this URL in Extensions > ReaPack > Import a repository:"

What "Extensions > ReaPack > Import a repository" ?
Is that in the github software, on the github web page ? some other software ?
That's inside reaper, in the reapack extension.

If you submit to ReaTeam you don't need to do that step. If you don't then you have to generate your own index file. Was too complicated for me.

http://reapack.com/

Video overview
https://www.youtube.com/watch?v=XjoDu_32ljI



more info / tip & tricks video
https://www.youtube.com/watch?v=9aQNCNGBF-c
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-06-2016, 02:37 PM   #9
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

OK, i think i got it. Thank you very much, your videos are really great !

I added a "header" to my jsfx that way:
Code:
/**
 * JSFX Name:ZeCheesyHarmo_01
 * About:
 *  An additive synth based on Walsh functions 
 * Author: T.Rochebois
 * Licence: LGPL
 * REAPER: 5.0
 * Version: 0.1
 */

/**
 * Changelog:
 * v0.1 (2016-08-05)
    added    additive outputs (so that you can chain synths)
    added    gfx waveform
    added    adsr enveloppe : with log Attack Decay Release times
    improved Glide rate range
    added    Detune (semitones)
    added    vibrato rate
    added    pan
    added    gain (dB)
 */
 desc:Ze Cheesy Harmonic Synth 01
Hope it's OK...

I created a TiaR directory under JSFX and i did a pull request.
I'm not sure what happens next ?
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...

Last edited by Smashed Transistors; 08-06-2016 at 02:49 PM.
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 03:05 PM   #10
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

Quote:
Originally Posted by Smashed Transistors View Post
Hope it's OK...

I created a TiaR directory under JSFX and i did a pull request.
I'm not sure what happens next ?
Yes that looks good. You can also add a link to this thread in the header if you want.

I think "Synthesis" directory would be best, it's already on of the JS categories use by reaper installer. But then there are also a variety of effects in the 'stillwell' folder too.

What's next? wait for accept of reject from Cfillion. If approved it will instantly available to all ReaPack users. That is very exciting I think!
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-06-2016, 03:18 PM   #11
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

OK,
if it works, I will upload a selection of jsfx in "release" state.

Thanks again.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 03:22 PM   #12
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

I merged your pull request, but I don't know what to do next.
I tried to run the reapack indexer, but that didn't seem to work.

There's probably something I need to change/edit on my computer, because JSFXs are installed in different location than ReaScripts?
spk77 is offline   Reply With Quote
Old 08-06-2016, 03:33 PM   #13
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Quote:
Originally Posted by spk77 View Post
I merged your pull request, but I don't know what to do next.
I tried to run the reapack indexer, but that didn't seem to work.

There's probably something I need to change/edit on my computer, because JSFXs are installed in different location than ReaScripts?
I can't tell. On my PC they go to: C:\Users\User\AppData\Roaming\REAPER\Effects
The -12dB dim.jsfx from the utility/master seem to install itself properly on my PC.
Maybe i got something wrong with the header ?
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 03:53 PM   #14
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

It works now, thanks for the synth!
(I had to clone the Reateam/JSFX repository to my computer and run "reapack-index" -command from the local path on my computer)

Now Ze Cheesy Harmonic Synth is automatically available for all ReaPack users
spk77 is offline   Reply With Quote
Old 08-06-2016, 03:57 PM   #15
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

It works here too
Thanks spk77 !

Now people who want the new v0.1 of the Cheezy Harmo Synth have simply to follow the video tutorial from EpicSound above and use ReaPack.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-06-2016, 04:22 PM   #16
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 77
Default

Thanks SC! Interesting.

In the 1970's I lusted after an RMI Harmonic Synth and a Keyboard computer. In the pre-internet days it was hard to get info about such thangs.

Am sure Smashed Transistors knows this, but RMI made a promotional vinyl LP of demo songs, available mail-order. Some of it sounds pretty good to me even nowadays.

https://www.youtube.com/watch?v=D_VT4vXtu3U

https://www.youtube.com/watch?v=uN_MOfaPEHE

Interesting about the walsh transforms. On the harmonic synth, did each slider merely adjust the amplitude of each of 16 walsh waveforms? Or was there more to it?

Wonder if the polyphonic keyboard computer used walsh transforms internally? I'd assumed it was some kind of quick'n'dirty ifft or wavetable mechanism. Timbres could be encoded on hollerith cards or some equivalent.

Some of the parent company Allen classical organs used the same early poly synth technology. You could get from Allen program cards supposedly reproducing the timbre of various famous pipe organs. Back in the stone age an Allen technician told me that the original tech was developed in fortran, but dunno if he knew of what he spoke.
jcjr is offline   Reply With Quote
Old 08-06-2016, 04:38 PM   #17
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

https://youtu.be/MsEoUVWS59M

I think that there is a resistor matrix to combine lower walsh functions so that the lower "harmonics" look like sinewaves... but i'm not sure. That was a classical application of the walsh function in those times:
A sine wave based on 4 walsh sequances


I'll try to get my hands on some schematics to check that out.

The 17th slider is a smoothing filter, i don't know what it really is.

Anyway one of the key to the cheesy sound is that the "wavetables" are 32 steps long. And that's the sound i wanted

I think that another strange thing about this synth is the unusual "sync" mode of the second generator... if anybody here have some schematics ;-) i'll study that.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...

Last edited by Smashed Transistors; 08-07-2016 at 02:42 PM.
Smashed Transistors is offline   Reply With Quote
Old 08-07-2016, 01:40 AM   #18
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Quote:
Originally Posted by spk77 View Post
It works now, thanks for the synth!
(I had to clone the Reateam/JSFX repository to my computer and run "reapack-index" -command from the local path on my computer)

Now Ze Cheesy Harmonic Synth is automatically available for all ReaPack users
On the github/reapack i have info about the .jsfx files, but how .jsfx-inc are managed ?
How are managed Data files (such as image files or wav files that are resources to the jsfx) ?
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-07-2016, 04:44 AM   #19
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Quote:
Originally Posted by Smashed Transistors View Post
On the github/reapack i have info about the .jsfx files, but how .jsfx-inc are managed ?
How are managed Data files (such as image files or wav files that are resources to the jsfx) ?
I'm not sure how it should be done, but I tested it a little bit and it seems to work like this:

I made a temporary JSFX and pushed it to the reapack repo.

There's
  • a main JSFX file: spk77_temporary fx.jsfx
  • and a subfolder: spk77_temporary fx files containing two files:
    • spk77_temp_inc_file.jsfx-inc
    • spk77_volthumb_47x21.png


Main file header looks like this:
Code:
/**
 * JSFX Name:temporary fx
 * About:
 *  temporary fx, will be deleted
 * Author: spk77
 * Licence: LGPL
 * REAPER: 5.0
 * Version: 0.1
 * Provides:
 *  spk77_temporary fx.jsfx
 *  spk77_temporary fx files/spk77_temp_inc_file.jsfx-inc
 *  spk77_temporary fx files/spk77_volthumb_47x21.png
 */

/**
 * Changelog:
 * v0.1
 */

and this is the "spk77_temp_inc_file.jsfx-inc" file header:

Code:
/**
* NoIndex: true
*/
spk77 is offline   Reply With Quote
Old 08-07-2016, 05:00 AM   #20
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Package Tags https://github.com/cfillion/reapack-...-Documentation


@noindex
Code:
Disable indexing for this file. Set this on included files that should not be distributed alone.

@noindex

NoIndex: true

@provides
Code:
Add additional files to the package. This is also used to add platform restrictions or set a custom download url (by default the download url is based on the "origin" git remote). These files will be installed/updated together with the package.

@provides
  Images/background.png
  Images/fader_*.png

Provides: [data] unicode.dat

Code:
Settings for the current package itself can be set either by using its file name or a dot:

-- this is a lua script named `hello_osx.lua`
-- @provides
--   [darwin] hello_osx.lua

-- @provides
--   [darwin] .
spk77 is offline   Reply With Quote
Old 08-07-2016, 08:44 AM   #21
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

I spent way too many hours playing with this synth last night!

I used sequencer baby, js arpeggio, before the synth and JS graphical waveshaper after and into a spring reverb.

Seriously hours and didn't record any of it LOL :CRY:
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-07-2016, 11:37 AM   #22
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Quote:
Originally Posted by EpicSounds View Post
I spent way too many hours playing with this synth last night!

I used sequencer baby, js arpeggio, before the synth and JS graphical waveshaper after and into a spring reverb.

Seriously hours and didn't record any of it LOL :CRY:
I agree, this thing with the waveshaper makes some crazy sounds! So much fun!
I threw on Ze Big Chorus after them for further wildness.

Thanks for this ST!

argee
argee is offline   Reply With Quote
Old 08-07-2016, 11:41 AM   #23
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

Quote:
Originally Posted by argee View Post
I agree
are you agree or argee?
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-07-2016, 11:44 AM   #24
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Quote:
Originally Posted by EpicSounds View Post
are you agree or argee?
Ha! I guess I could be both!
argee is offline   Reply With Quote
Old 08-07-2016, 01:48 PM   #25
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

I'll continue to put updates in the ReaTeam repository (to add support for ModWheel/Aftertouch and Pitch bend). But i think it won't evolve too much.

By now, has i have not much dev time (1h per day) i have to choose what i'll do next.
  1. A MIDI controlled filter (that can be chained with ze cheesy harmo synth)
  2. Ze Cheesy Harmonic Organ : a fully polyphonic version.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-07-2016, 02:53 PM   #26
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Quote:
Originally Posted by argee View Post
I agree, this thing with the waveshaper makes some crazy sounds! So much fun!
I threw on Ze Big Chorus after them for further wildness.

Thanks for this ST!

argee
Hi argee

try seq1=1 seq2=0.5 seq4=0.25 seq8=0.125 and seq16=0.625 with an organ like envelope and a little vibrato.
along with Ze Big Chorus with "Modulated Big Reverb" preset...

this produces a very nasty kind of saw tooth
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-07-2016, 03:23 PM   #27
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Cool! Thanks again ST!

argee
argee is offline   Reply With Quote
Old 08-07-2016, 03:33 PM   #28
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

Just get your already built stuff (Stereo chop chop etc) set up with the headers and added to ReaPack & I'll be happy.
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-08-2016, 01:23 AM   #29
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

The Reapack indexer didn't catch the version change - I'll take a look when I get back home from work.
spk77 is offline   Reply With Quote
Old 08-08-2016, 09:58 AM   #30
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Quote:
Originally Posted by spk77 View Post
The Reapack indexer didn't catch the version change - I'll take a look when I get back home from work.
Mpl fixed it already

@Mpl,
did you just run "reapack-index" command from your local ReaTeam/JSFX repo or how did you get the reapack indexer to "see" the version update (for Ze Cheesy Harmonic Synth)?
I see that you reordered the folder structure - it's much better now.
spk77 is offline   Reply With Quote
Old 08-08-2016, 11:45 AM   #31
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

spk77, changed synthax only and yes, just run reapack-index
I noticed that for some reason "@" synthax works and previous "*" don`t.
mpl is offline   Reply With Quote
Old 08-08-2016, 11:50 AM   #32
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

I`ll add today some other synths and change names a bit to make paths and FX Browser view more clear than now. I also started developing script for auto sorting VST/JS plugins by category automatically depend on name of their paths (so it create new folders in "Favourites" and search/put plugins there): early prototype

oh, and sorry - these 2-3 days reapack JS part will get some changes. I do that to find better solution for naming/sharing/showing in browser before this repo will grow. So it will be sort of standart for naming. After 3-4 days it will be better to just delete ReaPack JSFX folder and syncronise repositories again.

Last edited by mpl; 08-08-2016 at 11:58 AM.
mpl is offline   Reply With Quote
Old 08-08-2016, 02:48 PM   #33
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Thanks Michael for the great job ! I'll take some time next week end to look into details.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-09-2016, 08:27 AM   #34
IgorOlestra
Human being with feelings
 
Join Date: Feb 2015
Posts: 3
Default Synth won't "note off" using on-screen keyboard

Hello! Apologies in advance for what may be an irritatingly noob question, but I am having an issue with this synth's notes sustaining indefinitely. I am trying the plugin out using the onscreen computer keys, and it doesn't seem to get a "note-off". I thought it may be that I had to adjust the ADSR amp. envelope, but that doesn't seem to solve the problem. Does anyone have any suggestions?
Thanks, hvala, ありがとう, спасибо, etc. etc. etc. in advance!

Mac OSX.11, Reaper 5.22. Plugin was installed via Reapack.
IgorOlestra is offline   Reply With Quote
Old 08-09-2016, 01:25 PM   #35
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Oups, my bad,

I think it's a mistake i made in the current version on the github/reapack.

Edit the code and look at the @block
It must look like:
Code:
@block
while (midirecv(offset, msg1, msg23)) (
  msg2 = msg23 & 0x7F; msg3 = msg23 >> 8; status = msg1 & $xF0;
  status == $x80 ? ( status = $x90; msg3 = 0; );  // note off
  status == $x90 ? (                              // note on
    msg3 == 0 ? (
I think that the error can be here.

There must be a ";" before "// note off"
Code:
  status == $x80 ? ( status = $x90; msg3 = 0; );  // note off
and no ":" at the beginning of this one.
Code:
  status == $x90 ? (                              // note on

I commited a corrected version to the github master branch... but i fail to push the changes when i try to Sync.
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...

Last edited by Smashed Transistors; 08-09-2016 at 02:09 PM.
Smashed Transistors is offline   Reply With Quote
Old 08-09-2016, 08:55 PM   #36
IgorOlestra
Human being with feelings
 
Join Date: Feb 2015
Posts: 3
Default

I edited the code, and now it works! Thank you, and thanks for such a cool synth!
IgorOlestra is offline   Reply With Quote
Old 08-09-2016, 10:33 PM   #37
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Wow, thanks for uploading these effects on ReaTeam's JSFX repository!

Quote:
I commited a corrected version to the github master branch... but i fail to push the changes when i try to Sync.
This is probably happening because the same part of the file was modified by someone else on the repository while you made your changes and there is a conflict.

A quick and dirty solution is to simply delete your local copy & restart from a fresh one.
A better solution is to find what is wrong (google has plenty of tutorials on that dark side of git) and resolve the conflict manually.

EDIT: https://help.github.com/articles/res...-command-line/
EDIT2: It's easier to keep up-to-date with other's changes when using branches instead of using master directly. https://help.github.com/desktop/guid...g-your-branch/.

Last edited by cfillion; 08-09-2016 at 11:07 PM.
cfillion is offline   Reply With Quote
Old 08-09-2016, 11:06 PM   #38
Smashed Transistors
Human being with feelings
 
Smashed Transistors's Avatar
 
Join Date: Jul 2014
Location: Là bas les huîtres (FR)
Posts: 424
Default

Hi cfillion,

thanks for the great job.
I've tried that but it did not work.

I think Michael still works on the files, i will wait he is finished
(in the meanwhile i'll try to read stuff about github and reapack).
__________________
JSFX plugins and synths. See you here and there: SoundCloud, Youtube, Google Play...
Smashed Transistors is offline   Reply With Quote
Old 08-10-2016, 01:06 AM   #39
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Smashed Transistors, cfillion fixed all I did wrong. So I think here my contributions finished (I`m not a JS coder actually, just tried to make JSFX repo a bit cleaner and looks more logically then Reaper-included structure, without mess with folders names (category/author) ). I added before PW synth Mark II also, but there was something with header synthax. After cfillion merge his branch to master you can use existed header in your JS to add synth by youself as template/example.

There was also Granular Terrain Synthesizer and ZeStringsThing - first one I could get to work and the last one I let you to add by yourself.
Also me as a pretty bad coder and pretty newbie with Github pushed commits directly to master branch. From now I`ll try to do everything via branches system as it was designed by Github and as cfillion recommend.
mpl is offline   Reply With Quote
Old 08-10-2016, 08:46 AM   #40
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by Smashed Transistors View Post
I think that there is a resistor matrix to combine lower walsh functions so that the lower "harmonics" look like sinewaves... but i'm not sure. That was a classical application of the walsh function in those times:
A sine wave based on 4 walsh sequances
Interesting!
Tale 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:42 AM.


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