|
|
|
11-07-2015, 11:31 AM
|
#41
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
11-10-2015, 03:04 AM
|
#42
|
Human being with feelings
Join Date: Jul 2007
Posts: 1,891
|
rats!
i heart rodents.
|
|
|
11-11-2015, 01:55 PM
|
#43
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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
|
|
|
11-12-2015, 12:07 AM
|
#44
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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.
|
|
|
11-14-2015, 07:24 PM
|
#45
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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.
|
|
|
11-15-2015, 07:42 AM
|
#46
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Quote:
Originally Posted by argee
OK, things have clearly gotten out of hand now...
|
Nice work.
|
|
|
11-15-2015, 08:26 AM
|
#47
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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?
|
|
|
11-15-2015, 08:47 AM
|
#48
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
Quote:
Originally Posted by Tale
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
|
|
|
11-15-2015, 08:55 AM
|
#49
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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...
|
|
|
11-15-2015, 09:01 AM
|
#50
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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.
|
|
|
11-15-2015, 11:36 AM
|
#51
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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
|
|
|
11-16-2015, 03:27 AM
|
#52
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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.
|
|
|
11-16-2015, 05:31 AM
|
#53
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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
|
|
|
11-16-2015, 05:05 PM
|
#54
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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.
|
|
|
11-16-2015, 09:01 PM
|
#55
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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
|
|
|
11-17-2015, 05:17 AM
|
#56
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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
Thanks again for this great little synth! I use it all the time.
|
Good to hear!
|
|
|
11-17-2015, 07:34 PM
|
#57
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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
Last edited by argee; 11-17-2015 at 07:40 PM.
|
|
|
11-20-2015, 02:02 PM
|
#58
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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
|
|
|
11-20-2015, 06:15 PM
|
#59
|
Human being with feelings
Join Date: Mar 2007
Location: Surrey, BC
Posts: 745
|
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.
|
|
|
11-21-2015, 03:30 AM
|
#60
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by argee
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
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
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...
|
|
|
11-21-2015, 04:09 AM
|
#61
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
02-22-2016, 03:47 PM
|
#62
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
02-28-2016, 01:32 PM
|
#63
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
02-28-2016, 02:09 PM
|
#64
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
!elaT sknahT
|
|
|
02-28-2016, 02:17 PM
|
#65
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
!ɘmoɔlɘw ɘɿ'uoY
|
|
|
08-02-2016, 12:34 PM
|
#66
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
08-02-2016, 01:21 PM
|
#67
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
|
Hi Tale.
Did you hear about ReaPack extension? As JS author you can easily share/update you amazing stuff this way.
|
|
|
08-02-2016, 11:18 PM
|
#68
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by mpl
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...
|
|
|
08-02-2016, 11:42 PM
|
#69
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
|
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.
|
|
|
08-04-2016, 11:02 PM
|
#70
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Quote:
Originally Posted by mpl
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...
|
|
|
10-15-2017, 12:36 PM
|
#71
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
10-15-2017, 12:41 PM
|
#72
|
Human being with feelings
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
|
Amazing work Tale, thanks so much for this !
"Dank U wel" !
|
|
|
10-15-2017, 01:52 PM
|
#73
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Lent ska hat!
|
|
|
10-15-2017, 02:09 PM
|
#74
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
Hehe... Alstublieft!
BTW, I forgot to mention that the new drum_synth GUI is fully resizable, and supports Retina.
|
|
|
10-16-2017, 05:03 AM
|
#75
|
Human being with feelings
Join Date: Jun 2014
Location: Ohio
Posts: 981
|
Quote:
Originally Posted by Tale
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.
|
|
|
10-16-2017, 12:29 PM
|
#76
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Quote:
Originally Posted by Tale
Alstublieft!
|
That's a good word!
Quote:
Originally Posted by Tale
BTW, I forgot to mention that the new drum_synth GUI is fully resizable, and supports Retina.
|
Cool.
|
|
|
10-16-2017, 01:06 PM
|
#77
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Loving the drum synth.
|
|
|
11-25-2019, 11:12 AM
|
#78
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
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.
|
|
|
11-26-2019, 06:56 AM
|
#79
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Thanks Tale!
|
|
|
07-30-2020, 01:14 PM
|
#80
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
|
v20200730
BUMP for v20200730, adding a waveform generator/viewer to the examples, plus some minor changes.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 06:30 AM.
|