|
|
@ -570,32 +570,36 @@ def clearSwitchGroupTranspositions(startMeasureForGroup:int, endMeasureExclusive |
|
|
|
updatePlayback() |
|
|
|
|
|
|
|
def deleteSwitches(howMany, fromMeasureNumber): |
|
|
|
"""Parameters are un-multiplied measures.""" |
|
|
|
for track in session.data.tracks: |
|
|
|
thisTrackHowMany = howMany // track.patternLengthMultiplicator #integer division |
|
|
|
thisTrackWhere = fromMeasureNumber // track.patternLengthMultiplicator #integer division |
|
|
|
|
|
|
|
new_structure = set() |
|
|
|
|
|
|
|
for switch in track.structure: |
|
|
|
if switch < fromMeasureNumber: |
|
|
|
if switch < thisTrackWhere: |
|
|
|
new_structure.add(switch) |
|
|
|
elif switch >= fromMeasureNumber+howMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_structure.add(switch-howMany) |
|
|
|
elif switch >= thisTrackWhere+thisTrackHowMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_structure.add(switch-thisTrackHowMany) |
|
|
|
#else: #discard all in range to delete |
|
|
|
track.structure = new_structure |
|
|
|
|
|
|
|
new_scaleTransposed = dict() |
|
|
|
for k,v in track.whichPatternsAreScaleTransposed.items(): |
|
|
|
if k < fromMeasureNumber: |
|
|
|
if k < thisTrackWhere: |
|
|
|
new_scaleTransposed[k] = v |
|
|
|
elif k >= fromMeasureNumber+howMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_scaleTransposed[k-howMany] = v |
|
|
|
elif k >= thisTrackWhere+thisTrackHowMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_scaleTransposed[k-thisTrackHowMany] = v |
|
|
|
#else: #discard all in range to delete |
|
|
|
track.whichPatternsAreScaleTransposed = new_scaleTransposed |
|
|
|
|
|
|
|
new_halftoneTransposed = dict() |
|
|
|
for k,v in track.whichPatternsAreHalftoneTransposed.items(): |
|
|
|
if k < fromMeasureNumber: |
|
|
|
if k < thisTrackWhere: |
|
|
|
new_halftoneTransposed[k] = v |
|
|
|
elif k >= fromMeasureNumber+howMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_halftoneTransposed[k-howMany] = v |
|
|
|
elif k >= thisTrackWhere+thisTrackHowMany: #like a text editor let gravitate left into the hole left by the deleted range |
|
|
|
new_halftoneTransposed[k-thisTrackHowMany] = v |
|
|
|
#else: #discard all in range to delete |
|
|
|
track.whichPatternsAreHalftoneTransposed = new_halftoneTransposed |
|
|
|
|
|
|
|