Does a M4L plugin exist which might collect a report of all mixdown settings?

Learn about building and using Max for Live devices.
Post Reply
rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Sun Feb 19, 2023 2:08 am

I am looking for a better way to document my mixdown settings for Ableton projects. Simply saving the Ableton project-folder, and a backup copy of any plugin settings, isn't a very good solution -- because this sort of data exists in proprietary formats which requires special software, and particular VERSIONS of that software, in order to load-up correctly. Anytime one upgrades plugins, or upgrades Ableton, or moves into a new PC, there's always the very real risk of losing access to mixes made using an earlier version of software. Mixes might load, but suddenly "certain plugins" aren't found, even though newer versions of those same plugs exist on the machine. Or worse, old software won't function on the new machine because it's no longer supported; etc.

I could delve into details about numerous problems I've had over the years along these lines, but for the sake of brevity, I'm going to hope that your experience has been similar, and you understand what I'm talking about. My concerns are both long-term and short-term. I mean, sure, I have mixes from 2001 that I'd "like" to be able to open today, but can't because the software was all 32-bit and the plugs were all 32-bit. But more pressingly, I have current projects that I'm working on, which will all be essentially "gutted' if I dare to update my plugins -- because Ableton won't see the newer plugs as being "the same" as the older plugs. I mean, this actually happened, because I actually tried updating my plugs, and I had to roll back to older plugs in order to keep working on my current projects.

So, for any and all of these reasons, whenever I finish a mix that turns out particularly well, I try to make the time to document all of that mix's important settings. And yes, this is quite time-consuming. I end up taking reams of screenshots, and using plain-text files to notate anything which might not be visible in the screenshots. I store all this information within the project folder, in a folder called "Screenshots," with a number indicating the version of the mix which has been documented within.

I would LOVE to stop doing this, because it literally takes hours to fully document a single mix, and it's no fun at all.

Because Max4Live has hooks into the Ableton API, I'm wondering if it would be possible to create a M4L plugin which might collect all the mixdown information which is important to me, and export it in some kind of widely-accessible format? Plain-text files, JPGs/PNGs, PDFs, CSVs, any such filetypes would be acceptable -- any filetypes which don't rely on specialized software to open.

If such a Max4Live plugin already exists, I'd be delighted if someone could point me to it. I've been searching, but so far I'm drawing blanks.

If such a Max4Live plugin does NOT already exist, then perhaps it's something I should look at creating -- although, I'm not sure I have the ability. It would certainly be a steep slope for me to climb. Maybe another member of the M4L community would be interested in helping-out?

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Mon Feb 20, 2023 1:57 am

Just wanted to add:

I found a M4L plugin called PlugView, by VKondakoff, which at least allows me to quickly export a list of all plugins used in a project, and how many instances of each.

Link: https://maxforlive.com/library/device/5190/plugview

It doesn't, however, tell me the version-number of the plugs, the names of the tracks the plugins are used on, and it doesn't document the settings of each plugin-instance. So overall, this is about 2% of the total information I like to document for a mix. And so, it's nowhere near what I'm actually looking for, but it's the first thing I've found that comes anywhere close to being in "the same neighborhood."

One would assume that, since Ableton recalls all plugin-settings when you open a project (as long as those plugs are still installed), Ableton must be saving all plugin settings within the ALS file. And if that's the case, shouldn't there be some way of using M4L to retrieve those values and export them? Along with other basic non-plugin-based mixdown values? It confounds me to think that those values are all saved in the ALS file, and yet there's no way of exporting them into a basic user-readable format, such as a CSV or whatever.

doubleUG
Posts: 250
Joined: Sun Apr 24, 2011 7:19 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by doubleUG » Mon Feb 20, 2023 12:52 pm

viewtopic.php?f=4&t=121089&start=15

Decoding ALS file format
copy the text, open Live > drag in empty M4L device > open Max editor > paste > save M4L device
https://docs.cycling74.com/max8/vignett ... ng_patches

https://doubleUG.bandcamp.com/releases

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Mon Feb 20, 2023 2:32 pm

That’s interesting and helpful info. Thanks for pointing that out.

(I’d still prefer a more human-readable kind of export than straight unformatted xml — but in a pinch, just being able to open and read the .als file would likely prove a “not completely unreasonable” solution.)

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Wed Feb 22, 2023 5:02 pm

It's good to know that an ALS file is really just a gzipped XML file. I decompressed a copy of a recent Ableton project, and took a good look at it. Technically, everything I'd want to document about a project "is there" in some form.

But!

All the numerical values are stored within the XML using some kind of floating-point math. I guess Ableton must apply some kind of mathematical transformation, at runtime, in order to change these saved values into what I see in the program.

Having those numbers in the form in which they're stored in the XML does me no good at all.

Does anyone know how those numbers get transformed by Ableton into the actual values presented in the program? Frustratingly, I imagine there might be many different transformations applied, depending on what the value represents -- for instance, I would imagine that the value representing the panning of a track would have one kind of mathematical transformation applied, while the value representing volume would have another. And I imagine many of these transformations might be logarithmic functions, given how dB is a logarithmic scale.

Has anyone figured any of this stuff out? Is anyone aware of a reference somewhere?

Rivanni
Posts: 423
Joined: Sat Nov 26, 2016 12:30 pm

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by Rivanni » Fri Feb 24, 2023 9:55 am

The values stored are internal values, which are different for each control.
Without knowing what the internal values stand for, you'll never figure out the value presented in the program.

Take, for example, the cutoff frequency of Autofilter. The device shows the value in Hz but uses a range of 20 to 135 internally. Setting the cutoff to 986 Hz results in the following:

Code: Select all

<Cutoff>
	<LomId Value="0" />
	<Manual Value="82.9761887" />
	<MidiControllerRange>
		<Min Value="20" />
		<Max Value="135" />
With the manual value, you can calculate the relative position of the dial but not the value that is presented in the program.

Panning has a more understandable range of -1 to 1, so a pan of 30R gives you:

Code: Select all

<Pan>
	<LomId Value="0" />
	<Manual Value="0.60" />
	<MidiControllerRange>
		<Min Value="-1" />
		<Max Value="1" />
Here too you need to know how the internal value translates to the human-readable form.

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Sat Feb 25, 2023 11:49 pm

Rivanni, thanks for helping to clarify the problem. The issues you speak of were on my mind, but you explained them in a way which is much clearer than I was able to do. Also, you brought a bit of vocabulary to the problem which helps to identify the difference between the two sets of numbers: The idea of the "internal value" (recorded within the XML) versus the "human-readable" value (presented within the program). That doesn't get me closer to a solution, but it always helps to clarify the problem. Also, you "get" the problem I am describing, and I appreciate that.

Alas, this approach to reverse-engineering mixdown details from the project XML might be too daunting for me to figure out. I am, unfortunately, not a mathematician, and I haven't the faintest idea how to even begin figuring out what formulas Ableton uses to transform various internal values to their human-readable counterparts. You are right -- the process would begin by understanding what "range" the human-readable values can occupy, and it would also help to know what "unit of measurement" they represent. For any values presented in dB, it's likely that the transformation formula is a logarithmic function, because dB is a logarithmic scale. But while I know that, it's not like I know what to do with that information. I can generate various values in Ableton and see what the internal numbers change to -- but figuring out the equations by which those transformations happen is just probably beyond me.

So, as interesting as I find this question, and as helpful as it would be to develop a plugin which can export a report of various mixdown settings, I'm afraid this all looks too daunting to me. And yet, the questions do still linger in my mind. I do work in the field of education, and so I do know some folks who teach physics and various other maths. Perhaps those people can shed some insight; I'll ask around. I'll post follow-ups if I anything else useful comes to light.

Rivanni
Posts: 423
Joined: Sat Nov 26, 2016 12:30 pm

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by Rivanni » Sun Feb 26, 2023 2:18 am

My previous post was purely about the XML file. However, Iost track of it being posted in the Max for Live forum. So I must add the following.

Max for Live uses the same internal values as used in the XML, but it has one bonus feature: it can tell you the actual value as presented in the the program. This value is a read-only string of text that also includes the unit if there is one.

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Tue Feb 28, 2023 7:47 pm

Max for Live uses the same internal values as used in the XML, but it has one bonus feature: it can tell you the actual value as presented in the the program. This value is a read-only string of text that also includes the unit if there is one.
That's good to know. That tells me, then, that Max for Live is likely to be the best way for me to approach this problem.

If you have any examples of how one might reference one of Live's internal strings from M4L and present the user-friendly values within the M4L plugin, that could be helpful. Or even an example of any plugin which implements that trick. Examples are always helpful.

Otherwise, I'll just keep expanding my general knowledge of M4L until I happen across the answer. (That might take awhile, lol!)

Rivanni
Posts: 423
Joined: Sat Nov 26, 2016 12:30 pm

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by Rivanni » Wed Mar 01, 2023 5:22 pm

I have here an example that shows you what you asked for.
Paste the code below in an empty Max Audio Effect and save it.
Load a Live device, select a control and change its value.
You see the internal and string value change.
I hope this helps.

Code: Select all

<pre><code>
----------begin_max5_patcher----------
2300.3oc6bkziiiaE9bU+JDzYOFbmh4VlbNmBxbYPPAU1rboNxRFRxtqNCl7
aOjTKVaVlpLsbmYZ2n7hHMe58w29it+smex+0zOj49d+Eue06om9sme5Iykz
W3opO+j+9vO1DGlallebzI45Mo62KSJ7WUNgB4GElA+m4Ruh2kdQIExrjvXu
SgwGkduklYt7aGS1TDkln9PXg2NYhLKrPlaFKuHKJYW8JFGkH2jdLwrrnpKF
s0PjzW+xOQZS5ubLuH5snMg50VOEP0fIG2GkDKKL24vpKdHrXy6JR8RlbSQI
miXAqoPFihoBNlRBBDq7HbxZJiw3BDVf3X.GtxCRwqAq7Ph0.u+0YpjdrnlL
.8E+8meV+zJWfoahkgYdxOhTLYxtRDM2eHjfcKjPYqA8gDFgo4dH.YdIvofv
dYdd3N4.9OW1fIkTn3aGjk2j99MzuEP.Q9iwrnIXVHZLlEuFJTO3L.NPfQAq
7vk69nKx30HZdw2hM2j9YmR9InuqEJ9GczVNjIyUyxrY2hsfPy1DjpegHFrm
0By3PqjdZSn1rqsRUbBXMSAzbLB.wHDkxV4wQj0AXr5ibEPq9GQgzD3cPDaR
H8uG9gU3I2F3DsHvISoj9cKbFkXEbx.V.m3EANoJK9LgBOwXg.iC3HzRBmIx
upX1A.ohqNHS15Ma6fr.eWndxPr0AZyfDHfyIHrxMnBnVL6fNGV3yEVHBiY+
+vADXeWXu4ObvBw2E1MdzvxXFmufgXlXsn7AG.Ug6vCp8xI3qYkOBTAGohKB
cYizL5iymGSPG.1L5B4xaFnZoytYgprGmqOlvDt+cAHufVag2qdudQ80WC0w
7V85XnEgMWcWLELLzeNWyw3qoshFSa0glv1JeSlEm90Yl9CctXPU9bpLfGnD
QYeFKV2Ay3aBii00H3k2RydwjC77PkY6zWYXYnfAEvVKT5spAgPU1vnxZBP+
NAjlsutfOonh6bt8.bsIlsqMwhXCtFaYjAXKgu74an3+YIKgEy11a.aXY2vH
7ZD..fbl.vnATltVLAOXMrbYrG3p9kFGWBla4nvbvPbAwECDKvzGrGpLEsjS
JobQTg6FTQkwJTkcNFvHXHWkhNR6HaofkIq.xeKMoHKM1ppfPJqBRf81jfKS
E6px8czpf78XD1UU6bNV2g3GWsO++kDWH1k3xaJQ92B2HaCEutaSZbZV4ZaV
lNOM5NRSX75ELO5+Ttf5uxxIxeOy9YR6F+R6namzpgvhRQSAKhzcEXELL1kx
NlsLwt74xXhBmcjKi5KBLlunEKApK0+rcxBujv8xUd52o3up2btcGVhRj45w
lHPq4r9sUUk5.srsZBAhA3PsQDF4AGfWYjLZbRCQZzw1rMW06uQy9b7ncnyD
6nLzPuvnxzFl.6n2YryXMSMf9ledhTrIEo532Pn74f3DJPD.vBzJKuDrEpXs
HZ.bXm+Yetj7quX3I41WJwnWBKJxhdUIukWg0Uf8S9ubPlkGkWHSp7gZttYW
xs6U4xrSxr4G1Nk+n2wpxRdz8n.9mJv+G1dzkLYeHKUQjhu48IJzEc1oaVin
iYXNP7fsKajWKdOJeq7TzF4USAORGPU4KihNBmTfXB9b3WS.N36suc0866dZ
H5kbkK8SQxu5kKiU26JA4CgYJuYESokOZCG.yNw7wPHHZ3omAgPOXoIc6Eh0
+c8R4r5Jk0gAcS4t3JbRYGCSgpDB4btfpz5TQWNINQVBsNsv00C6YTrA4DsL
HCrlXxl.nDm3jfysPaIT5tT8QiOtSQt+6Egl7ncIgwZvo5ciAQnqjg6nJe54
pCQ0rJ+0rnvXueNMto5aiZaOXXQGfTiexpixH3xdKcKnEkbiXF7AhY74CYlo
XNIq8NfsFZpudWbLO8X1lZ.op6LdmIzVo9.f1jf9u1zZB8bFcmxV5nyNwCeE
BwBbEktFKw3thRvqQIhqnD5ZTB6BJYA3oSop0j1Gs8PpJXn75C5LYnKHJANr
gSXScKlXHBaX+HnpHIQCxlZvDuQXfYidAzE.NyFDGxbAkH1nX3DJgsgRTWPI
jEpf5Zuc6TBZilQvTZFXwHm2cBDMPFGBg5fyFNjK3gqhVcsp0iGHvQBvjPG1
gAHWX3gAC4Bd.aiEpKyCpXSFxCfglgXkEjYpgTgJNvBEIXLKTf6.NbMWBTW3
7Qms100lQNfRTgETh3BKTTaruScQPBTqru6Bag8bKONk5EcTOMiQctRAzgUD
11Ydq7D4liGY7.FT5n1wSiLyakmrwSB1ExdDajHpUuucJcMOKPzjdG4iD2HD
VUNG3EF6Fuuw1Xwg4h3GzGQmqhPXWjpE1FKNXWjpUsYqIoTWKsoYakYMkz99
R4IM0UEiEkNzANp7mdyTCAFFz1348.FFBWej.baHAx9L36SYx8mxL13jFs.j
ldWj7PyHes9jFu.jFONouQoLKnrKh.zlDTpR4aPUvBOb3jtsYkS1PB+8geor
YgAqLeLJo7il1U6mIOEUOeSIc8Cy17dTgbSwwrxp48Q0OUG+8oJfL4XTkDjh
4dtp9u8p7VSg.aZ6m9HiDdLtnKuGtYiLonS2LQ7.BFh4HJQ.LctDKPP54tWp
uDsdBPACXNNZspTXuCBEbXuPs4RcWw2hhiaV01coLLYWY0uQLUtdbNGhoLBQ
vYAUGG.0bNVjtKKbajr72YeSkT60HWyMR8Ssne0zfVNOTCmC4TLyvcPFshOI
DLNn2WS2GzzrlipjBwaFongpT.QPgqJ2hPLXqudQCIolVMSOOVcsm8a.fp13
V2Ia8u5dWzN610Jty5QoclpdlrRwlJ4Ly8b2kq29ubaj9+S.domjEFPCBPXJ
RPTPsAns4RcV4X4d2qAztV7JCF+hLaaXRnemwqqqe4YbqYn3zM+a416.mV1u
TkHV2M6FH2vf5UInyhX1bHm+LgC5sv5dezYMMS57hXVyga3z1vGAeg07knDs
8ToKNqEOeVtW4KHSsset0YUFI2qrPFU6opsui1FTq6OyOLo9CSpOFSpnyhSJ
oECCPwcdXT55nF9CSpKjI0fyF0zLzkL+0YRz+zXRsLLYSez0am4GpNE8l1s+
7u+7+CrI1AGJ
-----------end_max5_patcher-----------
</code></pre>

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Thu Mar 02, 2023 5:26 pm

Fantastic. Thanks much for the example. I'll take a look at it the next chance I get.

rdan76
Posts: 33
Joined: Sun Jan 10, 2021 1:07 am

Re: Does a M4L plugin exist which might collect a report of all mixdown settings?

Post by rdan76 » Sun Mar 05, 2023 5:24 am

Rivanni, I just wanted to say that I checked-out your example tonight, and it works exactly as you stated. This is a good, working example which demonstrates how the user-friendly values can be retrieved from whichever control was last touched by the user. I'm in the middle of a big mixdown project currently, so I won't get around to digging much deeper for a bit. But when I do, it will be useful to pull apart your example to better understand how it works.

So, basically, I just wanted to say Thanks. I appreciate whatever time you put into that.

Post Reply