Timeline: Make ardour session importer work with ardour1 files. Also, don't fail if sample-rate is not specified.

This commit is contained in:
Jonathan Moore Liles 2013-04-29 23:40:36 -07:00
parent c839d690ab
commit a162876025
1 changed files with 23 additions and 6 deletions

View File

@ -54,9 +54,9 @@ print "Gathering session info"
if root.tag != "Session": if root.tag != "Session":
print "Not an Ardour session?" print "Not an Ardour session?"
sys.exit(1) sys.exit(1)
if root.attrib["version"][0] != "2":
print "Only known to work with version 2 projects..." print "Ardour session file version is " + root.attrib["version"]
sys.exit(1) print "This program is known to work with versions <= 2.0.0"
ProjectName = root.attrib["name"] ProjectName = root.attrib["name"]
@ -64,18 +64,30 @@ print "Converting Ardour session \"" + ProjectName + "\" to Non Timeline format.
Info = open( NonTimelineProjectPath + "/info", 'w' ) Info = open( NonTimelineProjectPath + "/info", 'w' )
Info.write( "created by\n\tNon-Timeline 1.2.0\ncreated on\n\t" + date.today().ctime() + "\nversion\n\t2\nsample rate\n\t" + root.attrib["sample-rate"] + "\n" ) try:
SampleRate = root.attrib["sample-rate"]
except:
print "Couldn't find sample rate... Using default."
SampleRate = "48000"
Info.write( "created by\n\tNon-Timeline 1.2.0\ncreated on\n\t" + date.today().ctime() + "\nversion\n\t2\nsample rate\n\t" + SampleRate + "\n" )
print "Gathering sources." print "Gathering sources."
for node in root.findall( "./Sources/Source" ): for node in root.findall( "./Sources/Source" ):
Sources[node.attrib["id"]] = node; Sources[node.attrib["id"]] = node;
# print "\tFound source " + node.attrib["name"] # print "\tFound source " + node.attrib["name"]
print "Gathering diskstreams." print "Gathering version 2 diskstreams."
for node in root.findall( "./DiskStreams/AudioDiskstream" ): for node in root.findall( "./DiskStreams/AudioDiskstream" ):
DiskStreams[node.attrib["id"]] = node; DiskStreams[node.attrib["id"]] = node;
# print "\tFound diskstream " + node.attrib["name"]; # print "\tFound diskstream " + node.attrib["name"];
print "Gathering version 1 diskstreams."
for node in root.findall( "./DiskStreams/DiskStream" ):
DiskStreams[node.attrib["id"]] = node;
# print "\tFound diskstream " + node.attrib["name"];
LoggableID = 1; LoggableID = 1;
def NewID(): def NewID():
@ -126,8 +138,13 @@ for node in root.findall( "./Playlists/Playlist" ):
if not os.path.exists( NonTimelineProjectPath + "/sources/" + SourceName ): if not os.path.exists( NonTimelineProjectPath + "/sources/" + SourceName ):
print "\t\tCopying source: " + SourceName; print "\t\tCopying source: " + SourceName;
shutil.copy( os.path.dirname(ArdourFilePath) + "/interchange/" + ProjectName + "/audiofiles/" + SourceName, try:
shutil.copy( os.path.dirname(ArdourFilePath) + "/interchange/" + ProjectName + "/audiofiles/" + SourceName,
NonTimelineProjectPath + "/sources/" ) NonTimelineProjectPath + "/sources/" )
except:
shutil.copy( os.path.dirname(ArdourFilePath) + "/sounds/" + SourceName,
NonTimelineProjectPath + "/sources/" )
History.write ("Audio_Region " + RegionID + History.write ("Audio_Region " + RegionID +
" create :source \"" + Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"] + " create :source \"" + Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"] +