View Issue Details

IDCategoryLast Update
0002652features2020-12-04 10:05
ReporterLcutAssigned To 
Reproducibilityunable to reproduce 
Status newResolutionopen 
Product Version 
Fixed in Version 
Summary0002652: AAF / OMF support
DescriptionAAF / 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.
http://ardour.org/node/2288

So we just have to get involved and donate to see this great feature arrive !
Additional InformationI 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
TagsNo tags attached.

Users sponsoring this issue
Sponsors List 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)
Users sponsoring this issue (Total Sponsorship = US$ 460)

Activities

johne53

2009-05-07 14:20

reporter   ~0005980

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:-

http://www.creativepost.co.uk

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.

Lcut

2009-05-09 17:39

reporter   ~0005986

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 !

johne53

2009-05-10 06:48

reporter   ~0005987

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.

openmediaforge

2009-05-21 09:12

reporter   ~0006022

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.

http://aaf.sourceforge.net/

I mean why replicate work that has already been done.

johne53

2009-05-22 09:19

reporter   ~0006027

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.

johne53

2009-06-08 10:22

reporter   ~0006057

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:-

http://www.creativepost.co.uk/

philicordas

2009-09-01 19:04

reporter   ~0006623

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!

olaf

2009-09-03 09:49

reporter   ~0006637

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?

Lcut

2010-02-09 04:01

reporter   ~0007352

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) :

http://forum.cockos.com/showthread.php?t=24943&highlight=omf&page=4

- sources :

http://404notfound.bplaced.net/reaper/

Cheers

l_cut

paul

2010-02-10 22:44

administrator   ~0007360

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 ...

Caveats:

* 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

Build:

cd tools/omf
make

(requirements: sqlite3, sndfile)

Run:

(ardour3 only)

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
working directory.

Future:

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
working.

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.

johne53

2010-02-11 06:57

reporter   ~0007364

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.

calimerox

2010-05-24 21:20

reporter   ~0008007

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...

x42

2015-08-31 17:36

administrator   ~0017127

@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.

arnwas

2018-02-18 22:24

reporter   ~0020154

is there reference docs for AAF/OMF anywhere? thx, Arno

johne53

2018-02-19 07:34

reporter   ~0020157

Last edited: 2018-02-19 07:36

View 2 revisions

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:-

https://www.amwa.tv/about.shtml

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...)

paul

2018-02-19 13:44

administrator   ~0020158

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.

johne53

2018-02-20 08:33

reporter   ~0020164

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...)

martindelille

2018-11-04 18:44

reporter   ~0020450

Last edited: 2018-11-04 18:44

View 2 revisions

Hi,

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?

x42

2018-11-04 18:58

administrator   ~0020451

Last edited: 2018-11-04 19:08

View 2 revisions

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.

martindelille

2018-11-05 08:02

reporter   ~0020457

I'm thinking using https://github.com/pybind/pybind11 at the beginning. Another solution would be to port the code to C++.

martindelille

2018-11-05 08:04

reporter   ~0020458

Good news! A C++ implementation is in progress: https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/319

agfline

2019-10-24 22:58

reporter   ~0020794

Hi,

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.

https://github.com/agfline/LibAAF

zamaudio

2020-11-01 03:32

reporter   ~0025185

Hi agfline, what is the status of your project? I wrote ptformat, do you need some help integrating this?

johne53

2020-12-02 09:47

reporter   ~0025275

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?

agfline

2020-12-03 12:08

reporter   ~0025277

@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.

johne53

2020-12-03 13:35

reporter   ~0025278

@agfline wrote:-
" 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?

agfline

2020-12-03 17:52

reporter   ~0025280

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 :
https://sourceforge.net/p/aaf/code2/ci/master/tree/doc/aafcontainerspec-v1.0.1.pdf?format=raw

The data structure of FAT "files" :
https://sourceforge.net/p/aaf/code2/ci/master/tree/doc/aafstoredformatspec-v1.0.1.pdf?format=raw

The AAF Class/Object Model :
https://sourceforge.net/p/aaf/code2/ci/master/tree/doc/aafobjectspec-v1.0.1.pdf?format=raw

johne53

2020-12-04 08:40

reporter   ~0025283

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...

agfline

2020-12-04 09:17

reporter   ~0025284

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 !

johne53

2020-12-04 10:05

reporter   ~0025285

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...

Issue History

Date Modified Username Field Change
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