View Issue Details
|ID||Category||Date Submitted||Last Update|
|0002652||features||2009-05-03 11:43||2020-12-04 10:05|
|Reproducibility||unable to reproduce|
|Fixed in Version|
|Summary||0002652: AAF / OMF support|
|Description||AAF / OMF support in Ardour can't be at the moment developped because of a lack of sponsorship. |
So I've decided to create this features request in order to help its development.
Why this features is so important ?
Because EDL format like AAF/OMF allow project transfers from a software to another, with the wave track data, plugins and automation parameters saved inside.
Absolutly necessary to mix a project in ardour while tracks were recorded and edited with another DAW (Cubase, Protools, Nuendo), or to transfer the soundtrack of a video project from the video sofware (Avid, FinalCut, Premiere) into Ardour in order to edit and mix it.
Like the vst support question in Ardour was a bit conflictual (vst is a crappy system, it comes from the windows world, etc...) nevertheless AAF/OMF support is an essential condition for professional audio world to be able to switch on an Ardour/Linux based system production.
Ardour is a great system, I just want to make things progress!
There was a person called John E in the forum that was ready to start coding the AAF/OMF features for Ardour if some sponsors could be found.
So we just have to get involved and donate to see this great feature arrive !
|Additional Information||I founded some stuffs in the ardour forum that can be usefull :|
- an open source project to read and write OMF project : http://sourceforge.net/projects/deck2omf
- Symek's EDL2SHK.py script
|Tags||No tags attached.|
|Users sponsoring this issue|
Total Sponsorship = US$ 460
2009-05-03 11:45: Lcut (US$ 50)
2009-05-10 16:25: lamacchiacosta (US$ 50)
2009-05-11 17:13: mattnick (US$ 50)
2009-06-06 21:37: tlipfert (US$ 50)
2009-09-01 18:56: philicordas (US$ 50)
2009-09-03 09:47: olaf (US$ 50)
2009-12-16 17:45: dcsimon (US$ 20)
2010-02-25 06:38: qharley (US$ 50)
2010-05-24 21:17: calimerox (US$ 35)
2011-10-19 20:27: karnesky (US$ 50)
2015-08-29 13:27: unfa (US$ 5)
Hi LCut. Thanks for kickstarting the sponsorship for this issue but I've got some news that might get you up & running pretty soon. Check out my web site which gives some preliminary information about my AAF plugin which is now called ArdourXchange:-
At the time of writing it only supports importing (not exporting) and it's only available for Indamixx - but here's some great news....
If you've never heard of Indamixx it's a complete "studio-in-a-box" aimed at pro and semi-pro musicians. It includes Ardour, along with some other great Linux audio packages which all run under a distro called Transmission 2 (which I believe is a variant of 64studio).
Currently, you can buy Indamixx complete with suitable hardware (i.e. a laptop or handheld device) starting at around $499 - but even better, you'll soon be able to buy the software only (on a USB memory stick) for under $100. In fact, I think it's even less if you don't want the memory stick!! That'll get you a working, ready-to-go studio (including AAF support) for not much more than your sponsorship amount.
I've probably jumped the gun a bit here because the 's/ware only' version is still being tested - but anyway, I hope that's of interest.
Hi John. Thanks for your answer.
It's great that an AAF plugin exists, and the Indamixx system looks like an interesting Linux-based system.
But my aim here is to sponsor an Open Source AAF/OMF patch for Ardour. I'm a semi-professional sound engineer and use Cubase and Protools software, so AAF support is'nt a problem for me. But I believe in open source software, and try my best to support Ardour as a great open source DAW.
Sorry to tell that, but even if Indamixx cost 10 bocks, then it would'nt more interest me. I want to have the choice what hardware and software to use. It's a basic principle of open source world, and I don't want to use Ardour on a propriatary system, even with AAF format support.
I know that there're a lots of work to achieve, and all of that can't be free.
That's why I open this issue.
If there are ways to open your work to the community it would be great !
Well, introducing this feature to the community was the main reason for doing a deal with Indamixx. FWIW I'm treating any income generated by Indamixx as being sponsorship too. Therefore people can sponsor me the conventionsl way (i.e. making a pledge and waiting for others to join in). Or they can sponsor me by buying Indamixx.
From a developer's perspective the Indamixx connection delivers 2 important advantages:- (1) It gives users a choice and at least some kind of solution in the short term. (2) People can be using (and therefore testing) software that would otherwise just be sitting on my personal PC, waiting for enough sponsors to come forward. The end result is that people like you (who are happy to wait for the source code) should hopefully get a more stable product in reward for their patience.
I would recommend using the official SDK and manuals for interacting with AAF files. I know that there is some work to add this support to Blender as well and both using the same libraries would allow flawless transitions from Ardour for audio to Blender for video editing.
I mean why replicate work that has already been done.
Hi openmediaforge - you might have misunderstood the problem with Ardour and AAF. Ardour can already support AAF via a plugin (that I wrote) which does indeed use the AAF SDK. However, that plugin is an adaptation of something totally different that I wrote a long time ago for Windows. Therefore although it works, at present it has 3 drawbacks:-
1) It isn't open source.
2) Anyone who wants it would need to be able to build Ardour themselves.
3) Even when installed, it requires Wine (or Crossover Mac) to run.
The quest for sponsorship is to enable me (or someone else) to provide AAF support as a standard, open source feature within Ardour itself (i.e. not as a separate, closed source plugin). At the current level of sponsorship, around 300-400 sponsors would be needed to make this viable. But at the time of writing (and despite its apparent popularity) this feature has only 3 sponsors. That's what's holding us up at the moment.
IMPORTANT NOTE: If anyone's interested in helping to test my plugin, I've just released a time-limited version, FREE OF CHARGE for early adopters. You can get a copy COMPLETELY FREE as long as you satisfy the following conditions:-
1) You pledge at least $50 to this feature request; AND/OR
2) You already contribute to Ardour in some other way, either financially or technically (developer / translator / tester etc); AND
3) You will not be distributing the plugin for commercial gain
Depending on when you install it, the time-limited copy will work at least until the end of July 2010. Hopefully, that'll be enough time for enough people to come forward and sponsor an open source version. There are a few limitations, described in my preceding post (mostly, you need to be able to build Ardour from source).
If you'd like a free copy, use the 'Contact' link on my web page:-
Hello. I am interested in this being open source, and have pledged $50.
I would like to see OMF support too eventually, as my 'other daw' is Cubase, but first things first eh!
final cut and nuendo provide xml versions of their sessions
this could also be a way to go instead of omf or aaf support
maybe its more easy?
Just to say that a guy wrote some code for .OMF support in reaper daw, and I've thought it could be interesting here, because he decided to release the plugin's source code.
- initial forum (his name is 404notfound) :
- sources :
I don't consider this work to satisfy the feature request here, but it will soon. I thought that everyone attached to this bug should be aware of stuff I've just committed (to ardour3 only at this time). This is from my post to the ardour-dev mailing list.
Thanks to Hannes Breul, who developed code for Reaper under a BSD-ish
license, I have just added the ability to import OMF sessions as
Ardour sessions. This needs testing and it also needs further
development. Right now, its not even very easy to run it because of
its use of the uninstalled version of libpbd ...
* it imports ONLY OMF2 files. OMF1 is not supported
* it will not identify audio files that Ardour cannot read (e.g.
embedded MP3 files) but no[ problematic errors result from this
(requirements: sqlite3, sndfile)
LD_LIBRARY_PATH=/path/to/ardour/build/default/lib/pbd ./omftool [ -v
version ] [ -r sample rate ] [ -n session name ] OMF2_session_file
this will create an ardour session whose name will based on the omf
file name OR the -n argument. it will be created in the current
I don't have much time to spend on this myself. The basic stuff is all
there, I've been able to load at least a couple of test OMF sessions
from other DAWs and get audio from them. Someone needs to step up and
make this puppy their own. Bug fixes/integration with waf/usability
fixes/GUI ... its all yours for the taking. I may fix trivial errors,
but I need to get back to other things now that this is basically
Incidentally, this also provides a fairly good guide for how to create
an Ardour session from scratch, should anyone want to do this for
other "session" formats.
On a personal level, there were never enough sponsors to tempt me to get started on this - and now I'm too busy with other projects... :-(
Having said that, wasn't there another developer (last year sometime) who wanted to get involved in OMF development? I can't remember his name just now but I'm sure I remember someone who expressed an interest.
||this is a real newbie question, sorry: how can i sponsor on that issue? i just made an account on tracker, but i dont know how i can actually donate. when i click on sponsor, it shows the sum i d like to sponsor, do i have to sponsor then the same amount through the normal ardour sponsoring paypal thing? thx folks...|
@calimerox: you pledge an amount here and pay only once the issue is resolved (usually by making a donation to the person who fixed it or to ardour.org and Paul will re-distribute, but we'll get to that later).
Then again the chances that ardour will gain OMF/AAF support are slim, see the last comment at https://community.ardour.org/node/8491 but since ardour is free-software, anyone can pick up this issue and claim the bounty.
||is there reference docs for AAF/OMF anywhere? thx, Arno|
I don't think there's anything available for OMF anywhere but AAF is still alive (though I'm not sure if it's being developed any more...) However, its previous owner (the AAF Association) changed its name about 10 years ago and is now known as AMWA (Advanced Media Workflow Association). You can contact them here and ask if they've got any documentation available:-
A word of caution though, if you're thinking about adding AAF support to Ardour... At various times I've offered to do this work myself (for Mixbus). What's stopping it is a conflict between the AAF licensing terms and Ardour's (GPL) license. I've forgotten what the conflict is (maybe someone else can explain better...)
AAF relies on some technology from Microsoft that is licensed in a way that prevents its use in open source projects. There was an attempted reimplementation (it is basically "filesystem in a file" stuff) by the GNU project, but it was never really finished and wasn't fully compatible with the MS stuff that AAF relies upon.
By the way, AAF is the WORST specification I have ever read. It is the epitome of design by committee. The people involved show no signs of understanding at least half of the technology their specification relies on. When I try to imagine a less elegant specification for this purpose, I cannot.
And to repeat what is written already: there has never been any documentation available for OMF. At once time, I made a stab at using the library developed in connection with Reaper, but soon found out that it was incredibly incomplete (there are lots and lots of OMF files it cannot open). This is partially because every implementation of OMF has no specification to adhere to, and so they all differ in incompatible ways.
Hi Paul - I've studied the AAF license quite extensively and I'm still not sure what the problem is. The license does state that AAF contains contributions from different parties but that each contributor grants a worldwide, compensation-free, nonexclusive license to the recipient, subject to certain requirements. AFAICT those requirements are:-
1) That you must not re-brand the AAF code as if it's your own.
2) If you modify the AAF code you must make those modifications available somehow.
3) If you incorporate the AAF code as part of some larger project, the larger project can use a different license as long as it's made clear that the AAF part is governed by its own (separate) license.
You're absolutely right about the design though!! And considering they're supposedly for multimedia use, AAF and OMF have some highly questionable limitations (e.g the fact that they don't support MIDI...)
Have you see this project? https://github.com/PixarAnimationStudios/OpenTimelineIO
It seems AAF is supported.
Wouldn't it be a good starting point for AAF import/export?
Thanks for the heads up!
"OTIO supports clips, timing, tracks, transitions, markers, metadata, etc. but not embedded video or audio. Video and audio media are referenced externally."
Thats is kinda nice.
I'm not sure if/how we can map transitions, also python is going to be an issue (we don't yet bundle nor include a python interpreter nor allow C++11 at this point in time). But it's a whole lot saner than AAF and OMF.
||I'm thinking using https://github.com/pybind/pybind11 at the beginning. Another solution would be to port the code to C++.|
||Good news! A C++ implementation is in progress: https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/319|
almost ended a C coded, FOSS implementation of AAF for a french television.
Currently running as a POC in test with ardour and some interface to build ardour sessions from AAF (thanks to ptformat and session_utils)
It's working great.
Hope to release it soon, before the end of the year (if some ardour devs are interested in integrating it as an ardour functionality ;)
Note that my library is currently only for parsing (embedded/external audio/video files, fade in/out/x, clip/track gains constant/automation, clip positions...), but not for writing AAF.
||Hi agfline, what is the status of your project? I wrote ptformat, do you need some help integrating this?|
||Also (agfline) which OS's does your project support? AAF makes heavy usage of a Microsoft technology called COM (Component Object Model). Essentially it's a way for programmers to use a standard 'C' coding interface while also writing object oriented programs. I'm pretty sure it got ported to Mac - because many AAF apps run on both Windows and Mac. But I've no idea if it ever found its way into Linux. Are there already apps on Linux which support AAF?|
@zamaudio, the project was held in abeyance. It was working perfectly until some guy thought it was not enough expensive I guess... I'm currently working on other stuff, but I really don't want to give up on it (It was too much work). So I could resume the project in a few weeks / months when I have time. ptformat was already very helpful, but any help will be appreciated !
@johne53, I don't know about COM, but I know about CFB/OLE file formats, all of those appearing to be the same thing (https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/50708a61-81d9-49c8-ab9c-43c98a795242). CFB/OLE/COM is not that complicated, it's actually FAT32 in a file. Since I'm working on Linux, I already wrote a library for parsing CFB (libCFB) which is part of LibAAF, thus I don't see any difficulty in porting LibAAF under Windows/MacOS.
" CFB/OLE/COM is not that complicated, it's actually FAT32 in a file. "
Interesting stuff.... the earlier OMF format was based on a similar concept from Apple, called bento. Historically though, COM (or more correctly its license) was one of the main stumbling blocks to incorporating AAF support in Ardour - but if you've found a way around that, maybe it'd be worth us taking another look? FWIW Ardour recently added VST3 support which uses the exact same principle - i.e. it uses its own-brand version of COM which (I'm assuming) doesn't need a license from Microsoft. Does your code make use of the official AAF libraries or is it all your own work?
My lib only shares a few header files of the original SDK (for constant values macro definition only).
Well, what you call the COM part (I call it CFB for Compound File Binary since it is called that way in the spec) was really not the most difficult part to understand and implement (in read only, as I said). As in the FAT filesystem, you have tables (FAT and DiFAT) and sectors, that let you access to a tree structure of nodes (directories) and "files". Basically "files" represent objects, and sometimes refer to other "files" and nodes. An object can describe a sequence, a track, a clip, an effect, a media essence, etc. Finally, the most complicated part in my opinion is to interpret all this mess. The meaning of "classes" and their content, used to describe sequences, clips, essences, etc. with each time a lot of different ways to represent things, despite the standard and the AAF Edit Protocol. That is why there is so much incompatibility between softwares when it comes to the exchange of AAF files, and this is what took me the most time and effort to implement and test against many different files, from different softwares, with different export settings.
The low level Compound File Binary format spec :
The data structure of FAT "files" :
The AAF Class/Object Model :
Thanks @agfline - have you thought about posting on the Mixbus forum:- http://forum.harrisonconsoles.com/forum-1.html
Harrison Mixbus is based on Ardour and it has a long history of supporting AAF through various 3rd-party apps (one of which I wrote!!) Since version 6 it's had no internal support for AAF but I'll bet there are lots of users who'd like to see it return...
I didn't know that ! You're talking about ArdourXchange is that right ? Can you tell me more about how you implemented it ? Is that based on the official SDK ? Do you have Git somewhere ?
Yes I know a bit about Mixbus, never used it though. For me the GPL aspect of Ardour is fundamental, and I would love to see free software coming into broadcast and post-production. And for that, the AAF support is absolutely essential. But any improvement to Ardour can benefit to Mixbus so there is no problem !
Yes - ArdourXchange was my baby! It took a long time to get it right, so the original plan was that once I'd sold a certain number of copies I'd donate the code to Ardour. By that time however, Paul had discovered some conflict between AAF's license and GPL - so it all ended up in the skip :-(
AxC doesn't have a code repo anywhere but yes, it was based on the original AAF library. Your stuff might be more acceptable, if it doesn't rely on the AAF code + licensing. And Harrison will likely be more amenable to resurrecting it - especially if it can include some experienced devs, such as me and @zamaudio, if he's interested. Ardour had some bad experiences a few years back when it tried to implement OMF - so it's unlikely they'd want to repeat the experience with AAF.
Try posting something on the Mixbus forum and see if there's still any interest there...
|2009-05-03 11:43||Lcut||New Issue|
|2009-05-03 11:45||Lcut||Sponsorship Added||Lcut: US$ 50|
|2009-05-03 11:45||Lcut||Sponsorship Total||0 => 50|
|2009-05-07 14:20||johne53||Note Added: 0005980|
|2009-05-09 17:39||Lcut||Note Added: 0005986|
|2009-05-10 06:48||johne53||Note Added: 0005987|
|2009-05-10 16:25||lamacchiacosta||Sponsorship Added||lamacchiacosta: US$ 30|
|2009-05-10 16:25||lamacchiacosta||Sponsorship Total||50 => 80|
|2009-05-10 16:26||lamacchiacosta||Sponsorship Updated||lamacchiacosta: US$ 20|
|2009-05-10 16:26||lamacchiacosta||Sponsorship Total||80 => 70|
|2009-05-10 16:26||lamacchiacosta||Sponsorship Updated||lamacchiacosta: US$ 50|
|2009-05-10 16:26||lamacchiacosta||Sponsorship Total||70 => 100|
|2009-05-11 17:13||mattnick||Sponsorship Added||mattnick: US$ 50|
|2009-05-11 17:13||mattnick||Sponsorship Total||100 => 150|
|2009-05-21 09:12||openmediaforge||Note Added: 0006022|
|2009-05-22 09:19||johne53||Note Added: 0006027|
|2009-06-06 21:37||tlipfert||Sponsorship Added||tlipfert: US$ 50|
|2009-06-06 21:37||tlipfert||Sponsorship Total||150 => 200|
|2009-06-08 10:22||johne53||Note Added: 0006057|
|2009-09-01 03:13||kaimerra||Sponsorship Added||kaimerra: US$ 50|
|2009-09-01 03:13||kaimerra||Sponsorship Total||200 => 250|
|2009-09-01 18:56||philicordas||Sponsorship Added||philicordas: US$ 50|
|2009-09-01 18:56||philicordas||Sponsorship Total||250 => 300|
|2009-09-01 19:04||philicordas||Note Added: 0006623|
|2009-09-03 09:47||olaf||Sponsorship Added||olaf: US$ 50|
|2009-09-03 09:47||olaf||Sponsorship Total||300 => 350|
|2009-09-03 09:49||olaf||Note Added: 0006637|
|2009-12-16 17:45||dcsimon||Sponsorship Added||dcsimon: US$ 20|
|2009-12-16 17:45||dcsimon||Sponsorship Total||350 => 370|
|2010-02-09 04:01||Lcut||Note Added: 0007352|
|2010-02-10 22:44||paul||Note Added: 0007360|
|2010-02-11 06:57||johne53||Note Added: 0007364|
|2010-02-25 06:38||qharley||Sponsorship Added||qharley: US$ 50|
|2010-02-25 06:38||qharley||Sponsorship Total||370 => 420|
|2010-05-24 21:17||calimerox||Sponsorship Added||calimerox: US$ 35|
|2010-05-24 21:17||calimerox||Sponsorship Total||420 => 455|
|2010-05-24 21:20||calimerox||Note Added: 0008007|
|2011-10-19 20:27||karnesky||Sponsorship Added||karnesky: US$ 50|
|2011-10-19 20:27||karnesky||Sponsorship Total||455 => 505|
|2012-08-05 23:13||cth103||cost||=> 0.00|
|2012-08-05 23:13||cth103||Target Version||=> 3.X|
|2015-08-29 13:27||unfa||Sponsorship Added||unfa: US$ 5|
|2015-08-29 13:27||unfa||Sponsorship Total||505 => 510|
|2015-08-31 16:23||kaimerra||Sponsorship Deleted||kaimerra: US$ 50|
|2015-08-31 16:23||kaimerra||Sponsorship Total||510 => 460|
|2015-08-31 17:36||x42||Note Added: 0017127|
|2018-02-18 22:24||arnwas||Note Added: 0020154|
|2018-02-19 07:34||johne53||Note Added: 0020157|
|2018-02-19 07:36||johne53||Note Edited: 0020157||View Revisions|
|2018-02-19 13:44||paul||Note Added: 0020158|
|2018-02-20 08:33||johne53||Note Added: 0020164|
|2018-11-04 18:44||martindelille||Note Added: 0020450|
|2018-11-04 18:44||martindelille||Note Edited: 0020450||View Revisions|
|2018-11-04 18:58||x42||Note Added: 0020451|
|2018-11-04 19:08||x42||Note Edited: 0020451||View Revisions|
|2018-11-05 08:02||martindelille||Note Added: 0020457|
|2018-11-05 08:04||martindelille||Note Added: 0020458|
|2019-10-24 22:58||agfline||Note Added: 0020794|
|2020-11-01 03:32||zamaudio||Note Added: 0025185|
|2020-12-02 09:47||johne53||Note Added: 0025275|
|2020-12-03 12:08||agfline||Note Added: 0025277|
|2020-12-03 13:35||johne53||Note Added: 0025278|
|2020-12-03 17:52||agfline||Note Added: 0025280|
|2020-12-04 08:40||johne53||Note Added: 0025283|
|2020-12-04 09:17||agfline||Note Added: 0025284|
|2020-12-04 10:05||johne53||Note Added: 0025285|