Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 07-02-2019, 03:39 AM   #161
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Wow, it has been a long time since i logged in to the forum and i 'm suprised with these tools. Great work and i like a lot the interface!
Reflectosaurus rocks!!

Now i wish if,at some point, we would see a granular fx from you : )
Vagelis is offline   Reply With Quote
Old 07-02-2019, 10:44 AM   #162
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,252
Default

Quote:
Originally Posted by Vagelis View Post
Now i wish if,at some point, we would see a granular fx from you : )
Yea I second that for sure.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 07-02-2019, 12:25 PM   #163
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Yes! Granular + delay + pitch mangling on feedback!!

Loving these Saike!
reapero is offline   Reply With Quote
Old 07-02-2019, 12:41 PM   #164
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

These are so great! Everything you come up with is amazing and so much fun. The gui on Squashman is [fire emoji]

I haven't played with Reflektasaurus yet but I watched your video on it. Can it do a full tape stop? In the first 6 or 8 seconds of your intro video, it sounded like the beginning of an epic tape stop effect It would be amazing if it could slow all the way down.

I also had an idea for the splitter. What if it sent separate bands out different channels. i.e. first band out channels 1-2, 2nd out 3-4? That way you would only have to deal with one instance of the plugin if you wanted to send the different bands to different tracks for separate processing.

but yeah, WAY more people need to know about what you are doing.

Last edited by cjewellstudios; 07-02-2019 at 12:42 PM. Reason: spelling
cjewellstudios is offline   Reply With Quote
Old 07-03-2019, 04:30 AM   #165
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by Vagelis View Post
Wow, it has been a long time since i logged in to the forum and i 'm suprised with these tools. Great work and i like a lot the interface!
Reflectosaurus rocks!!

Now i wish if,at some point, we would see a granular fx from you : )
Quote:
Originally Posted by foxAsteria View Post
Yea I second that for sure.
Quote:
Originally Posted by reapero View Post
Yes! Granular + delay + pitch mangling on feedback!!

Loving these Saike!
Quote:
Originally Posted by cjewellstudios View Post
These are so great! Everything you come up with is amazing and so much fun. The gui on Squashman is [fire emoji]
Hehe, thanks for the kind words everyone. It's nice to see that the stuff's enjoyed. Good for motivation!

Actually, I have been thinking of dabbling a bit with granular synthesis, but it'll be a while. I was thinking of playing with it a bit in its own dedicated test bench plugin, and then maybe integrating some parts of those experiments into reflectosaurus. But I'm currently about to move country, so there's a lot of stuff preoccupying my attention at the moment

Quote:
Originally Posted by cjewellstudios View Post
I haven't played with Reflektasaurus yet but I watched your video on it. Can it do a full tape stop? In the first 6 or 8 seconds of your intro video, it sounded like the beginning of an epic tape stop effect It would be amazing if it could slow all the way down.
Hmmmm... I'll think about whether I can add an actual stop. In principle it should be possible I would think.

Quote:
I also had an idea for the splitter. What if it sent separate bands out different channels. i.e. first band out channels 1-2, 2nd out 3-4? That way you would only have to deal with one instance of the plugin if you wanted to send the different bands to different tracks for separate processing.
You mean the bandsplitter itself (not squashman)? Unless I messed something up, it should be doing that already. Just don't put the joiner behind it, and route 3/4, 5/6 etc to the 1/2 on different tracks.

Quote:
but yeah, WAY more people need to know about what you are doing.
Maybe one day I'll make a post under general with a list of the stabilized plugins. Stabilized as in, the ones where I feel they are mostly done and there are not so many big surprises anymore. I try and post whenever I see someone post who I think would be helped with one of the plugins, but I don't want to get too shameless with self-promotion
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-03-2019, 05:04 AM   #166
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

Quote:
Originally Posted by sai'ke View Post
Hehe, thanks for the kind words everyone. It's nice to see that the stuff's enjoyed. Good for motivation!

Actually, I have been thinking of dabbling a bit with granular synthesis, but it'll be a while. I was thinking of playing with it a bit in its own dedicated test bench plugin, and then maybe integrating some parts of those experiments into reflectosaurus. But I'm currently about to move country, so there's a lot of stuff preoccupying my attention at the moment


Hmmmm... I'll think about whether I can add an actual stop. In principle it should be possible I would think.


You mean the bandsplitter itself (not squashman)? Unless I messed something up, it should be doing that already. Just don't put the joiner behind it, and route 3/4, 5/6 etc to the 1/2 on different tracks.


Maybe one day I'll make a post under general with a list of the stabilized plugins. Stabilized as in, the ones where I feel they are mostly done and there are not so many big surprises anymore. I try and post whenever I see someone post who I think would be helped with one of the plugins, but I don't want to get too shameless with self-promotion

1. Good luck with your move!

2. The band splitter itself yeah... and ooohhhhh I did not realize it was doing that. I heard the whole signal when I put it on the track (that's fine) and the plugin pins always throw me for a loop.

I will do some testing/investigating and figure that out!

3. The epic stop would no doubt be epic!
cjewellstudios is offline   Reply With Quote
Old 07-05-2019, 04:20 AM   #167
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

Quote:
Originally Posted by sai'ke View Post
You mean the bandsplitter itself (not squashman)? Unless I messed something up, it should be doing that already. Just don't put the joiner behind it, and route 3/4, 5/6 etc to the 1/2 on different tracks.
Hey thanks Saike! Not sure how I messed that up but yeah she's working now! It's awesome.

I did a null test:

Splitter track sending to three tracks and summing to a 4th. Then a completely separate track with the same file on it.

The only way I could get it to null was if I had splitter/joiner on the completely separate track. This was true for both normal and with FIR, and as long as both splitter plugs matched it was a null.

Also, in the performance meter, when you switch on FIR it reports 3027 but then drops back down to 0 when you hit play.
cjewellstudios is offline   Reply With Quote
Old 07-05-2019, 04:29 AM   #168
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Thanks for the report. I'll look into it tonight. I suspect I forgot to serialize the FIR status

Edit/Just for the record:
The IIR version would never null with the external track unless you applied the same filters on the external track (resulting in the same phase distortions). What I meant by remaining phase coherent is that the bands sum back to unity because each band gets identical phase distortions in IIR mode. This is done by inserting allpasses whenever there is no filtering going on.

The structure looks something like this (LP being lowpass, HP being highpass and AP being allpass):
Code:
             / HP
        / HP - LP
   / HP - LP - AP
In - LP - AP - AP
In this diagram, the cutoff frequencies in each column are the same. If these all-pass filters wouldn't be present, you'd get comb filtering effects summing the signals back together because the lower rows would get different phase distortions than the top rows.

It would be possible to actually make a dedicated plugin with just all-passes at the same cutoff frequencies, just to attain the same phase distortion as the processed channel, if such a thing seems useful to you. Then one could still use the IIR version, but one would have to make sure to also put the allpass version with the same cutoff frequencies on the matching channel. That plugin would then do something like:

Code:
AP - AP - AP - AP
Alternatively, it may be possible to dedicate a specific channel (maybe number 6, since there's 5 bands) which has no filtering but just has the all-passes so that it can be routed elsewhere as being dry with only phase distortions to match the bands.

As for the FIR, that one definitely should NULL quite well (I mean, there's some small truncation error on the FIR but the NULL should still be very quiet) as long as the latency is compensated correctly. I suspect that because I forgot to store the FIR flag in the serialization section it popped out of FIR mode every time you clicked anywhere on transport.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]

Last edited by sai'ke; 07-05-2019 at 08:12 AM.
sai'ke is offline   Reply With Quote
Old 07-06-2019, 07:15 AM   #169
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Alright, the band-splitter bug should be fixed now. I've also added a little phase matcher, so that you can use the IIR version and still get a perfect NULL at relatively low cost (using an entire bandsplitter to match the phases is overkill).

I've detailed this in the following tutorial here:
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-06-2019, 08:25 AM   #170
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

Quote:
Originally Posted by sai'ke View Post
Alright, the band-splitter bug should be fixed now. I've also added a little phase matcher, so that you can use the IIR version and still get a perfect NULL at relatively low cost (using an entire bandsplitter to match the phases is overkill).

I've detailed this in the following tutorial here:
AWESOME! Thanks so much!
cjewellstudios is offline   Reply With Quote
Old 07-07-2019, 03:37 AM   #171
zookthespook
Human being with feelings
 
Join Date: Mar 2015
Location: India Mumbai
Posts: 816
Default

impressive GUIs and look very potent. Downloading via reapack !
thank you for sharing these !

cheers
zook
zookthespook is offline   Reply With Quote
Old 07-07-2019, 05:00 PM   #172
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

You're welcome

Changelog reflectosaurus:
- Added some basic grain processing as a special node type for pitch shifting / diffusing of delays
- Fixed an issue where the high pass filter could click upon initialization
- Tweaked how the gain is processed. Before the gain was a multiple of feedback * gain, which was unintentional. If you made presets with this mode, convert them to the new system by pressing T.

While the grain processing felt like it should do some cool stuff, I haven't really gotten comfortable with it yet.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-07-2019, 06:09 PM   #173
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

I've thinking of a plugin idea lately.

You would be the person that would know if it's possible so I figured I'd mention it.

For plugins that do not natively upsample but could benefit from it (for example an amp sim)

What about an encode-decode plugin pair that upsamples and downsamples back down to the appropriate rate?
cjewellstudios is offline   Reply With Quote
Old 07-07-2019, 07:40 PM   #174
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by cjewellstudios View Post

What about an encode-decode plugin pair that upsamples and downsamples back down to the appropriate rate?
The sample rate of the whole fx chain has to be the same, so that's not going to work at the moment. (In principle the Reaper developers might be able to add support for that, but it would be tricky.)
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.

Last edited by Xenakios; 07-07-2019 at 07:47 PM.
Xenakios is offline   Reply With Quote
Old 07-07-2019, 07:46 PM   #175
smasha
Human being with feelings
 
Join Date: Aug 2006
Posts: 399
Default

How to install jsfx plug ins?

I downloaded each source and pasted each into a text file,now what?

I searched for this in the Reaper forums but came up empty.

Can't find anything.
smasha is offline   Reply With Quote
Old 07-08-2019, 01:50 AM   #176
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by smasha View Post
How to install jsfx plug ins?

I downloaded each source and pasted each into a text file,now what?

I searched for this in the Reaper forums but came up empty.

Can't find anything.
Option 1.

The best way is to install reapack. This is not only useful for these plugins, but in general, as many devs make their plugins available through reapack. It also allows you to very quickly switch between versions and update them without having to go to a website, which can be quite useful.

To install reapack, go here and follow the installation instructions: https://reapack.com/user-guide

After that, go to the extensions menu => Reapack => Import Repositories and paste

https://raw.githubusercontent.com/Jo...ster/index.xml

After that you can install them from the reapack manager. After installing one or several, restart reaper or hit F5 while having the FX browser open to reindex your JS plugins.

===

Option 2.

If for whatever reason you can't or don't want to install reapack, then download all the files separately from github: https://github.com/JoepVanlier/JSFX/archive/master.zip

And extract the folder contents into the Effects folder in Reaper's resource folder. You can find where this is in the options menu under “Show REAPER’s resource path in explorer/finder"

I think by default they are the following, but this may be different depending on your system
Windows: %APPDATA%\REAPER\Effects\Saike Tools
OSX : /Users/<username>/Library/Application Support/REAPER/Effects/Saike Tools

Again, hit F5 on the FX browser or restart reaper to reindex the effects list.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]

Last edited by sai'ke; 07-08-2019 at 01:56 AM.
sai'ke is offline   Reply With Quote
Old 07-08-2019, 02:33 AM   #177
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

Quote:
Originally Posted by Xenakios View Post
The sample rate of the whole fx chain has to be the same, so that's not going to work at the moment. (In principle the Reaper developers might be able to add support for that, but it would be tricky.)

Interesting that plugins can pull it off internally but you couldn't do something like this.

Thanks for the info Xen!
cjewellstudios is offline   Reply With Quote
Old 07-08-2019, 04:29 AM   #178
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by cjewellstudios View Post
Interesting that plugins can pull it off internally
The internally oversampled plugins have the same sample rate at their input and output, so there isn't really anything unusual going on as as far as the host is concerned.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 07-10-2019, 05:59 AM   #179
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 685
Default

Quote:
Originally Posted by sai'ke View Post
While the grain processing felt like it should do some cool stuff, I haven't really gotten comfortable with it yet.
Grains, nice! Got some pretty neat effects by making two nodes feed back into each other (also with self-feedback) and making the other one of those a grain node with slight pitch-shifting and a bit of HPF to prevent low freq buildup.

Speaking of pitch-shifting, I get a lot of cool sounds when moving the nodes around, with the delay time changing and everything. Would that be possible to implement into Reflectosaurus in any capacity (other than the Grain node pitch-shifting)? Something like LFO control or automation to node position? Currently the nodes' X and Y don't seem to be assigned to sliders apparently, which would enable automation of course.

Thanks for the updates!
Sju is offline   Reply With Quote
Old 07-10-2019, 07:23 AM   #180
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Grains processing, that was fast! Thanks a lot,I'm enjoying!

As i 'm using a lot of granular synthesis,I could suggest a couple of things that i use in my productions and it would be nice if they were added:

1.A freeze option to freeze the buffer for stutter like fx.Also the delay nod,when the grains are activated, could be used as the start position of the samples in the buffer. Freezing the buffer and then moving the start position could create pseudo timestretching effects or audio reverse.

2.Jitter rnd parameters for every grain parameter.(freezing the buffer and then using a small amount of jitter to the pitch parameter and/or to the delay(start position) and then adding more overlaping grains with small length can create big Clouds of sound.)

3.A switch to reverse the grains.(not the sample)

4.Envelopes to smooth the grains and to change the transients depending on the grain window(e.g Gaussian window,blackman window etc)

5.When we choose the grain mode,it would be nice to see in the background the waveform that it's stored in the buffer.(useful when we want to move across the samples with the start position)

P.s All of these are just ideas of how traditional granular synthesis works with a graincloud delay(this propably is a graindelay) and not to put press on you to implement all of the above,as i know that it takes a lot of work

Cheers!!

Last edited by Vagelis; 07-10-2019 at 07:54 AM.
Vagelis is offline   Reply With Quote
Old 07-10-2019, 02:48 PM   #181
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Automation of node position is something that I intend to add.

As for the granular synthesis stuff, I need to have a closer look at it. This is my first foray into it

1. The issue is that while I support overlapping grains, I use the same delay line for the delay. The reason for this is that JSFX is not that fast, and this way I can save filling and keeping track of yet another buffer.

The big drawback is that this limits how much you can stall it, since eventually the signal pointer will come around and overwrite the current position.

Currently, the X position is both the grain distance from the point where the signal comes in and the delay time. In principle, it should be possible to make a pure non-delay grain node that only does grain and not delay that has these properties though. I will think about it.

2. Jitter is jitter for position. Jitter for pitch is what detune does.

3. Reversing the grains should be possible and not so hard to implement.

4. The grains are windowed, using a cosine window. The reason for using the cosine window is that it can be evaluated relatively cheaply only using multiplies and adds at every sample and only using trig for two samples in each grain, using a trick

In principle envelopes are possible, but tricky. What would the envelopes be triggered by?

There are always several grains playing at once. Several read pointers on the same delay line.

5. Visualizing what's in the delay line should in principle be possible.

I was actually considering making a dedicated grain sampler. I'm not fully convinced about the usefulness of having grain nodes in reflectosaurus over just a dedicated JSFX to just graining one input and then routing that into reflectosaurus for the verby-delay-ey stuff. It would give me more screenspace to work with.

But at the moment I'm very busy with work stuff and an impending move, so it will be a little while
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-11-2019, 03:46 PM   #182
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by Sju View Post
Speaking of pitch-shifting, I get a lot of cool sounds when moving the nodes around, with the delay time changing and everything. Would that be possible to implement into Reflectosaurus in any capacity (other than the Grain node pitch-shifting)? Something like LFO control or automation to node position? Currently the nodes' X and Y don't seem to be assigned to sliders apparently, which would enable automation of course.
X and Y should now be exposed as sliders.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-12-2019, 09:30 AM   #183
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Quote:
Originally Posted by sai'ke View Post
4. The grains are windowed, using a cosine window. The reason for using the cosine window is that it can be evaluated relatively cheaply only using multiplies and adds at every sample and only using trig for two samples in each grain, using a trick

In principle envelopes are possible, but tricky. What would the envelopes be triggered by?
Thanks for your detailed reply.When i said about envelopes i meant the window.
Different windows can give different results.


Quote:
Originally Posted by sai'ke View Post
I was actually considering making a dedicated grain sampler. I'm not fully convinced about the usefulness of having grain nodes in reflectosaurus over just a dedicated JSFX to just graining one input and then routing that into reflectosaurus for the verby-delay-ey stuff. It would give me more screenspace to work with.
This would be really awesome!! A dedicated granular sampler and of course when you have the time to create it, no rush Looking forward then, for the moment i will enjoy these great tools
Vagelis is offline   Reply With Quote
Old 07-14-2019, 12:22 AM   #184
Eliseat
Human being with feelings
 
Eliseat's Avatar
 
Join Date: Mar 2018
Location: Cologne
Posts: 1,362
Default

Sai'ke goes crazy again.

This offers a really new and big world of unique effects. Just amazing. I only have to criticize that the reverb node looks to common. No one ever - never will recognize the difference to a delay mode. Could you draw a rectangle around the node or a cube? Have no idea. But the actual difference is to subtle. (In my opinion.)

Greetings from the cold and dark Cologne (like my heart )
Eli
__________________
☆.。.:*・°☆.。.:*・°☆.。.:*・°☆REAPER//✿◔‿◔)°☆.。.:*・°☆.。.:*・°☆

Last edited by Eliseat; 07-14-2019 at 01:26 AM.
Eliseat is offline   Reply With Quote
Old 07-14-2019, 12:33 AM   #185
Eliseat
Human being with feelings
 
Eliseat's Avatar
 
Join Date: Mar 2018
Location: Cologne
Posts: 1,362
Default

Maybe something like this?



But don't take this as an offense. Its just ...
__________________
☆.。.:*・°☆.。.:*・°☆.。.:*・°☆REAPER//✿◔‿◔)°☆.。.:*・°☆.。.:*・°☆
Eliseat is offline   Reply With Quote
Old 07-14-2019, 05:57 AM   #186
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Nice box

Yeah, can do.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-14-2019, 09:56 PM   #187
Eliseat
Human being with feelings
 
Eliseat's Avatar
 
Join Date: Mar 2018
Location: Cologne
Posts: 1,362
Default

You already did.

Many thanks.
__________________
☆.。.:*・°☆.。.:*・°☆.。.:*・°☆REAPER//✿◔‿◔)°☆.。.:*・°☆.。.:*・°☆
Eliseat is offline   Reply With Quote
Old 07-15-2019, 02:16 AM   #188
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Working on this thing:


A more fleshed out standalone version of the grain module. Modulating position / pitch / gain etc with the envelopes are still on the to-do list. Filters are also still on the to-do list.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-15-2019, 02:30 AM   #189
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 685
Default

Quote:
Originally Posted by sai'ke View Post
Working on this thing:

A more fleshed out standalone version of the grain module. Modulating position / pitch / gain etc with the envelopes are still on the to-do list. Filters are also still on the to-do list.
Whoah! I'll be following this closely. Granular synthesis is currently a huge part of my workflow for a Scifi-themed game's sound design, and I'm sure this will be a very useful tool there.

Would you consider adding control for number of grains (or is that Overlap?), feedback, and maybe different windowing functions? By the way, if you haven't used it, there's this really good freeware grain effect called Argotlunar. It's got all kinds of useful controls for the granular engine. Looks like the source code is available and thought you might wanna check that out.

Last edited by Sju; 07-15-2019 at 02:58 AM.
Sju is offline   Reply With Quote
Old 07-15-2019, 08:38 AM   #190
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,252
Default

Oh hey I need to check out these new toys...those envelopes looking very familiar tho...

What about trying mirrored envelopes here (admittedly with the ulterior motive that they may make their way into Filther as well...)?

They could just bounce the playhead back and forth or they could put a split in the middle that automatically mirrors changes to the other side. It could even be limited to the looping area.

Anyways, I'm gonna go mess with Amaranth, even though I've been expressly warned not to! One question: Ehm...what is this thing?
__________________
foxyyymusic

Last edited by foxAsteria; 07-15-2019 at 11:41 AM.
foxAsteria is offline   Reply With Quote
Old 07-15-2019, 11:06 AM   #191
Timothy Lawler
Human being with feelings
 
Timothy Lawler's Avatar
 
Join Date: Jan 2006
Posts: 1,595
Default

Quote:
Originally Posted by sai'ke View Post
...the band-splitter... tutorial here:
Nice. Looking forward to trying it out.
__________________
Website
Youtube
Timothy Lawler is offline   Reply With Quote
Old 07-15-2019, 02:31 PM   #192
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by Sju View Post
Whoah! I'll be following this closely. Granular synthesis is currently a huge part of my workflow for a Scifi-themed game's sound design, and I'm sure this will be a very useful tool there.
I hope so.

Quote:
Would you consider adding control for number of grains (or is that Overlap?), feedback, and maybe different windowing functions?
Overlap is the grain count yes. It's a percentage of overlap.

Feedback in what sense? What gets fed back into what? The grain output back into the audio in?

As for the windows, currently I have a cosine window. Since I'm in JSFX-land, I'm limited to cheap windows only (raised cosine, linear, quadratic). I could allow skewing of the cosine window. What other windows do you think are useful?

Quote:
By the way, if you haven't used it, there's this really good freeware grain effect called Argotlunar. It's got all kinds of useful controls for the granular engine. Looks like the source code is available and thought you might wanna check that out.
I haven't, but I'll have a look. It looks neat from a first glance. There's a lot of stuff I want to add first though. Currently the envelopes aren't even hooked up yet

Quote:
Originally Posted by foxAsteria View Post
What about trying mirrored envelopes here (admittedly with the ulterior motive that they may make their way into Filther as well...)?
Alright, alright. I've been meaning to do it for a while already, might as well now. I added bidi loops.

Quote:
Anyways, I'm gonna go mess with Amaranth, even though I've been expressly warned not to! One question: Ehm...what is this thing?
It's not quite ready for the prime time as the envelopes are not yet in. But it's a granular effect. Here's a very crappy demo:


But honestly, it's not ready yet. Things should get more interesting once you can start to attach envelopes to different things, like position.

Quote:
Originally Posted by Timothy Lawler View Post
Nice. Looking forward to trying it out.
Cool. Hope it works for you
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 07-15-2019, 03:06 PM   #193
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Pretty soon you'll have made all the components of a synthesizer...and then you'll have to make a synthesizer plugin.
JamesPeters is offline   Reply With Quote
Old 07-15-2019, 07:54 PM   #194
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,252
Default

Well Sai'ke, that "crappy video" got me pretty excited, I must say. You know what that means, right? Feature requests! Your favorite...

So...any chance it could be made to also load samples directly (drag and drop)? No biggie; it's easy enough to play the explorer media through the track.

BIDI was pretty cryptic to me at first. It makes sense now, but a big "M" for mirror might be more clear. A couple outward facing arrows would be cool too.

You got big plans for the wave display? Cos clicking anywhere there (not just the tiny light) to trigger the freeze (or at least the top half) would be handy.

Of course then I'd also love to drag on the bottom half to move the position directly (or scrub/scratch) the sample. Ribs has a nice "playhead glide" knob that controls how closely the cursor follows the mouse, to smooth and fine tune the response.

Since the buffer size appears to be fixed , would it also be possible to save the capture into presets? This was the big limitation of Ribs. You had to record your performance otherwise the creation/texture is gone forever.
EDIT: Wow I just tried it and I never would have though that would already be a feature! Woot!

Anyways, very much lookin forward to seeing where you go with this one!
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 07-16-2019, 01:58 AM   #195
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by foxAsteria View Post
So...any chance it could be made to also load samples directly (drag and drop)? No biggie; it's easy enough to play the explorer media through the track.
I wanted this too, but found out that JSFX can't just load waves from everywhere. See this feature request: https://forum.cockos.com/showthread.php?t=212561

A tad frustrating to find out that I could get the exact path, but not load from there

I could fudge around it, having a lua script be the dropper and interface the jsfx and the lua script with global memory, but it would require the user to pair them every time, at which point I feel it's almost more work, more error prone and less intuitive again than just 'recording' it. I guess we'll just have to cross our fingers for that FR

Quote:
Originally Posted by foxAsteria View Post
BIDI was pretty cryptic to me at first. It makes sense now, but a big "M" for mirror might be more clear. A couple outward facing arrows would be cool too.
I think bidi is what it was called in most trackers. I find mirror more confusing to be honest, since mirror makes me think it would mirror the nodes.

Quote:
Originally Posted by foxAsteria View Post
You got big plans for the wave display? Cos clicking anywhere there (not just the tiny light) to trigger the freeze (or at least the top half) would be handy.
Tis a bit early for FRs, some stuff is already planned

I don't know if you noticed yet, but you can drag the extents to move an active region around. This will be the region that is used for position automation by envelope. The end being 1 in the envelope and the start being 0. Adding a play marker is planned. Dragging it probably too, but it's not high on the priority list. It's also planned to visualize the play marker in the envelope window with a fairly transparent shaded line, so that you can figure out where to set the envelope. Setting snap lines on the waveform (which are then visible in the envelope window) are also on the "would like" list, but there's only so many hours in a day, so we'll have to see how far we get and what is more important

Quote:
Since the buffer size appears to be fixed , would it also be possible to save the capture into presets? This was the big limitation of Ribs. You had to record your performance otherwise the creation/texture is gone forever.
EDIT: Wow I just tried it and I never would have though that would already be a feature! Woot!
Yeah, it's stored. I am planning to allow shorter buffers as well because this will blimp the size of your preset files. I would recommend not making presets until I start properly versioning the serialization format (I will remove the red warning when that happens). I'm actually a tad surprised how long serialization of the waveform takes. I may add a button which enables/disables serialization of the waveform.

Quote:
Anyways, very much lookin forward to seeing where you go with this one!
Cool.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]

Last edited by sai'ke; 07-16-2019 at 02:34 AM.
sai'ke is offline   Reply With Quote
Old 07-16-2019, 06:52 AM   #196
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Quote:
Originally Posted by sai'ke View Post
Working on this thing:


A more fleshed out standalone version of the grain module. Modulating position / pitch / gain etc with the envelopes are still on the to-do list. Filters are also still on the to-do list.
Wow, I didn't see that coming:P Great!!

I just tested it and I like that it's going to the right direction

One thing that i noticed is that when I'm changing the pitch, it also changes the speed-size of the sample. It would be nice,if there was another mode too, that would allow to change the pitch wihout changing the speed-size of the sample.

As for the grain windows, to my knowledge the most used are the Gaussian,Hanning,Trapezoidal,Triangular or Blackman.

Feedback would be nice to have and as you said it,it's the input back to the output. It just needs something to clip the values because it can distord heavily the sound.
This can work only when the buffer is not freezed,combining with a filter at the end of the feedback chain and changing the position (which work as a delay size) can create nice delay fx.
(At least this is how it works in something similar that i built in Reaktor)

Last edited by Vagelis; 07-16-2019 at 07:05 AM.
Vagelis is offline   Reply With Quote
Old 07-16-2019, 07:35 AM   #197
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 685
Default

Quote:
Originally Posted by sai'ke View Post
Feedback in what sense? What gets fed back into what? The grain output back into the audio in?
Yep, at least that's what I think it is for example in Argotlunar. Easily the most interesting control if the plugin's set up right for it, i.e. dampening resonance build-up with pitch shifting etc.

Quote:
Originally Posted by sai'ke View Post
As for the windows, currently I have a cosine window. Since I'm in JSFX-land, I'm limited to cheap windows only (raised cosine, linear, quadratic). I could allow skewing of the cosine window. What other windows do you think are useful?
Alchemy for example offers "Tukey05" as the default option (along with triangle, trapezoid, Hann, etc.). In most cases Tukey seems to be the most neutral sounding. Found some more info here, along with example code. I'n Alchemy's case Tukey05 probably refers to a Tukey window with 0.5 as the H coefficient?

Quote:
Originally Posted by Vagelis View Post
Feedback would be nice to have and as you said it,it's the input back to the output. It just needs something to clip the values because it can distord heavily the sound.
In my opinion a digital safety clipper is not a good thing to have. Sure, the feedback might blow up sometimes but we have REAPER's automute for that. Other times it nastily distorts just when you're about to record that sweet sound you made. In my experience, some cool feedback sounds need room to fluctuate and evolve, even above 0.

Quote:
Originally Posted by Vagelis View Post
This can work only when the buffer is not freezed,combining with a filter at the end of the feedback chain and changing the position (which work as a delay size) can create nice delay fx.
(At least this is how it works in something similar that i built in Reaktor)
Even if the buffer is frozen, can't the feedback signal from the output be mixed into the input from the buffer? Delay, filters etc. would be useful additions; they seem to work nicely in Argotlunar.

Last edited by Sju; 07-16-2019 at 08:51 AM.
Sju is offline   Reply With Quote
Old 07-16-2019, 08:09 AM   #198
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Quote:
Originally Posted by Sju View Post
In my opinion a digital safety clipper is not a good thing to have. Sure, the feedback might blow up sometimes but we have REAPER's automute for that. Other times it nastily distorts just when you're about to record that sweet sound you made. In my experience, some cool feedback sounds need room to fluctuate and evolve, even above 0.
It's good to go above zero but not to +10 or something and distort the waveform tottaly, in order to sound still musically. Thats's why in my opinion a clipper is useful.
The way i did in Reaktor is by adding a clipper and then a unit delay which makes the audio signal delayed by one sample period(1/samplerate) with this way it reach the highest level but doesn't distord completely.

Quote:
Originally Posted by Sju View Post
Even if the buffer is frozen, can't the feedback signal from the output be mixed into the input from the buffer? Delay, filters etc. would be useful additions; they seem to work nicely in Argotlunar.
When the buffer is frozen and then you try to add some feedback it won't work because there's no sound coming into the buffer since it's frozen.
Also the delay in argotlunar does what the position slider does in Amaranth(moving the start position).

Saike here's a link with some information about granular synthesis that might help. Check out Curtis Roads and Bencina, R among the others.
https://granularsynthesis.com/books.php

https://pdfs.semanticscholar.org/9f6...feef0060b6.pdf
https://ccrma.stanford.edu/~dkeller/...lerRolfe98.pdf
https://static1.squarespace.com/stat...+Synthesis.pdf

Last edited by Vagelis; 07-16-2019 at 08:38 AM.
Vagelis is offline   Reply With Quote
Old 07-16-2019, 11:28 AM   #199
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,252
Default

Thanks Sai'ke, 2 followups: compromise? BI-DI or Bi-Dir? BIDI just makes me think Bastard MIDI. Ok, ok...nitipicks...

Shame about the drag and drop, but are you still gonna try to do sample loading some other way? It's usually enough to have a mousewheel/arrow guided dropdown for cycling the contents of a sample folder.

As far as the preset size, could there be an option to automatically truncate any areas of the sample outside the bounds of where the playhead actually hits with current settings? That way minimal info is stored, but presets will still sound the same.

I know I asked before, but I still don't get why you're not making these projects as VST plugins? I really don't think there are many developers cranking out novel and good-quality plugins at the rate you are and well...all these jsfx limitations don't bother you?

Ok sorry to be a pest...Sai'ke knows best...thanks again!
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 07-16-2019, 11:45 AM   #200
zookthespook
Human being with feelings
 
Join Date: Mar 2015
Location: India Mumbai
Posts: 816
Default

ookk then . I just played a bit with these monsters !!

I don't know how you coded that stereo imager ! It beats the crap out the brainworx V3 which is a 200+ dollar plugin! And the Reflectosaurus is a beast which in some pockets is way superior to the GRM space echo !

Your plugins are phenomenal !!!

Cheers
zook
zookthespook 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 03:44 AM.


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