Timeline: Ardour input script now merges sources for multi-channel tracks instead of creating multiple mono tracks.
This commit is contained in:
parent
2f730acefb
commit
bf50334890
|
@ -133,34 +133,63 @@ for node in root.findall( "./Playlists/Playlist" ):
|
|||
|
||||
if node.attrib["name"] == Track.attrib["playlist"]:
|
||||
print "\tFound playlist " + node.attrib["name"]
|
||||
for chan in range(0, int( Track.attrib["channels"] )):
|
||||
TrackID = NewID()
|
||||
SequenceID = NewID()
|
||||
if int(Track.attrib["channels"]) > 1:
|
||||
TrackName = Track.attrib["name"] + "-" + ( "%i" % chan )
|
||||
|
||||
# for chan in range(0, int( Track.attrib["channels"] )):
|
||||
TrackID = NewID()
|
||||
SequenceID = NewID()
|
||||
# if int(Track.attrib["channels"]) > 1:
|
||||
# TrackName = Track.attrib["name"] + "-" + ( "%i" % chan )
|
||||
# else:
|
||||
TrackName = Track.attrib["name"]
|
||||
Channels = int(Track.attrib["channels"])
|
||||
|
||||
History.write( "Track " + TrackID + " create :name \"" + TrackName + "\"" + ( " :sequence " + SequenceID ) + " :color " + ( "%i" % random.randint(256,123123123)) + ( " :inputs %i :outputs %i\n" % ( Channels, Channels ) ) )
|
||||
History.write( "Audio_Sequence " + SequenceID + " create :track " + TrackID + " :name \"" + node.attrib["name"] + "\"\n" )
|
||||
for n2 in node.findall("./Region"):
|
||||
RegionID = NewID();
|
||||
|
||||
if ( int( Track.attrib["channels"] ) > 1 ):
|
||||
|
||||
SourceList = []
|
||||
APath1 = os.path.dirname(ArdourFilePath) + "/sounds/"
|
||||
APath2 = os.path.dirname(ArdourFilePath) + "/interchange/" + ProjectName + "/audiofiles/"
|
||||
|
||||
for chan in range(0, int( Track.attrib["channels"] )):
|
||||
SourceName = Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"]
|
||||
|
||||
if os.path.exists( APath1 + SourceName):
|
||||
SourceName = APath1 + SourceName
|
||||
elif os.path.exists( APath2 + SourceName ):
|
||||
SourceName = APath2 + SourceName
|
||||
else:
|
||||
print "source not found!"
|
||||
|
||||
SourceList.append( "'" + SourceName + "'" );
|
||||
|
||||
s1,s2,s3 = Sources[n2.attrib["source-0"]].attrib["name"].partition( '%' )
|
||||
|
||||
SourceName = s1 + ".wav"
|
||||
OutputName = NonTimelineProjectPath + "/sources/" + SourceName
|
||||
|
||||
if not os.path.exists( OutputName ):
|
||||
print "Combining multifile source into multichannel source"
|
||||
os.system( "sox -S -M " + " ".join(SourceList) + " " + "'" + OutputName + "'" )
|
||||
|
||||
else:
|
||||
TrackName = Track.attrib["name"]
|
||||
|
||||
History.write( "Track " + TrackID + " create :name \"" + TrackName + "\"" + ( " :sequence " + SequenceID ) + " :color " + ( "%i" % random.randint(256,123123123)) + " :inputs 1 :outputs 1\n" )
|
||||
History.write( "Audio_Sequence " + SequenceID + " create :track " + TrackID + " :name \"" + node.attrib["name"] + "\"\n" )
|
||||
for n2 in node.findall("./Region"):
|
||||
RegionID = NewID();
|
||||
|
||||
SourceName = Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"];
|
||||
|
||||
SourceName = Sources[n2.attrib["source-0"]].attrib["name"];
|
||||
if not os.path.exists( NonTimelineProjectPath + "/sources/" + SourceName ):
|
||||
print "\t\tCopying source: " + 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/" )
|
||||
NonTimelineProjectPath + "/sources/" )
|
||||
|
||||
|
||||
History.write ("Audio_Region " + RegionID +
|
||||
" create :source \"" + Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"] +
|
||||
History.write ("Audio_Region " + RegionID +
|
||||
" create :source \"" + SourceName +
|
||||
"\" :start " + n2.attrib["position"] +
|
||||
" :length " + n2.attrib["length"] +
|
||||
" :offset " + n2.attrib["start"] +
|
||||
|
|
Loading…
Reference in New Issue