Shared Catalog
This commit is contained in:
@@ -78,6 +78,12 @@ def shift_key(key: dict, steps: int, semitones: int) -> dict:
|
||||
break
|
||||
else:
|
||||
result['custom'] = True
|
||||
if 'cancel' in key:
|
||||
# A cancellation references the old signature, not a count of naturals.
|
||||
cancelled = shift_key(key_from_fifths(key['cancel']), steps, semitones)
|
||||
if cancelled.get('custom'):
|
||||
raise ValueError('transposed key cancellation cannot be represented by fifths')
|
||||
result['cancel'] = cancelled['fifths']
|
||||
return result
|
||||
|
||||
def transposition_interval(document: dict, target_key_name: str) -> tuple[int, int]:
|
||||
|
||||
Reference in New Issue
Block a user