M|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferredNone     Safe-Inferred 1An Event is a value that occurs during the given Arc (s,e) :: Arc9 represents a time interval with a start and end value.  { t : s <= t && t < e } Time is represented by a rational number. Each natural number represents both the start of the next rhythmic cycle, and the end of the previous one. Rational numbers are used so that subdivisions of each cycle can be accurately represented.xThe starting point of the current cycle. A cycle occurs from each natural number to the next, so this is equivalent to floor.IThe end point of the current cycle (and starting point of the next cycle) @The position of a time value relative to the start of its cycle.!isIn a t is True iff t$ is inside the arc represented by a."Splits the given Arc into a list of Arcs, at cycle boundaries.# subArc i j( is the arc that is the intersection of i and j.$3Map the given function over both the start and end Time values of the given Arc.%!Returns the `mirror image' of an Arc , used by Sound.Tidal.Pattern.rev.&The start time of the given Event'The midpoint of an Arc  !"#$%&'  !"#$%&'  !"#$%&'  !"#$%&'None+)(-The pattern datatype, a function from a time Arc to Event values. For discrete patterns, this returns the events which are active during that time. For continuous patterns, events with values for the midpoint of the given Arc is returned.+atom is a synonym for pure.,silence" returns a pattern with no events.-mapQueryArc f p returns a new Pattern with function f applied to the Arc values passed to the original Pattern p..mapQueryTime f p returns a new Pattern with function f( applied to the both the start and end Time of the Arc passed to Pattern p./mapResultArc f p returns a new Pattern with function f applied to the Arc2 values in the events returned from the original Pattern p.0mapResultTime f p returns a new Pattern with function f( applied to the both the start and end Time of the Arc2 values in the events returned from the original Pattern p.1overlay combines two PatternCs into a new pattern, so that their events are combined over time.3stack combines a list of PatternCs into a new pattern, so that their events are combined over time.4append combines two patterns Patterns into a new pattern, so that the events of the second pattern are appended to those of the first pattern, within a single cycle5append' does the same as appendN, but over two cycles, so that the cycles alternate between the two patterns.6catz returns a new pattern which interlaces the cycles of the given patterns, within a single cycle. It's the equivalent of append, but with a list of patterns.7slowcat does the same as catR, but maintaining the duration of the original patterns. It is the equivalent of append', but with a list of patterns.8 listToPatM turns the given list of values to a Pattern, which cycles through the list.9maybeListToPat is similar to  listToPat., but allows values to be optional using the Maybe type, so that Nothing! results in gaps in the pattern.:run n8 returns a pattern representing a cycle of numbers from 0 to n-1.;density@ returns the given pattern with density increased by the given Time factor. Therefore  density 2 p3 will return a pattern that is twice as fast, and density (1%3) p& will return one three times as slow.<slow does the opposite of density, i.e. slow 2 p/ will return a pattern that is half the speed.=The <~W operator shift (or rotate) a pattern to the left (or counter-clockwise) by the given Time value. For example  (1%16) <~ pS will return a pattern with all the events moved one 16th of a cycle to the left.>The ~> operator does the same as ~>H but shifts events to the right (or clockwise) rather than to the left.?rev p returns p@ with the event positions in each cycle reversed (or mirrored).@ palindrome p applies rev to pS every other cycle, so that the pattern alternates between forwards and backwards.A when test f p applies the function f to p4, but in a way which only affects cycles where the test/ function applied to the cycle number returns True.B every n f p applies the function f to p, but only affects every n cycles.Csig f< takes a function from time to values, and turns it into a Pattern.Dsinewave returns a Pattern of continuous DoubleV values following a sinewave with frequency of one cycle, and amplitude from -1 to 1.Esine is a synonym for @sinewave.Fsinerat is equivalent to sinewave for Rational values, suitable for use as Time offsets.H sinewave1 is equivalent to sinewave!, but with amplitude from 0 to 1.Isine1 is a synonym for  sinewave1.Jsinerat1 is equivalent to sinerat!, but with amplitude from 0 to 1.K sineAmp1 d returns  sinewave1 with its amplitude offset by d.Lsawwave is the equivalent of sinewave for sawtooth waves.Msaw is a synonym for sawwave.Nsawrat is the same as sawwave but returns Rational values suitable for use as Time offsets.Rtriwave is the equivalent of sinewave for triangular waves.Stri is a synonym for triwave.Ttrirat is the same as triwave but returns Rational values suitable for use as Time offsets.fmempty is a synonym for silence. | mappend is a synonym for overlay.gpure a, returns a pattern with an event with value a>, which has a duration of one cycle, and repeats every cycle.ishow (p :: Pattern)i returns a text string representing the event values active during the first cycle of the given pattern.B()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi=()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdB()*ihgfe+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd@()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiNone24+jklmnopqrstuvwxyz{|}~$jklmnopqrstuvwxyz{|}~+nompqrstuvwxjlkyz{|}~(jlkmnopqrstuvwxyz{|}~None24HM*', NoneNone None      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdjklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !"#$%%&'()*+,--./.0.1.2.3.4.5.6.7.89:9;9<9=>?>@>A>BCDCECFCGCHCICJCKCLMNOPQRQSQTQUQVQWQXQYQZ[\[][^[_[`[a[b[c[d[e[f[g[hijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii                                       tidal-0.2.10Sound.Tidal.TempoSound.Tidal.TimeSound.Tidal.PatternSound.Tidal.ParseSound.Tidal.StreamSound.Tidal.DirtSound.Tidal.StrategiesSound.Tidal.UtilsSound.Tidal.Context ClientStateTempoatbeatbps getClockIp readTempo logicalTime tempoMVarbeatNow clientAppsendBps connectClient runClient bpsSetterclocked clockedTick updateTempo addClient removeClient broadcast startServer serverApp serverLoop $fShowTempo$fEqConnectionEventArcTimesamnextSamcyclePosisIn arcCyclessubArcmapArc mirrorArc eventStartmidPointPatternarcatomsilence mapQueryArc mapQueryTime mapResultArc mapResultTimeoverlay>+<stackappendappend'catslowcat listToPatmaybeListToPatrundensityslow<~~>rev palindromewheneverysigsinewavesinesineratratsine sinewave1sine1sinerat1sineAmp1sawwavesawsawratsawwave1saw1sawrat1triwavetritrirattriwave1tri1trirat1 squarewave1square1 squarewavesquare filterOffsetsseqToRelOnsetssegmentsegment'splitpoints groupByTimeifprand$fMonadPattern$fMonoidPattern$fApplicativePattern$fFunctorPattern $fShowPatternSignNegativePositiveColourD ParseableplexerbracesbracketsparensanglessymbolnaturalfloatnaturalOrFloat applySignsign intOrFloatr parseRhythm pSequenceN pSequencepSinglepPartpPolyInpPolyOutpStringpVocablepDoublepBoolpIntpColourpMultpRatio pRationalpDensity$fIsStringPattern$fParseableColour$fParseableRatio$fParseableInt$fParseableBool $fParseable[]$fParseableDouble OscPatternOscMapOscShapepathparams timestampParamIiDefaultFfDefaultSnamesDefault defaultDatum hasDefault defaulted defaultMaprequired hasRequiredisSubsettpbbpb toMessagedoAt applyShape'startstreamstreamcallbackonTickmakemakeSmakeFmakeIparammerge|+|weave $fShowParam $fOrdParam $fEqParamdirtkriole dirtstart dirtstreamkstream doubledirt dirtToColour datumToColourstringToColoursoundoffsetbeginendspeedpanvelocityvowelcutoff resonance accellerateshapegaincutgroupksymbolkpitchpickstriatestriate'striateO metronome interlacestutterechotriplequaddoublejuxjux4 superimposesmashbraksamplesspread slowspreadspread'whenmodtruncspiniterspin4spin16sawwave4 sinewave4rand4 stackwithcrossinside enumeratemapFstmapFstsmapSndmapSndswordsBy maybeReadbaseGHC.Base++foldrGHC.ListconcatfilterzipmapControl.Applicative<*>pure Alternative ApplicativeGHC.RealRatioRational<**> Data.RatioapproxRationaloptionalliftA3liftA2liftA<**>manysome<|>emptygetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChan Data.Functor<$> GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVar GHC.Conc.SyncmkWeakThreadIdthreadCapabilityyield myThreadIdthrowTo killThreadsetNumCapabilitiesgetNumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOThreadId Data.Listunwordswordsunlineslinesproductsumfoldl1'foldl1foldl'unfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLength minimumBy maximumByminimummaximuminsertByinsert mapAccumR mapAccumL partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndexfind elemIndices elemIndex stripPrefix dropWhileEndGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVar denominator numerator%unzip3unzipzipWith3zipWithzip3!! concatMaplookupnotElemelemallanyorandreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldllengthnullinitlasttailhead<$