Browse Source

fix delete group

master
Nils 3 years ago
parent
commit
f1a3111970
  1. 22
      engine/api.py

22
engine/api.py

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

Loading…
Cancel
Save