Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I find it really frustrating that the Ableton format is closed

Last time I checked, they're just plaintext XML, so while the format is proprietary, it's trivial to "reverse engineer", if you can even call it that.

> Want I want is the fastest path to making beats using physical interaction with MIDI hardware based upon loops and one-shots I have, without endless coding or fiddling. Open to purchasing new hardware.

If you're already using Ableton, this should be easy as long as your computer/audio interface has a midi out port, you basically just select what midi channel a Ableton midi track should use, and start sending stuff, no coding or fiddling required :)



I'm aware that the format is undocumented XML, thank you for sharing anyway.

I've found it painful enough to reverse engineer that it sucks the joy out of any Ableton programming.

I honestly believe this is one of the most end-user unfriendly decisions in the digital music world.

> If you're already using Ableton, this should be easy as long as your computer/audio interface has a midi out port, you basically just select what midi channel a Ableton midi track should use, and start sending stuff, no coding or fiddling required :)

That requires clicking around in Ableton though, right? My goal is to generate like 100 different projects and jam on the effortlessly.


>I've found it painful enough to reverse engineer that it sucks the joy out of any Ableton programming. I honestly believe this is one of the most end-user unfriendly decisions in the digital music world.

It's supposed to be a DAW to sequence, record, and play live in.

Not a target for programmatically generating songs.

>That requires clicking around in Ableton though, right? My goal is to generate like 100 different projects and jam on the effortlessly.

Does your goal involve a DAW?


> I honestly believe this is one of the most end-user unfriendly decisions in the digital music world.

Eeeh, you're brushing past A LOT of decisions across the years, many much more unfriendly than "Lets dump undocumented but plain-text XML into a file and change the file-extension". At least some engineer as Ableton thought enough of us to let it be plain-text, that's pretty friendly compared to all the horribleness out there.

> That requires clicking around in Ableton though, right? My goal is to generate like 100 different projects and jam on the effortlessly.

Yeah, if you just wanna send midi out to one channel, I think you'd be able to do it with 2 or 3 clicks or something like that, unless you setup a template and you'll only have to do that once.

Do you really have that many unique midi setups you switch frequently between? I have one "template" per setup, that I made once, that is used for a starting point for every project, where each one has a slightly different midi/audio in/out setup. But when I wanna jam, I essentially open up the template, then save-as, and it's ready for midi in/out and audio in/out, maybe something like that could work for you?

Basically, instead of trying to aim to generate all combinations up-front, have one template as a starting point, go from there when needed.


Have you reversed engineered the Ableton project format?

I got frustrated the last time I tried, and currently LLMs tell me "Live updates break things constantly". Are my fears oversold? At the time I was doing it, I was trying to control all the parameters of Ableton native synths which was a headache.

Now what I want to do is mainly create different kits of loops + one hits using ML, at the bare minimum.

I have a background in audio ML so I imagine there would be other sorts of thing I might want to do later. But currently it's just one "template" with different filler sounds.


> Have you reversed engineered the Ableton project format?

I'm not sure I'd call it "reverse engineer" even, you'd do something like:

    $ mv DefaultLiveSet.als DefaultLiveSet.xml.gz
    $ gunzip DefaultLiveSet.xml.gz
    $ cat DefaultLiveSet.xml | head
    <?xml version="1.0" encoding="UTF-8"?>
    <Ableton MajorVersion="5" MinorVersion="10.0_370" Creator="Ableton Live 10.0d150" Revision="">
      <LiveSet>
        <NextPointeeId Value="17335" />
        <OverwriteProtectionNumber Value="2560" />
        <LomId Value="0" />
        <LomIdView Value="0" />
        <Tracks>
          <MidiTrack Id="12">
            <LomId Value="0" />
There isn't much more to it :) It wouldn't say it's the best structure/design, but it's all there in plain-text basically, so pretty easy to just read through it or search.

> currently LLMs tell me "Live updates break things constantly". Are my fears oversold?

Just stick with the same Ableton version for the duration of your work on those tracks, it's basically what you wanna do regardless of how complicated your project/setup is, as things do change between versions. But FWIW, none of the projects I've manually edited have broken, at least when I last moved from 11 to 12.

> I was trying to control all the parameters of Ableton native synths which was a headache.

For that you'd go for MIDI, but if you truly need 100 project files to run one by one, then generating those XMLs with whatever, changing the file-name and opening up in Ableton with the midi afterwards feels like it shouldn't be too hard.


Touchdesigner TDA pretty much figured it all out a while ago, I use both together all the time.


You can do a lot of this in max (supported), and some in python (unsupported).

Lots of hardware has decent hardware integration with live - a push might be interesting…




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: