Blue Cat's Plug'n Script 3.3 Released - DSP DIY Summer?

Official support for: bluecataudio.com
Post Reply New Topic
RELATED
PRODUCTS
Crafters Pack Plug'n Script

Post

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)

Post

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.

Post

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!
Yes, actually data.samplesToProcess is 0 when block is silent in VST3. :)

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)

Post

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!
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.

Post

Screen Shot 2021-02-02 at 3.00.39 PM.png
I figured out how to change the 0-100% to 100%-0%. All good on that part. However, today out of nowhere, the Plug-In shows as inactive on my 7.1 aux track and won't allow me to insert another one, only up to a 5.1 aux.

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.

Post

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?

Post

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...

Post

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!

Post

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 !

Post

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 !
This looks like a question for @ilyaorlov since you are using the LetiMix skin.

Post

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)

Post

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 ,

Post

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.

Post

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)
:/

Post

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...

Post Reply

Return to “Blue Cat Audio”