Is this possible with Max? (VSTi related)
Hello! I’m absolutely new to Max and wanted to ask whether it is possible to do the following thing:
1) load any VSTi plugin (I know that it’s possible)
2) display plugins’ own editor
3) list all available parameters (let’s say, in some sort of a table)
4) ability to pick any number of these params
5) display these params somewhere else on the screen visually as knobs and be able to change param values by turning these knobs (knobs should also represent value changes if they are mode through the plugins’ editor)
6) ability to group the selected params in groups and be able to enable/disable specified group(s)
7) ability to randomize values of the selected parameters; ideally randomization should be done according to specific algorithm; is it possible to use any programming languages to interact with objects?
8) link parameters to midi controller including one midi CC controls multiple params
As I said I’m new to Max. Gut instinct tells me that most of those things indeed can be done with Max. However I’m not sure whether they can be done the way I described. Especially I’m concerned about GUI part.
If you know any projects that implement any of the described things please let me know.
Absolutely possible. All of it, as far as I can tell.
Also, I believe if you google sufficiently you will uncover patches that already do most of this.
All of this is possible, although it is going to be a lot of work!
How does one use Python to interact with Max objects….is there a document somewhere on this topic?
dhjdhjdhj: I think the preferred method is Jython?
Below is something to get you started – if you look at the references files for the various objects you should be able to make it more streamlined but this is the core functionality you are looking for.
----------begin_max5_patcher---------- 1646.3oc2a00aaaCE8YmeEDd6QOE9Mk5vvP.JFvdYOjW2JJTrTr0fsjlEUc5 J59sORJIGI23XIWJZ6TfXY8gE44v68buWR1ubyjoOj8TbwTv6.+IXxjubyjI lKouvj5ymLcc3SyWEVXdroowayd3umNq5Vx3mjlKOWtJIs4pYkxUwR4myiqd ySSRkSm04.3C0OaRj42qdm+Di07BdLKUlFt17ymd2ljvUM2IsbcRp5ka5Ln5 KlGJmuLIcwG2DOWV0jn.hmHf.Iy.XNzCNCP45Owpuuqs0MSQx+ZZFDVc6csQ EBLMBQewudyM5Ol0SR5wUYpWxAoC0sCMLwCgoKdYpfZOpHPnANAYNvfmFKf2 892n5Lx3MeLNM7gUleD7DXnGJkxrCavbXhAeZvGSPM.eO32EmnS.KGvk3V.B p9m2QLCdQTBG3vO9n3222L7SOsgeKRKaBSixVWwMupfwKQLz.qSLUpCUziaH FY1hEJOmAic+gZ5yErFQPBG2O6eK6muNtnHbQ72XEvA+H5fLvKCeh8F54LjG kHPDpxkfX7Ip9D46BCfu6vCTKFdnkQBCRujhQbHamhX4vsdXVz5okaENvjaA wcFOGhUXClSHVTLkIDdHFRDbs5QAsnGEj4w37.F+ssKExhtTsnryfOUwpjn3 MCD9udlnFSN0aJuTN.yExyInovN83wo2QG6Xiw1TgNbcFKp8xfbOFJPPYWm5 LDt8zYXpZZv9HFi8lVmgHrn4SKJ6JQmg3aIclNX+xWmgLbCEKFPhRXdHZ.iv uR0Yv1SmgpJQl2vEug0YrXAlsorqEcFpkzY5f8KecF7fMTvVLfDgi7PAbJBc cpyf8smNCwm4Ev7wXzaZcFrEK6tMkcsny.sjNSGre4nyLOa85X8BcsmoxuC1 FV.JKTf.beV4hkf60jGHD73l3XP9pxEIopumsFbWYTRF38gqUlbfjGAeNqT8 iSk.Yl5EDCjKiAEpNKH9ov04qh2sDCqRRimmUlJaa1z1ziayY4vCqxjTXVWE BOnQ5ZXVc1zY7m+qMpmCrJrLc9xG1jssPQuKkx72c6sa2t0KTSqQFV0SMJca T11Tk0VTws4axhJmK8xWl+q4IQ+xcu+2fP7Kxpjg4qSs4bjXHbDqEgqWTyy2 TNhFt1G1d7ANvnzcUF0zhy1XCM71MfIx2hALgp7sP9bL9rDv7PqIp50FCP.L f.n.FfeXBZ1A96EItgJ2Kdsr5E6l3Mb0do.AOQiMgiR0.wrTpF09XWAUyrP4 eoxGRe.WcfTcfVcfUcfOafLoEiiQoU7GgUQl9m+0NKKONcfDhE2gFD8Dyw1w HDwYWOJeShJaSisZwzuE71rlu5cjPkhhPbZBJ1zCpKp6m0fMmP.eXaiAF576 cnKMYf03Y8r7Z7MN+wp+Tg7+pJf69WMhTQxhTMba+M8eqRJZuYHe8.31mGEF dDgHdrSwSyuIxV3mZ.5O7G59ulVLvSUPUYZx+TFqvwLfpsl1lrTUooPZqQCS yaJwZusgpAC5q2cHpHqby7lltYWiBdFEQwExjzPYRVZqGROoCsdnkIQQwl62 fxnjBc33nCqlX09Ch4r9CoOcGm0aDWT8FcKgORuw2c8F3kE4Pu3FqHGq2vcV 2QOSFe2ry5jn7LUffhlhSwZUYFupLCV0V1syYHt4P8SZN649f8.mXD.m.5wa VoCNoZu2hpPX6yPBXaDJfiBBIH6iPJk975jVAl5cWb2yPbdmwP93fPl8QHCo 5qn.gvXkh6LFh6LFh5LFhFGDFLBHzm6wa1Gi01kUU828L2LFRI1GgbkQXPyd etBEXVUsFcNCwEcPnXTPHidYksDqOwf2qSOp8m9DlgF3r9CsO9bL2ksM0uO7 i6Fun8Q0k5vbJ0YDwNV+gMPQRUfNVcX.BznVv8Yd358Du9JifTgAJziAkgp2 q++E1dPQuBaM6G2wDKGKaVhXnQmE6OrvnPOQyd9aLwxwphhPFHVzKmU8xMTi EpJUvlsj2nhEzQvBNXf4EF.2szI0XgDv7nM6cgQBKz9DZkRbmzXeBsRbXnrd EZ0ggx5SII60oG0INpOEARbWnLReB0Sb2L.rWScf9iCmnu9XOSb2D1P5i9Cw g1y8oXJh6RUDGbYMw0j9nOicm+NtO96Xg65O8hevtM09iV5r+.yUQuDr6kqB B5wa1xLiUdW8orIr67EP9i4zR.9vMe8l+G7M+RCA -----------end_max5_patcher-----------
grizzle, thank you for the patch. I will definitely investigate it later.
quote "5) display these params somewhere else on the screen visually as knobs and be able to change param values by turning these knobs (knobs should also represent value changes if they are mode through the plugins’ editor)
Please bear in mind that, if you wish to display ‘real’ parameter values on the knobs, that VSTs generally report parameter values as a float 0. – 1. This can make displaying the real values in a max gui a little more awkward. I’ve overcome this , for example with the Lexicon Reverb VST, by making a mixture of lookup tables, scaling and simple max patches to do the math to get the real values. Some, like Lexicon’s size/time parameters, were a little tricky to implement!
Hope this helps,
thats all possible, but you will have to put some patience into
controlling the vst~ object until it works like you wish.
dont try all of these things at once, start with the helpfile and
the reference for [vst~].
Alternatively, take a look at the wrapper I did for VSTs to hide some of the complexity. Here’s the blog entry that describes my GenericVST implementation.
you have that on the examples of audiounit~.. just make something similar with vst~ and it should be ok
Regarding python, there is version of python built by Thomas Grill that
allows you to load python scripts and run them.
You can route messages from the python external to any other Max object you want.