Exporting vst parameters in text format

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Is there any application which can export any vsti or vst-fx preset parameters in text format, e.g. using a csv file structure, delimiters could be a comma or a tab.

If yes, is it possible to export also all presets parameters values from a whole bank into a single text file using for each preset one line. e.g. a bank of 128 preset programs would result then in a text file having 128 lines, each line listing all values from all preset parameters, separated by a comma or tab.

Why and how would this be useful?
We could compare vst-preset parameters using tools which can work with/visualize data in text format, e.g. for similarity analysis, further statistics, clustering and more.

Or asked in another way do any .fxp and .fxb to .txt or .csv file converters exist?

Thanks in advance.

Post

hi, there was a small steinberg app that allowed to do that...but i can't remember the name! sorry...

Post

No problem, at least it is a hint that I have to use the term Steinberg in my searches. I suppose Steinberg would have not linked it somewhere on their websites, I would assume more maybe in one of their SDK packages?

Post

would love to have a forth and back converter to easily manipulate vst presets
Last edited by amiga909 on Mon Aug 03, 2009 2:13 pm, edited 1 time in total.

Post

You just have to parse/convert nulls into readable characters then you can extract ledgable parameter strings from the FXB/FXP using a character pattern in a loop search.

For instance:

Code: Select all

CcnK   ØFxBk   MDAp                                                                                                                                      CcnK   'FxCk   MDAp      mda Piano e 1\Desktop\1234  ?   ?   ?       ?H'9>€ƒ>Àƒ?   >ë…?   >{çm?   CcnK   'FxCk   MDAp      Plain Piano 1\Desktop\1234  ?   ?   ?       ?<j    >° Å    >k…?       ?   CcnK   'FxCk   MDAp      Compressed Piano ktop\1234  ?aG®>ÌIº?|î    ?["Ñ>©xÕ>ƒo>ÿ|î>ë…?       ?   CcnK   'FxCk   MDAp      Dance Piano iano ktop\1234  ?   >Týô?_;d    ?€      ><j>e'B>ë…?       ?*ÀƒCcnK   'FxCk   MDAp      Concert Piano no ktop\1234  ?%ãT?   >Ä›¦>}ó¶>
Image
stay juicy!

Post

thanks for the example, Optomadic.

hmmm... parameter names are not written in the FXP? they are stored in the DLL?

and how would u want to determine which param names are the same across all plugins (if u want this)?

Post

Optomadic wrote:You just have to parse/convert nulls into readable characters then you can extract ledgable parameter strings from the FXB/FXP using a character pattern in a loop search. ...
After null conversion I'd be looking for strings between characters and \.
Thanks Optomadic for your tip but this goes above my understanding and application level. Some simpler solutions would be nice, I just can not imagine such a tool is not existing yet. How are others comparing preset parameters in bigger sets?

Post

I got a huge outdoor gig today.
When I get back I will check to see if fxb formatting is universal across all vst(i)'s.
I wrote a null character converter a couple of weeks ago that worked intermittently.
I'll see if I can get it to convert fxb/p's to and from text format.

Perhaps someone could code something up while I'm gone??
Image
stay juicy!

Post

The main reason why something like this doesn't exist is that it won't work with all plugins (you can save yourself the extra work to figure this out !), as some plugins use float data and some use raw byte data, where in the latter case a tool like this will be pretty useless, as it won't be able to tell what a parameter is and what not.

For the former case it will work, and you'll end up with only a list of floating point values per preset. If that's what you want, go for it ! :)

Post

plastique wrote:... and you'll end up with only a list of floating point values per preset. If that's what you want, go for it ! :)
Yes, exactly that is what I am asking for, just a list of numbers for each preset, preceded by the preset name in column one or in the last column, nothing else.

The parameter values would be the "extracted features" of that particular plugin preset.

Post

I think a better way would be to load/wrap the VST plugin, and call getParameter/Name/Label to get the human readable names that a plugin is supposed to provide, then dump them into a file somewhere. Unfortunately not all plugins provide those either in very useful format, and it might not include everything, but at least that should be more usable, and for plugins that do provide meaningful values, you might be able to get things like envelope timings in formats (say milliseconds?) that you might even be able to compare between different plugins with minimal effort (with obvious pitfalls of every plugin's interpretation of what the times mean, ofcourse).

Post

Hi there,

I once wrote a program to convert the parameters of all programs of a VST plugin to Excel. See http://www.savioursofsoul.de/Christian/?page_id=111.

It hosts the plugin and queries the parameters via the automation support. Though it only works if automation support is available.

Maybe this is useful,

Christian

PS: The code is open source (except the Excel export itself)...

Post

Thanks Christian,

but I could not find a help file or a manual for it, also I could not find where the source code is.

I am not an expert in this field but I suppose the probability of being the number of plugin parameters bigger than 256 is smaller than the probability of being the number of plugin presets bigger than 256. Or said in a different way I would write each preset into a new line and the parameters into the columns. Preset2Excel.exe does just the opposite. So it seems it can not handle plugins which can have more than 256 presets like e.g. in V-Station.

I have to try also if Preset2Excel.exe accepts .fxb names in the command line, e.g.

Code: Select all

Preset2Excel.exe plugin.dll presetbank.fxb
Anyway, thanks Christian for writing this useful tool.

Post

Also take a look at MissWatson

http://www.teragon.org/products/MissWatson.html

I think it can send the parameters to standard text output.

hth
Image
stay juicy!

Post

I was able to convert preset files to text...

but
plastique wrote:...you'll end up with only a list of floating point values per preset....
This is exacly what happens making it useless for some plugins.
See here:

Code: Select all

CcnK  )FBCh   MrTr   ÿÿÿÿ                                                                                                                                  (çË 
       Ôj  ÏF  Ì  "m  2g  ‡~  ^0  ¤_               ¾  Ö,  l=  áJ  Ri  ]n  ®r  -  €   MrTramp	Patch   2	Patch   3	Patch   4	Patch   5	Patch   6	Patch   7	Patch   8	Patch   9	Patch  10	Patch  11	Patch  12	Patch  13	Patch  14	Patch  15	Patch  16	Patch  17	Patch  18	Patch  19	Patch  20	Patch  21	Patch  22	Patch  23	Patch  24	Patch  25	Patch  26	Patch  27	Patch  28	Patch  29	Patch  30	Patch  31	Patch  32	Patch  33	Patch  34	Patch  35	Patch  36	Patch  37	Patch  38	Patch  39	Patch  40	Patch  41	Patch  42	Patch  43	Patch  44	Patch  45	Patch  46	Patch  47	Patch  48	Patch  49	Patch  50	Patch  51	Patch  52	Patch  53	Patch  54	Patch  55	Patch  56	Patch  57	Patch  58	Patch  59	Patch  60	Patch  61	Patch  62	Patch  63	Patch  64	Patch  65	Patch  66	Patch  67	Patch  68	Patch  69	Patch  70	Patch  71	Patch  72	Patch  73	Patch  74	Patch  75	Patch  76	Patch  77	Patch  78	Patch  79	Patch  80	Patch  81	Patch  82	Patch  83	Patch  84	Patch  85	Patch  86	Patch  87	Patch  88	Patch  89	Patch  90	Patch  91	Patch  92	Patch  93	Patch  94	Patch  95	Patch  96	Patch  97	Patch  98	Patch  99	Patch 100	Patch 101	Patch 102	Patch 103	Patch 104	Patch 105	Patch 106	Patch 107	Patch 108	Patch 109	Patch 110	Patch 111	Patch 112	Patch 113	Patch 114	Patch 115	Patch 116	Patch 117	Patch 118	Patch 119	Patch 120	Patch 121	Patch 122	Patch 123	Patch 124	Patch 125	Patch 126	Patch 127	Patch 1282.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.502.500.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.4000.40.. you get the idea
I have to agree with plastique, doing it this way is kind of a waste of time.
It will not be universal, very difficult to parse conditionally, and more importantly I found it has file size limitations.
:(

I'm checking to see if this format or the 1st I posted are the only 2 generated.
If so then theres a slight chance it could still be done this way..
No promises though..
Image
stay juicy!

Post Reply

Return to “DSP and Plugin Development”