Old 11-07-2015, 11:31 AM   #41
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20151107

I have just uploaded v20151107 of my JSFX Pack.

Changes:
  • wave: Optimised Catmull-Rom spline interpolation.
  • wave: Added Hermite, B-spline, 2nd-order-osculating interpolation.
  • wave: Fixed Lagrange interpolation.
Tale is offline   Reply With Quote
Old 11-10-2015, 03:04 AM   #42
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,891
Default

rats!

i heart rodents.
reapercurious is offline   Reply With Quote
Old 11-11-2015, 01:55 PM   #43
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

I updated the GUI version of the Mono/Poly synth in the stash. No visual change to the interface, but the mousewheel can now be used on the knobs without the need to hold down the left mouse button.

Note: anyone wanting to use the GUI version must also have downloaded Tale's JSFX pack for it to work as it includes all the referenced lib files.

cheers,

argee
argee is offline   Reply With Quote
Old 11-12-2015, 12:07 AM   #44
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
I updated the GUI version of the Mono/Poly synth in the stash. No visual change to the interface, but the mousewheel can now be used on the knobs without the need to hold down the left mouse button.
Cool, thanks.
Tale is offline   Reply With Quote
Old 11-14-2015, 07:24 PM   #45
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

OK, things have clearly gotten out of hand now - I added a keyboard just to see if I could do it.



this version is available here:
THE FILE IN THE STASH HAS BEEN REMOVED - THIS IS NOW PART OF TALE'S JSFX PACK. SEE THE LINK IN HIS SIGNATURE.

Having the note on/off functions already built in certainly made it easier.

The previous version is still available in the link in my post above this one.

I think I should stop now.

cheers,

argee

15/11/15: I've re-uploaded it now to fix a few minor bugs with the keyboard.

Last edited by argee; 11-16-2015 at 05:09 PM.
argee is offline   Reply With Quote
Old 11-15-2015, 07:42 AM   #46
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Quote:
Originally Posted by argee View Post
OK, things have clearly gotten out of hand now...
Nice work.
IXix is offline   Reply With Quote
Old 11-15-2015, 08:26 AM   #47
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
15/11/15: I've re-uploaded it now to fix a few minor bugs with the keyboard.
Cool! Meanwhile I have ported all recent (since v20150215) changes to your GUI version, so it now also has last-note priority etc.:

http://www.taletn.com/reaper/mono_sy...o_synthGUI.zip

Would it be OK if I include the GUI version as an option in my installer?
Tale is offline   Reply With Quote
Old 11-15-2015, 08:47 AM   #48
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Quote:
Originally Posted by Tale View Post
Would it be OK if I include the GUI version as an option in my installer?
Absolutely! I'm flattered that you want to include it.

cheers,

argee
argee is offline   Reply With Quote
Old 11-15-2015, 08:55 AM   #49
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
Absolutely! I'm flattered that you want to include it.
Great, thanks.

Note that there still is an issue with the GUI keyboard in poly mode and with a long release time (e.g. 1000 ms). If I hold down the mouse button and wildly move over the GUI keyboard, then I get hanging notes and even notes appearing out of nowhere. If I do the same using REAPER's Virtual MIDI Keyboard, then I don't get this, so I guess one of us should fix this...
Tale is offline   Reply With Quote
Old 11-15-2015, 09:01 AM   #50
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Ah, I see what you mean, it's an interesting "effect"

I'll see what I can do. I want to avoid modifying any of your code if I can just to keep things simpler, besides which I only have a basic understanding of how it works!

cheers,

argee

edit: I'm wondering if this could be a limitation of JS in that the notes are being triggered from the @gfx section which I believe runs 30 times per second?

Last edited by argee; 11-15-2015 at 09:19 AM.
argee is offline   Reply With Quote
Old 11-15-2015, 11:36 AM   #51
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Well, I've been trying various things without much success, so maybe better keep this one off the table for now.

For anyone wanting to use the keyboard, just bear in mind it works better in Mono mode and if you use it in Poly mode don't go crazy with the dragging!

cheers

argee
argee is offline   Reply With Quote
Old 11-16-2015, 03:27 AM   #52
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
I'm wondering if this could be a limitation of JS in that the notes are being triggered from the @gfx section which I believe runs 30 times per second?
Thanks for looking into this. Hmm yeah, that could well be. I think I will have a look.
Tale is offline   Reply With Quote
Old 11-16-2015, 05:31 AM   #53
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

I think I have fixed it:

Code:
diff --git a/mono_synthGUI b/mono_synthGUI
index 517ea1f..982a288 100755
--- a/mono_synthGUI
+++ b/mono_synthGUI
@@ -164,6 +164,8 @@ blackkeys[3] = 6;
 blackkeys[4] = 8;
 blackkeys[5] = 10;
 
+previewnote = savepreview = -1;
+
 function get_whtkeynote(getleft, base)
   local(oct, offset) (
   keynote = 0;
@@ -520,6 +522,12 @@ do_slidercode();
 
 @block
 
+previewnote != savepreview ? (
+  savepreview >= 0 ? note_off(savepreview);
+  previewnote >= 0 ? note_on(previewnote, 0.1);
+  savepreview = previewnote;
+);
+
 midiq.midiq_collect(midi_ch, 3|8|64);
 
 @sample
@@ -822,18 +830,9 @@ gfx_r=gfx_g=gfx_b=1;
 ly = 38;
 loop(32,
   mouse_x > ly && mouse_x < ly+16 && mouse_y > 414 && mouse_Y < 444 ? (
-    previewnote = get_whtkeynote(ly,basenote);
-    previewnote != savepreview ? (
-      note_off(savepreview);
-      start = 0;
-      savepreview = previewnote;
-    );
     mouse_cap == 1 && knobdrag == 0 ? (
+      previewnote = get_whtkeynote(ly,basenote);
       gfx_r=gfx_g=gfx_b=0.5;
-      start == 0 ? (note_on(previewnote,0.1); start = 1;);
-    ):(
-      note_off(previewnote);
-      start = 0;
     );
   ):(
     gfx_r=gfx_g=gfx_b=1;
@@ -849,18 +848,9 @@ gfx_r=gfx_g=gfx_b=0;
 loop(31,
   kn == 1 || kn == 2 || kn == 4 || kn == 5 || kn == 6 ? (
     mouse_x > ly + 9 && mouse_x < ly + 25 && mouse_y > 364 && mouse_Y < 414 ? (
-      previewnote = get_blkkeynote(ly,basenote);
-      previewnote != savepreview ? (
-        note_off(savepreview);
-        start = 0;
-        savepreview = previewnote;
-      );
       mouse_cap == 1 && knobdrag == 0 ? (
+        previewnote = get_blkkeynote(ly,basenote);
         gfx_r=gfx_g=gfx_b=0.3;
-        start == 0 ? (note_on(previewnote,0.1); start = 1;);
-      ):(
-        note_off(previewnote);
-        start = 0;
       );
     ):(
       gfx_r=gfx_g=gfx_b=0;
This moves the note_on()/note_off() calls out of @gfx into @block, i.e. out of the GUI thread into the audio thread.

EDIT: Uploaded patched mono_synthGUI:
http://www.taletn.com/reaper/mono_sy...o_synthGUI.zip

Last edited by Tale; 11-16-2015 at 09:12 AM. Reason: Uploaded patched mono_synthGUI
Tale is offline   Reply With Quote
Old 11-16-2015, 05:05 PM   #54
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Yes! Tale, you're awesome! It works great!

It didn't even occur to me that code could reside just as happily in the @block and @sample sections.

Thanks!

argee

edit: I think I'll remove the one I posted in the stash and it can just be a part of your package.
argee is offline   Reply With Quote
Old 11-16-2015, 09:01 PM   #55
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

I did discover one more little bug with held keys performing multiple triggering of the same note. I think I managed to fix that. I also added a little circular slider to adjust the MIDI velocity of the keyboard. I've attached the updated file here.

Thanks again for this great little synth! I use it all the time.

cheers,

argee
Attached Files
File Type: zip mono_synthGUI.zip (7.5 KB, 236 views)
argee is offline   Reply With Quote
Old 11-17-2015, 05:17 AM   #56
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
I did discover one more little bug with held keys performing multiple triggering of the same note. I think I managed to fix that. I also added a little circular slider to adjust the MIDI velocity of the keyboard. I've attached the updated file here.
Cool, thanks. However, now the last played GUI keyboard note seems to hang, both in mono and poly mode.

Quote:
Originally Posted by argee View Post
Thanks again for this great little synth! I use it all the time.
Good to hear!
Tale is offline   Reply With Quote
Old 11-17-2015, 07:34 PM   #57
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

OK, I THINK I've got it fixed now. It's weird, I wasn't experiencing the hung notes yesterday and yet today I did. It tests OK here, but I'll let you give it a shot too, maybe I've created some other issue.

It seems it was about where the "previewnote = -1" statement was placed in the @gfx section.

Here's hoping!

argee
Attached Files
File Type: zip mono_synthGUI.zip (7.5 KB, 217 views)

Last edited by argee; 11-17-2015 at 07:40 PM.
argee is offline   Reply With Quote
Old 11-20-2015, 02:02 PM   #58
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
OK, I THINK I've got it fixed now. It's weird, I wasn't experiencing the hung notes yesterday and yet today I did. It tests OK here, but I'll let you give it a shot too, maybe I've created some other issue.

It seems it was about where the "previewnote = -1" statement was placed in the @gfx section.
Almost there, but now I still get a hung note when moving the mouse cursor off of the GUI keyboard while holding a key.

The multiple triggering of the same note when holding a key was caused by @gfx temporarily resetting previewnote, and then while looping through the keys @block would see the previewnote change before @gfx could set it again.

So I have reverted your last fix, and I have come up with an alternate solution. In theory it could still go wrong, but thusfar I can't reproduce anymore.

http://www.taletn.com/reaper/mono_sy...o_synthGUI.zip
Tale is offline   Reply With Quote
Old 11-20-2015, 06:15 PM   #59
argee
Human being with feelings
 
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
Default

Ha! When I saw your post I looked at my version and realized what the culprit was.

This (at line 870) was supposed to take care of being off the keyboard:
Code:
mouse_x < 36 || mouse_x > 614 || mouse_y < 360 || mouse_Y > 444 && start == 1? (
  all_notes_off();
);
But with all the changes, the "start" variable is no longer being used, so it's never 1!

Removing that fixes the problem edit: although it's probably better to use "previewnote =-1" instead of "all_notes_off()"

Sounds like you've fixed it anyway.


cheers,

argee

Last edited by argee; 11-20-2015 at 06:25 PM.
argee is offline   Reply With Quote
Old 11-21-2015, 03:30 AM   #60
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by argee View Post
Ha! When I saw your post I looked at my version and realized what the culprit was.

This (at line 870) was supposed to take care of being off the keyboard:
Code:
mouse_x < 36 || mouse_x > 614 || mouse_y < 360 || mouse_Y > 444 && start == 1? (
  all_notes_off();
);
But with all the changes, the "start" variable is no longer being used, so it's never 1!
Ah, right!

Quote:
Originally Posted by argee View Post
Removing that fixes the problem edit: although it's probably better to use "previewnote =-1" instead of "all_notes_off()"
Yeah, because else it will cut off your MIDI notes all the time unless the mouse hovers over the GUI keyboard... And also because else it would stop all notes from playing, not just the single note that was be played on the GUI keyboard.

Anyway, all seems well now with your fixes applied.

Quote:
Originally Posted by argee View Post
Sounds like you've fixed it anyway.
IMHO your fix looks cleaner, so lets go with that. And the GUI part of the code is yours anyway, so...
Tale is offline   Reply With Quote
Old 11-21-2015, 04:09 AM   #61
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20151121

I have just uploaded v20151121 of my JSFX Pack, including mono_synthGUI.

Changes:
  • mono_synthGUI: Added GUI version of mono_synth (thanks argee!).
  • four: Limited harmonic count to half FFT size.
Tale is offline   Reply With Quote
Old 02-22-2016, 03:47 PM   #62
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20160222

I have uploaded v20160222 of my JSFX Pack.

Changes:
  • wnd: Added window function library (window_functions.jsfx-inc).
  • Added window function viewer example.
  • Added low-pass windowed FIR/FFT filter examples.
Tale is offline   Reply With Quote
Old 02-28-2016, 01:32 PM   #63
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20160228

v20160228 is here, a minor update. Changes:
  • wnd: Added Rife-Vincent class I.
  • wnd: Added average functions.
  • wnd: Updated/improved examples.
  • wnd: Improved documentation.
Tale is offline   Reply With Quote
Old 02-28-2016, 02:09 PM   #64
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

!elaT sknahT
IXix is offline   Reply With Quote
Old 02-28-2016, 02:17 PM   #65
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

!ɘmoɔlɘw ɘɿ'uoY
Tale is offline   Reply With Quote
Old 08-02-2016, 12:34 PM   #66
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20160802

*BUMP* I have updated my JSFX Pack to v20160802.

Minor changes:
  • array: Added get last row pointer.
  • lfo/poly: Optimized x^2 as sqr(x).
  • zdf: Fixed/simplified peaking EQ/low/high-shelf.
  • Added mono/poly synth array example.
  • Americanized documentation.
Tale is offline   Reply With Quote
Old 08-02-2016, 01:21 PM   #67
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
Default

Hi Tale.
Did you hear about ReaPack extension? As JS author you can easily share/update you amazing stuff this way.
mpl is offline   Reply With Quote
Old 08-02-2016, 11:18 PM   #68
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by mpl View Post
Did you hear about ReaPack extension? As JS author you can easily share/update you amazing stuff this way.
Yeah, I know, but I'm too lazy, for now anyway...
Tale is offline   Reply With Quote
Old 08-02-2016, 11:42 PM   #69
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
Default

I can add it by myself and invite you to ReaTeam. Will it be OK for you?

Last edited by mpl; 08-02-2016 at 11:50 PM.
mpl is offline   Reply With Quote
Old 08-04-2016, 11:02 PM   #70
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by mpl View Post
I can add it by myself and invite you to ReaTeam. Will it be OK for you?
Thanks for the offer, but for now I think I would rather stick with distributing it only through my own website.

Of course my pack is GPL, so you could always fork it if you really want, but then you would have to keep it up-to-date yourself...
Tale is offline   Reply With Quote
Old 10-15-2017, 12:36 PM   #71
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20171015

I have (finally) uploaded an update (v20171015) of my JSFX pack. There are too many changes to list them all here, so here are the highlights:
  • drum_synth: Added GUI (resizable, Retina aware).
  • drum_synth: Added bass drum 2, shaker, sticks.
  • colored_noise: Added notch filter.
  • Changed license of plug-ins to LGPL.
  • Changed license of libraries/examples to WTFPL.
  • cplx: Added complex.jsfx-inc complex math library.
  • uint: Added uint.jsfx-inc 32/64-bit unsigned integer operations library.
  • four: Added fft_real_synth.jsfx-inc real FFT version of Fourier synthesis library.
  • midiq: Added simple ("queueless") interface.
  • Improved/updated examples, documentation.
  • Many (minor) optimizations.
    Full changelog...

Last edited by Tale; 10-15-2017 at 11:31 PM.
Tale is offline   Reply With Quote
Old 10-15-2017, 12:41 PM   #72
vanhaze
Human being with feelings
 
vanhaze's Avatar
 
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
Default

Amazing work Tale, thanks so much for this !
"Dank U wel" !
__________________
Macbook Pro INTEL | Reaper, always latest version | OSX Ventura | Presonus Studio 24c
My Reaper Tips&Tricks YouTube Channel: https://www.youtube.com/user/vanhaze2000/playlists
vanhaze is offline   Reply With Quote
Old 10-15-2017, 01:52 PM   #73
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Lent ska hat!
IXix is offline   Reply With Quote
Old 10-15-2017, 02:09 PM   #74
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Hehe... Alstublieft!

BTW, I forgot to mention that the new drum_synth GUI is fully resizable, and supports Retina.
Tale is offline   Reply With Quote
Old 10-16-2017, 05:03 AM   #75
citizenkeith
Human being with feelings
 
Join Date: Jun 2014
Location: Ohio
Posts: 981
Default

Quote:
Originally Posted by Tale View Post
Thanks for the offer, but for now I think I would rather stick with distributing it only through my own website.

Of course my pack is GPL, so you could always fork it if you really want, but then you would have to keep it up-to-date yourself...
Thanks for the update!

I would love to see this in ReaPack. It's truly worth the hassle of setting up.
citizenkeith is online now   Reply With Quote
Old 10-16-2017, 12:29 PM   #76
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Quote:
Originally Posted by Tale View Post
Alstublieft!
That's a good word!

Quote:
Originally Posted by Tale View Post
BTW, I forgot to mention that the new drum_synth GUI is fully resizable, and supports Retina.
Cool.
IXix is offline   Reply With Quote
Old 10-16-2017, 01:06 PM   #77
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Loving the drum synth.
IXix is offline   Reply With Quote
Old 11-25-2019, 11:12 AM   #78
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20191125

It seems I forgot to post the update from earlier this year, oops! Anyway, here's another update, adding midi_vibrato, a MIDI vibrato via Pitch Bend plug-in, and lots of minor changes.
Tale is offline   Reply With Quote
Old 11-26-2019, 06:56 AM   #79
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Thanks Tale!
IXix is offline   Reply With Quote
Old 07-30-2020, 01:14 PM   #80
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default v20200730

BUMP for v20200730, adding a waveform generator/viewer to the examples, plus some minor changes.
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:30 AM.


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