Commit 80355d49 authored by Aske Simon Christensen's avatar Aske Simon Christensen
Browse files

Reject group track with volume, panning, Send or reverb

parent 1657fa1a
......@@ -45,6 +45,8 @@ these guidelines:
- You can only use one **OidosReverb** instance. This is typically placed
on a Send track, with some tracks routed to it. For each instrument, either
all or none of the note columns using that instrument can have reverb.
- You can use group tracks, but only for visual grouping. You can not use
volume, panning, Send devices or reverb on group tracks.
- You can use the pattern sequence matrix to selectively mute tracks at
certain pattern positions.
- Globally muted tracks or note columns will not be included. Solo state is
......@@ -677,6 +677,20 @@ def makeTracks(xsong, ticklength):
for xgrouptrack in xsong.Tracks.SequencerGroupTrack:
tname = xgrouptrack.Name
xdevices = xgrouptrack.FilterDevices.Devices
for xmixer in xdevices.GroupTrackMixerDevice:
if isactive(xmixer):
if float(xmixer.Volume.Value) != 1.0 or float(xmixer.PostVolume.Value) != 1.0:
raise InputException("Group track '%s' has non-zero volume" % tname);
if float(xmixer.Panning.Value) != 0.5 or float(xmixer.PostPanning.Value) != 0.5:
raise InputException("Group track '%s' has non-center panning" % tname);
if isactive(xdevices.SendDevice):
raise InputException("Group track '%s' uses Send" % tname);
if isactive(xdevices.AudioPluginDevice):
raise InputException("Group track '%s' uses reverb" % tname);
for tr,xtrack in enumerate(xsong.Tracks.SequencerTrack):
if str(xtrack.State) != "Active":
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment