Old 08-20-2017, 02:31 PM   #1
Human being with feelings
caseyjames's Avatar
Join Date: Jul 2009
Posts: 626
Default Decoded VST parameter chunk

Though many vst's use custom chunk data - many also use the standard vst parameter format. Assuming ReaEq is one of those, I'm trying to decode the track chunk data to learn how to write it.

When I decode from base64 I get:

b'qeer\xee^\xed\xfe\x02\x00\x00\x00\x01\x00\x00\x0 0\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\ x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0 2\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x01\ x00\x00\x00\x00\x00\x10\x00!\x00\x00\x00\x04\x00\x 00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00 \x00\x00\x00Y@\x00\x00\x00\x00\x00\x00\xf0?\x00\x0 0\x00\x00\x00\x00\x00@\x01\x08\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x00\xc0r@\x00\x00\x00\x00 \x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x01\x08 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00@\ x8f@\x1a\xa5\x1f\xff\x06d\xfc?\x00\x00\x00\x00\x00 \x00\x00@\x01\x01\x00\x00\x00\x01\x00\x00\x00\x00\ x00\x00\x00\x00\x88\xb3@\x00\x00\x00\x00\x00\x00\x f0?\x00\x00\x00\x00\x00\x00\x00@\x01\x01\x00\x00\x 00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x0 0\x00\x00\x00\\\x02\x00\x00\x91\x01\x00\x00\x00\x0 0\x10\x00\x00\x00'

Are the \x02 etc the parameter values for the sequence of VST parameters? Any idea on how I can insert simple VST's into a project, without using the RPR_TrackFX_SetParam type params that only work when running scipts inside Reaper?
caseyjames is offline   Reply With Quote
Old 08-20-2017, 09:55 PM   #2
Human being with feelings
mschnell's Avatar
Join Date: Jun 2013
Location: Germany
Posts: 5,936

Been there some time ago, but don't remember details.

There once was a thread about decoding VST data (supposedly in this Forum). I posted several examples there.

mschnell is offline   Reply With Quote
Old 08-22-2017, 05:12 PM   #3
Human being with feelings
caseyjames's Avatar
Join Date: Jul 2009
Posts: 626

I went through everything I could find. Here's what interpret according to this thread : https://forum.cockos.com/showpost.ph...&postcount=172

VSTID - "bver", "mosr"
magic - "238^\237\254" consistent across all vsts
inputs - "002" "000"

This seems to be the input and output routing, but I don't know there is so much variation for a simple 2in/2out:
\002\000\000\000\001\000\000\000\000\000\000\000\0 02\000\000\000\000\000\000\000\002\000\000\000\001 \000\000\000\000\000\000\000\002\000\000\000\000\0 00\000\000\184\000\000\000\001\000\000\000\000\000 \016\000\000\000\000\193\

\193 seems to be the end of the routing for Reaverb but I don't see it in any other vst chunks.

My main interest is separating out the standard VST automatable parameters from the actual vst chunk data. Here I sent the first to Reaverb parameters to max/min and then min max. How do I interpret those values as floats?

225\201~@\000\000\000\000\000\000\000\000\000\000\ 128?
000\000\000\000\225\201~@\000\000\000\000\000\000\ 128?

The first two chunks are both Reaverb where I'm altering the first two parameters wet and dry to see where they show up in the chunk.

val g : string =
"bver\238^\237\254\002\000\000\000\001\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\0 02\000\000\000\001\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\184\000\000\000\001\0 00\000\000\000\000\016\000\000\000\000\193\225\201 ~@\000\000\000\000\000\000\000\000\000\000\128?\00 0\000\128?\000\000\000?\000\000\000\000\000\000\00 0\000FILELDR\000\136\000\000\000\012\000\000\000/home/mypath/test_IR.wav\000\000\000\000\000\016\000\000\000"

val g2 : string =
"bver\238^\237\254\002\000\000\000\001\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\0 02\000\000\000\001\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\184\000\000\000\001\0 00\000\000\000\000\016\000\000\000\000\193\000\000 \000\000\225\201~@\000\000\000\000\000\000\128?\00 0\000\128?\000\000\000?\000\000\000\000\000\000\00 0\000FILELDR\000\136\000\000\000\012\000\000\000/home/mypath/test_IR.wav\000\000\000\000\000\016\000\000\000"

val j : string =
"mosr\238^\237\254\000\000\000\000\002\000\000\000 \001\000\000\000\000\000\000\000\002\000\000\000\0 00\000\000\000!\001\000\000\001\000\000\000\000\00 0\016\000\000/home/mypath/timiditytest.wav\000\000\000\000\000\000\000\240?\ 000\000\000\000\000\000\224?\000\000\000\000\000\0 00\240?\000\000\000\000\000\000\000\000\000\000\00 0\000\000\000\240?\154\153\153\153\153\153\177?\20 5\204\204\204\204\204\235?\000\000\000\000\000\000 \000\000\154\153\153\153\153\153\201?\252\169\241\ 210Mb@?\252\169\241\210Mb@?\000\000\000\000\000\00 0\000\000\000\000\000\000\000\000\000\000\000\000\ 000\000\000\000\000\000\000\000\000\000\000\000\24 0?\000\000\000\000\000\000\224?\001\000\000\000\00 0\000\000\000\000\000\000\000\000\000\000\000\000\ 000\240?@\000\000\000UUUUUU\197?\255\255\255\255\0 00\000\000\000\000\000\000\000\000\000\000\000\000 \000\240?\000\000\000\000\000\000\240?\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\0 00\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\206\164!!\026e\144?\000\000\000\0 00\000\000\240?\252\169\241\210Mb0?\000\000\000\00 0\000\000\000\000\000\000\000\000\016\000\000\000"
caseyjames is offline   Reply With Quote
Old 08-23-2017, 02:01 PM   #4
Human being with feelings
caseyjames's Avatar
Join Date: Jul 2009
Posts: 626

After decoding the save chunks for a bunch of vsti's, I'm getting a sense of how different they are.

My assumption was that the automatable float parameters would be stored in a consistent format.

Is it that the vst api is what is consistent - where a vsti knows how to hand floats to the host and how to save a chunk, but the host only stores parameters with actual automation envelopes?

A few of the chunks seem to be xml/text but the majority seem to still be encoded like \000\000\000\000 are those floats, or is it more arbitrary?
caseyjames is offline   Reply With Quote

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:01 AM.

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