Returns a FoscMeterManager.
TODO
| offsetsAtDepth | Gets offsets at depth in offsetInventory. |
| isAcceptableLogicalTie | Is true if logical tie is acceptable. |
| isBoundaryCrossingLogicalTie | Is true if logical tie crosses meter boundaries. |
| iterateRewriteInputs | Iterates topmost masked logical ties, rest groups and containers in expr, masked by expr. |
Gets offsets at depth in offsetInventory.
Example
i = FoscMeter([7, 4]).depthwiseOffsetInventory;
FoscMeterManager.getOffsetsAtDepth(0, i).collect { |each| each.pair };[ [ 0, 1 ], [ 7, 4 ] ]
FoscMeterManager.getOffsetsAtDepth(1, i).collect { |each| each.pair };[ [ 0, 1 ], [ 3, 4 ], [ 5, 4 ], [ 7, 4 ] ]
FoscMeterManager.getOffsetsAtDepth(2, i).collect { |each| each.pair };[ [ 0, 1 ], [ 1, 4 ], [ 1, 2 ], [ 3, 4 ], [ 1, 1 ], [ 5, 4 ], [ 3, 2 ], [ 7, 4 ] ]Is true if logical tie is acceptable.
Is true if logical tie crosses meter boundaries.
Iterates topmost masked logical ties, rest groups and containers in expr, masked by expr.
Returns a Routine.
FIXME: ERROR: Class not defined
a = FoscMeasure([2, 4], [
FoscNote("C4", [1, 4]),
FoscNote("D4", [1, 4])
]);
b = FoscMeasure([4, 4], [
FoscNote("D4", [3, 16]),
FoscRest([1, 16]),
FoscRest([3, 16]),
FoscNote("E4", [1, 16]),
FoscTuplet([2, 3], [FoscNote("E4", [1, 8]), FoscNote("E4", [1, 8]), FoscNote("F4", [1, 8])]),
FoscNote("F4", [1, 4])
]);
c = FoscMeasure([4, 4], [
FoscNote("F4", [1, 8]),
FoscNote("G4", [1, 8]),
FoscNote("G4", [1, 4]),
FoscNote("A4", [1, 4]),
FoscNote("A4", [1, 8]),
FoscNote("B4", [1, 8]),
]);
d = FoscMeasure([2, 4], [
FoscNote("B4", [1, 4]),
FoscNote("C5", [1, 4])
]);
x = FoscStaff([a, b, c, d]);
x.select.byLeaf[1..2].attach(FoscTie());
x.select.byLeaf[5..7].attach(FoscTie());
x.select.byLeaf[8..10].attach(FoscTie());
x.select.byLeaf[11..12].attach(FoscTie());
x.select.byLeaf[13..14].attach(FoscTie());
x.select.byLeaf[15..16].attach(FoscTie());
x.format;FoscMeterManager.iterateRewriteInputs(x[0]).collect { |each| each.music };Example
FoscMeterManager.iterateRewriteInputs(x[1]).do { |each| each.music.postln };Example
FoscMeterManager.iterateRewriteInputs(x[2]).do { |each| each.music.postln };Example
FoscMeterManager.iterateRewriteInputs(x[3]).do { |each| each.music.postln };Example
a = FoscMeasure([2, 4], [FoscNote(60, [2, 4])]);
b = FoscMeasure([4, 4], [FoscNote(60, [1, 32]), FoscNote(62, [7, 8]), FoscNote(62, [1, 16]), FoscNote(64, [1, 32])]);
c = FoscMeasure([2, 4], [FoscNote(64, [2, 4])]);
x = FoscStaff([a, b, c]);
x.select.byLeaf[0..1].attach(FoscTie());
x.select.byLeaf[2..3].attach(FoscTie());
x.select.byLeaf[4..5].attach(FoscTie());
s = x[1][0..];m = FoscMeterManager.iterateRewriteInputs(s).all;
m.do { |each| each.music.collect { |elem| elem.format }.join(" ").postln };