diff --git a/classes/NMLClock.sc b/classes/NMLClock.sc index 8873194..4eda9e3 100644 --- a/classes/NMLClock.sc +++ b/classes/NMLClock.sc @@ -60,6 +60,10 @@ FollowerClock : Clock { if (phase < 0) { phase = phase % quant }; ^roundUp(this.beats - baseBarBeat - (phase % quant), quant) + baseBarBeat + phase } + + timeToNextBeat { arg quant=1.0; // logical time to next beat + ^quant.nextTimeOnGrid(this) - this.beats + } } ConductorClock { @@ -160,7 +164,7 @@ BeaconClock : TempoClock { count = msg[2]; numReplies = msg[3]; onlinePeers = addrBook.onlinePeers; - if((name != addrBook.me.name && numReplies == onlinePeers.size) || (numReplies < 3 && (numReplies > 0) && numReplies == onlinePeers.size), { // ignore my own beacons if possible + if(((name != addrBook.me.name) && (numReplies == (onlinePeers.size-1))) || ((numReplies < 3) && (numReplies > 0) && (numReplies == onlinePeers.size)), { // ignore my own beacons if possible //(addrBook.me.name ++ "received Beacon").postln; beaconKey = (name ++ count).asSymbol; myBeats = this.secs2beats(time);