Blue Cat's Plug'n Script 3.3 Released - DSP DIY Summer?
-
- KVRist
- 302 posts since 28 May, 2011
1) Is there any way to detect if DAW is in rendering mode?
2) Would be great if we could detect that plugin instances are on the same channel or not (maybe if we could read channel name if the interface supports it)
2) Would be great if we could detect that plugin instances are on the same channel or not (maybe if we could read channel name if the interface supports it)
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5821 posts since 8 Sep, 2004 from Paris (France)
No it is not possible for (1) and (2). Even if you could get the name of the track it would not be enough to ensure that they are the same.
-
- KVRist
- 302 posts since 28 May, 2011
Yes, actually data.samplesToProcess is 0 when block is silent in VST3.Blue Cat Audio wrote: ↑Tue Dec 01, 2020 7:43 pm I don't think so, but who knows in the future (and maybe it's already the case with VST3)! Rule #1: be paranoid, always!
1) Are there any disadvantages in having getTailSize = -1 all the time? It will require more CPU on silent areas? And all the plugins after it as well?
2) Can we assign not only midi CC, but midi notes to control parameters (in the built-in MIDI mapping)? (like toggle on/off, push buttons)
-
- KVRer
- 2 posts since 26 May, 2016
Hi all. I'm new to this type of scripting so bare with me. I'm trying to create a reverse gain, a trim.
Software I'm using has these values that I'm trying to share:
A midi value of 127 = 0 dB (unity)
A midi value of 0 = -63.5 dB (all the way down)
Is there a way to write a reverse gain script?
Thanks in advance!
Software I'm using has these values that I'm trying to share:
A midi value of 127 = 0 dB (unity)
A midi value of 0 = -63.5 dB (all the way down)
Is there a way to write a reverse gain script?
Thanks in advance!
You do not have the required permissions to view the files attached to this post.
Last edited by brs456 on Tue Feb 02, 2021 11:02 pm, edited 1 time in total.
-
- KVRer
- 2 posts since 26 May, 2016
I didn't change anything. Any thoughts on how to get the multi-channel insert for a 7.1 aux again?
Thx!
You do not have the required permissions to view the files attached to this post.
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5821 posts since 8 Sep, 2004 from Paris (France)
This is very odd. Have you maybe updated pro Tools, or the layout for 7.1 channels? Do you get any error message giving the reason why it has been made inactive?
BTW is there any reason for using the old version of PnS?
BTW is there any reason for using the old version of PnS?
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
Hey there, new to Plug n Script, currently finishing a small vst plugin, and facing an issue where transport.loopStart and transport.loopEnd are both returning the loop start value under Cubase 10.5/ OSx Mojave.
Is it possible to check if something's wrong in my set up or if there is an issue here ?
Here the offending line within processBlock() in a loop activated situation:
print ("Start = " + (data.transport.loopStart) + " End = " +
(data.transport.loopEnd)) ;
returning 40 & 40 if loop start marker i set to bar 40...
Looks it' the same under Live 10 (agin under OSX), loopEnd returns same value as loopStart.
Only the MFX version under Logic and generated MFX work fine in this matter for me...
Is it possible to check if something's wrong in my set up or if there is an issue here ?
Here the offending line within processBlock() in a loop activated situation:
print ("Start = " + (data.transport.loopStart) + " End = " +
(data.transport.loopEnd)) ;
returning 40 & 40 if loop start marker i set to bar 40...
Looks it' the same under Live 10 (agin under OSX), loopEnd returns same value as loopStart.
Only the MFX version under Logic and generated MFX work fine in this matter for me...
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5821 posts since 8 Sep, 2004 from Paris (France)
It looks like there is indeed a bug in the VST2 version. We'll fix that in an upcoming release. However the VST3 version should work fine!
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
Hello,
I'm struggling with updating GUI parameters and having them sending their value to dsp.inputs through an action script. I'm trying to BeginCapture and EndCapture them but I have an error:
- error: Error: No matching symbol 'BeginCapture' in /Users/yoto/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/LetiMix/main-body.inc(202:283)
I'm using the MIDIFX under Logic.
Any clue ?
Should I try on the VST instead using Live to see if it works better ?
Thanks !
I'm struggling with updating GUI parameters and having them sending their value to dsp.inputs through an action script. I'm trying to BeginCapture and EndCapture them but I have an error:
- error: Error: No matching symbol 'BeginCapture' in /Users/yoto/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/LetiMix/main-body.inc(202:283)
I'm using the MIDIFX under Logic.
Any clue ?
Should I try on the VST instead using Live to see if it works better ?
Thanks !
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5821 posts since 8 Sep, 2004 from Paris (France)
This looks like a question for @ilyaorlov since you are using the LetiMix skin.lorenzolamasse wrote: ↑Wed Feb 17, 2021 8:05 pm Hello,
I'm struggling with updating GUI parameters and having them sending their value to dsp.inputs through an action script. I'm trying to BeginCapture and EndCapture them but I have an error:
- error: Error: No matching symbol 'BeginCapture' in /Users/yoto/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/LetiMix/main-body.inc(202:283)
I'm using the MIDIFX under Logic.
Any clue ?
Should I try on the VST instead using Live to see if it works better ?
Thanks !
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
Yeah he helped me, I was missing a REQUIRED_OBJECT statement in the main xml for my skin:
<REQUIRED_OBJECTS object_ids="custom_param16.BeginCapture;custom_param17.BeginCapture;custom_param18.BeginCapture;custom_param19.BeginCapture;custom_param20.BeginCapture;custom_param21.BeginCapture;custom_param22.BeginCapture;custom_param23.BeginCapture;custom_param24.BeginCapture;custom_param25.BeginCapture;custom_param26.BeginCapture;custom_param27.BeginCapture;custom_param16.EndCapture;custom_param17.EndCapture;custom_param18.EndCapture;custom_param19.EndCapture;custom_param20.EndCapture;custom_param21.EndCapture;custom_param22.EndCapture;custom_param23.EndCapture;custom_param24.EndCapture;custom_param25.EndCapture;custom_param26.EndCapture;custom_param27.EndCapture" />
(example)
<REQUIRED_OBJECTS object_ids="custom_param16.BeginCapture;custom_param17.BeginCapture;custom_param18.BeginCapture;custom_param19.BeginCapture;custom_param20.BeginCapture;custom_param21.BeginCapture;custom_param22.BeginCapture;custom_param23.BeginCapture;custom_param24.BeginCapture;custom_param25.BeginCapture;custom_param26.BeginCapture;custom_param27.BeginCapture;custom_param16.EndCapture;custom_param17.EndCapture;custom_param18.EndCapture;custom_param19.EndCapture;custom_param20.EndCapture;custom_param21.EndCapture;custom_param22.EndCapture;custom_param23.EndCapture;custom_param24.EndCapture;custom_param25.EndCapture;custom_param26.EndCapture;custom_param27.EndCapture" />
(example)
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
I struggled with midi generation accurate timing creation.
Let's say I wnt to create an arpeggiator plugin.
I need to listen to incoming midi to add/remove notes from it, meaning I have to use procssBlock.
However I need to output MIDI notes at very precise time stamps, but I haven't found a way of telling PNS to output a midi event at a given time (I have tried to manually set the timeStamp atribute of the MidiEvent class but id doesn't seem to do anything). And not using it gives very inaccurate output at large buffer sizes.
What am I doing wrong here ?
Thank you ,
Let's say I wnt to create an arpeggiator plugin.
I need to listen to incoming midi to add/remove notes from it, meaning I have to use procssBlock.
However I need to output MIDI notes at very precise time stamps, but I haven't found a way of telling PNS to output a midi event at a given time (I have tried to manually set the timeStamp atribute of the MidiEvent class but id doesn't seem to do anything). And not using it gives very inaccurate output at large buffer sizes.
What am I doing wrong here ?
Thank you ,
-
Blue Cat Audio Blue Cat Audio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=39981
- KVRAF
- Topic Starter
- 5821 posts since 8 Sep, 2004 from Paris (France)
You should indeed set the timestamp for each MIDI event properly. But remember that the timestamp has to be set within the current buffer timeframe.
If you need to postpone events for later, keep them in an array until enough audio time has passed. You can then send them in an upcoming processBlock call.
An easy way to do it is to store in the event a timestamp in the future (relative to the current timestamp), and remove the number of samples at every processBlock. When the timestamp is <= samplesToProcess, the MIDI event can be sent to the output of the plug-in.
Remember that audio processing has its own timeline and there is no such thing as "instant" MIDI events sending.
If you need to postpone events for later, keep them in an array until enough audio time has passed. You can then send them in an upcoming processBlock call.
An easy way to do it is to store in the event a timestamp in the future (relative to the current timestamp), and remove the number of samples at every processBlock. When the timestamp is <= samplesToProcess, the MIDI event can be sent to the output of the plug-in.
Remember that audio processing has its own timeline and there is no such thing as "instant" MIDI events sending.
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
Actually that's what I do, I first check that my MIDI event should be triggered during the current block like this:
uint positionInSamples = uround(data.transport.positionInSamples);
if (positionInSamples % currentSync < data.samplesToProcess)
playNote(),
where
- currentSync is the time division of my arp relative to its rate (like 1/8th)
:/
uint positionInSamples = uround(data.transport.positionInSamples);
if (positionInSamples % currentSync < data.samplesToProcess)
playNote(),
where
- currentSync is the time division of my arp relative to its rate (like 1/8th)
:/
-
lorenzolamasse lorenzolamasse https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=472181
- KVRer
- 7 posts since 10 Aug, 2020
Don't know what's the matter here, very short notes sent to midi tend to stick or not play at all, it's not reproductible, and it also depends on the DAW.
Any clue ?
I can provide some files if needed...
Any clue ?
I can provide some files if needed...