Decoding ALS file format

Share your favorite Ableton Live tips, tricks, and techniques.
suite spot
Posts: 13
Joined: Thu Dec 29, 2011 9:56 pm
Location: Sydney
Contact:

Re: Decoding ALS file format

Post by suite spot » Wed Sep 19, 2012 10:06 pm

Send me the als file (via the aatranslator web site) and I will see what I can do (no promises).

queglay
Posts: 522
Joined: Wed May 03, 2006 7:15 am

Re: Decoding ALS file format

Post by queglay » Sat Apr 20, 2013 5:54 am

any luck with .adg files as well?
Load VST Presets from Push's Browser!
http://www.audiomodder.com

suite spot
Posts: 13
Joined: Thu Dec 29, 2011 9:56 pm
Location: Sydney
Contact:

Re: Decoding ALS file format

Post by suite spot » Sat Apr 20, 2013 6:12 am

queglay wrote:any luck with .adg files as well?
We have the ALS files down pat - what does the .adg file do?
Send me one of these files and I will check it out

Send it via the aatranslator web site

queglay
Posts: 522
Joined: Wed May 03, 2006 7:15 am

Re: Decoding ALS file format

Post by queglay » Sat Apr 20, 2013 7:01 am

.adg files are ableton library presets. my idea is to batch generate .adg files for all the native instruments presets, or any vst for that matter so push will play nice with its own library. I'm starting with massive.

I loaded a preset in massive called additivum, then grouped it to save it as a .adg instrument rack.
Extracting the .gz and then opening the xml file reveals the meat of the vst data is stored under the vst preset buffer in the xml.

This buffer section (for the preset called additivum) is 8.5k. And the the .nmsv massive preset file for additivum is also 8.5k
This is great news, cant be too far off...I ran a diff using hexfiend on osx and there are about 130 differences between these two. im not sure where to go from here. pretty sure if i just copied the .nmsv file into there without more formatting it would break.
Load VST Presets from Push's Browser!
http://www.audiomodder.com

suite spot
Posts: 13
Joined: Thu Dec 29, 2011 9:56 pm
Location: Sydney
Contact:

Re: Decoding ALS file format

Post by suite spot » Sat Apr 20, 2013 3:02 pm

Sorry - the .arg file is outside the scope of my current workload which is daw format conversion

queglay
Posts: 522
Joined: Wed May 03, 2006 7:15 am

Re: Decoding ALS file format

Post by queglay » Sun Apr 21, 2013 12:50 pm

I've got two files. the first is the vst buffer extracted form the xml. the second is the nmsv file (the preset). they are super close. 137 differences between the two using a hex difference. and similar file size, but not the same.

I had a crack at just pasting in the nmsv straight back into the xml, but it didn't work. i guess i need to understand what the differences are and start to figure out a method of patching.

A great deal of it is readable as acii, but there a bunch of weirdass characters still and im not sure how to interpret what they are all doing.
Load VST Presets from Push's Browser!
http://www.audiomodder.com

DukePack
Posts: 7
Joined: Sat Jun 01, 2013 5:13 pm

Re: Decoding ALS file format

Post by DukePack » Sat Jun 01, 2013 5:20 pm

Hi yall,
I am interesting with the preview sound of a adg file in a pack. I want to use it as a clip.
So I did my research, learned that adg files are compressed xml binary files containing information that might be useful.
So i applied the gzip xxx.adg > xxx.xml in my MBP terminal.
I got a xxx.xml in the folder but it is Zero octet. The adg files is 29Ko.
I dont get why my xml is empty?

Any clue?
Thanx

Peace Out

DukePack

kevtubio
Posts: 11
Joined: Sat Jan 14, 2017 8:19 pm

Re: Decoding ALS file format

Post by kevtubio » Mon Feb 12, 2018 10:14 am

dr_rock wrote:I know I'm pretty late to the discussion here, but I was just playing with ALS files and discovered they are gzipped XML files. To decompress them you'll need a tool that can handle gzip. My suggestion is to copy the ALS file then decompress with your favorite tool. If you don't know what you're doing with gzip you may permanently damage your ALS files. Use at your own risk.

On Mac OS X you could simply open Terminal, cd to the file location, and execute this: gzip -cd MySong.als > MySong.xml

They are pretty large and complex XML files. For instance, the default template is 2,082 lines, and a simple live set of mine was over 43,000 lines of XML - but the format is very readable and clear. Their engineers obviously know how to write solid code. They are German after all. ;)

Here's a snip to give you an idea of what's in there:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<Ableton MajorVersion="4" MinorVersion="8.1_225">
	<LiveSet>
		<OverwriteProtectionNumber Value="5" />
		<Tracks>
			<AudioTrack Id="0">
				<EnvelopeModePreferred Value="false" />
				<TrackDelay>
					<Value Value="0" />
					<IsValueSampleBased Value="false" />
				</TrackDelay>
				<Name>
					<UserName Value="Guitar 1" />
					<Annotation Value="" />
				</Name>
				<ColorIndex Value="140" />
				<TrackGroupId Value="-1" />
				<SavedPlayingSlot Value="-1" />
				<SavedPlayingOffset Value="0" />
				<MidiFoldIn Value="false" />
				<MidiPrelisten Value="false" />
				<Freeze Value="false" />
				<VelocityDetail Value="0" />
				<NeedArrangerRefreeze Value="true" />
				<PostProcessFreezeClips Value="0" />
				<MidiTargetPrefersFoldOrIsNotUniform Value="false" />
				<DeviceChain> ... </DeviceChain>
Etc. The <DeviceChain> tag is by far the largest, as it contains the ClipSlot values, gobs of info for each plugin including each parameter and some type of serialized buffer content (big blocks of hexadecimal values).
Hi,

Is there any clue on how to work this around live 9 or 10 .als files?

I maneged to recover few live sets that got deleted accidentaly, when loading them up I get the corrupted file error ¨unknown compound stream type¨ and since I just have a trial license of live I can´t contact suport.
I found a post online that covers my issue and explains this same stuff, just can´t get the sets uncompressed in order to edit them.
I´m pretty sure this live sets were made with live 9.7.4

Here is the post I found: http://news.metaparadigma.de/ableton-ma ... iles-4423/
I´m asking to much here, I know, any hint would be truly apprecieted.

jestermgee
Posts: 4500
Joined: Mon Apr 26, 2010 6:38 am

Re: Decoding ALS file format

Post by jestermgee » Tue Feb 13, 2018 1:44 am

How many projects could you have possibly created that need to be rescued using the 30 day demo?

kevtubio
Posts: 11
Joined: Sat Jan 14, 2017 8:19 pm

Re: Decoding ALS file format

Post by kevtubio » Tue Feb 13, 2018 9:30 am

jestermgee wrote:How many projects could you have possibly created that need to be rescued using the 30 day demo?
Just enough, I think nobody likes to waste time on a project and, what's worse, having time counted, you wouldn't understand it, would you?

In any case, the method described above works on other projects of mine, I guess the corrupted files were overwritten before I could rescue them and as a result got seriously damaged.

lunch
Posts: 21
Joined: Wed Jun 23, 2010 1:00 am

Re: Decoding ALS file format

Post by lunch » Sat Apr 07, 2018 9:10 pm

you guys just saved me the better part of an afternoon. thank you.

on live 9.7.x, i renamed set.als to set.als.gz, and decompressed it with 7zip. it worked great.

empty set is 151k of xml cruft... will have to save changes and diff. ;)

have a great day!

aarvay
Posts: 1
Joined: Thu Mar 21, 2019 4:47 pm

Re: Decoding ALS file format

Post by aarvay » Fri May 03, 2019 11:48 am

Hello people,

I made a decent lead patch in serum and was arranging the track slowly. One day I open the project and the serum patch went to init. It's really frustrating to lose work this way. I know how to patch it back, but it won't sound the same as I had so many mods going around. We're in 2019, and this problem still exists. I just can't understand why. Moreover all my plugins are purchased full versions; still craps out like this.

So I was thinking if I could parse the ALS file and protect my patch myself and came across this thread. How're third party plugin data stored in ALS files? Binary blob? Tree? Can something be done?

Is there an other way to make sure things don't crap out like this?

Thanks in Advance

shabo
Posts: 3
Joined: Sun Mar 07, 2021 3:18 pm

Re: Decoding ALS file format

Post by shabo » Sun Mar 07, 2021 3:25 pm

Hey guys!

I've been working on a little project to help me port my projects to a new machine by updating sample references. Basically I'm writing a Python script that:

1. Decodes an ALS file
2. Finds all external sample references
3. Copies these files to the project folder
3. Updates the references in the XML file
4. Encodes the XML file and saves as ALS

I've successfully implemented step 1-3, but the last one wont work as Live sees the encoded file as corrupted. Does anyone here have an idea of how to solve this? I'm using the default python xml library along with the gzip library.

jestermgee
Posts: 4500
Joined: Mon Apr 26, 2010 6:38 am

Re: Decoding ALS file format

Post by jestermgee » Sun Mar 07, 2021 8:53 pm

shabo wrote:
Sun Mar 07, 2021 3:25 pm
Hey guys!

I've been working on a little project to help me port my projects to a new machine by updating sample references. Basically I'm writing a Python script that:

1. Decodes an ALS file
2. Finds all external sample references
3. Copies these files to the project folder
3. Updates the references in the XML file
4. Encodes the XML file and saves as ALS

I've successfully implemented step 1-3, but the last one wont work as Live sees the encoded file as corrupted. Does anyone here have an idea of how to solve this? I'm using the default python xml library along with the gzip library.
Why not just do “Collect all and save” in the Live file menu as this does the exact same thing for this reason.

shabo
Posts: 3
Joined: Sun Mar 07, 2021 3:18 pm

Re: Decoding ALS file format

Post by shabo » Mon Mar 08, 2021 9:08 am

jestermgee wrote:
Sun Mar 07, 2021 8:53 pm
Why not just do “Collect all and save” in the Live file menu as this does the exact same thing for this reason.
Because I have like a thousand live sets which this needs to be done for, and it would take me a week just to open all of them. By the way, I succeeded in doing this so if anyone is in need of the code, I will be posting an updated version on https://github.com/shhmon/LiveCollect

Post Reply