‰      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s t u v w x y z { | } ~            Safe-Inferred    NoneM !"#$%&'()*+,-./0 !"#$%&'()*+,-.0/ !"#$%&'()*+,-. !"#$%&'()*+,-./0 Safe-Inferred1FAn Event is a value that occurs during the period given by the first ArcF. The second one indicates the event's "domain of influence". These will often be the same, but many temporal transformations, such as rotation and scaling time, may result in arcs being split or truncated. In such cases, the first arc is preserved, but the second arc reflects the portion of the event which is relevant.2 (s,e) :: Arc9 represents a time interval with a start and end value.  { t : s <= t && t < e } 3Time 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.4xThe starting point of the current cycle. A cycle occurs from each natural number to the next, so this is equivalent to floor.5IThe end point of the current cycle (and starting point of the next cycle)6@The position of a time value relative to the start of its cycle.7isIn a t is True iff t$ is inside the arc represented by a.8Splits the given Arc into a list of Arcs, at cycle boundaries.9Splits the given Arc into a list of ArcDs, at cycle boundaries, but wrapping the arcs within the same cycle.: 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.< Similar to mapArcJ but time is relative to the cycle (i.e. the sam of the start of the arc)=!Returns the `mirror image' of an Arc , used by Sound.Tidal.Pattern.rev.>The start time of the given Event? The original onset of the given Event@!The original offset of the given EventAThe arc of the given EventBThe midpoint of an Arc123456789:;<=>?@ABCDEF123456789:;<=>?@ABCDEF321456789:;<=>?@ABCDEF123456789:;<=>?@ABCDEFNone+6G-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.Natom is a synonym for pure.Osilence" returns a pattern with no events.PwithQueryArc f p returns a new Pattern with function f applied to the Arc values passed to the original Pattern p.QwithQueryTime 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.RwithResultArc f p returns a new Pattern with function f applied to the Arc2 values in the events returned from the original Pattern p.SwithResultTime 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.Toverlay combines two PatternCs into a new pattern, so that their events are combined over time.Vstack combines a list of PatternCs into a new pattern, so that their events are combined over time.Wappend 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 cycleXappend' does the same as appendN, but over two cycles, so that the cycles alternate between the two patterns.Ycatz 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.[slowcat 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.\ listToPatM turns the given list of values to a Pattern, which cycles through the list.]maybeListToPat 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.a densityGap is similar to density3 but maintains its cyclic alignment. For example, densityGap 2 p% would squash the events in pattern pK into the first half of each cycle (and the second halves would be empty).bslow does the opposite of density, i.e. slow 2 p/ will return a pattern that is half the speed.cThe <~Y operator shifts (or rotates) a pattern to the left (or counter-clockwise) by the given Time value. For example  (1%16) <~ pR will return a pattern with all the events moved one 16th of a cycle to the left.dThe ~> operator does the same as ~>H but shifts events to the right (or clockwise) rather than to the left.grev p returns p@ with the event positions in each cycle reversed (or mirrored).h palindrome p applies rev to pS every other cycle, so that the pattern alternates between forwards and backwards.i 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.n every n f p applies the function f to p, but only affects every n cycles.ofoldEvery ns f p applies the function f to p$, and is applied for each cycle in ns.psig f< takes a function from time to values, and turns it into a Pattern.qsinewave returns a Pattern of continuous DoubleV values following a sinewave with frequency of one cycle, and amplitude from -1 to 1.rsine is a synonym for @sinewave.ssinerat is equivalent to sinewave for Rational values, suitable for use as Time offsets.u sinewave1 is equivalent to sinewave!, but with amplitude from 0 to 1.vsine1 is a synonym for  sinewave1.wsinerat1 is equivalent to sinerat!, but with amplitude from 0 to 1.x sineAmp1 d returns  sinewave1 with its amplitude offset by d.ysawwave is the equivalent of sinewave for sawtooth waves.zsaw is a synonym for sawwave.{sawrat is the same as sawwave but returns Rational values suitable for use as Time offsets.triwave is the equivalent of sinewave for triangular waves.tri is a synonym for triwave.trirat is the same as triwave but returns Rational values suitable for use as Time offsets.envL is a Pattern of continuous Double values, representing a linear interpolation between 0 and 1 during the first cycle, then staying constant at 1 for all following cycles. Possibly only useful if you're using something like the retrig function defined in tidal.el. wedge t p p' combines patterns p and p' by squashing the p) into the portion of each cycle given by t, and p'" into the remainer of each cycle.splitQueries p wraps p to ensure that it does not get queries that span arcs. For example `arc p (0.5, 1.5)` would be turned into two queries, `(0.5,1)` and `(1,1.5)`, and the results combined. Being able to assume queries don't span cycles often makes transformations easier to specify.-prr rot (blen, vlen) beatPattern valuePattern: pattern rotate/replace.-prr rot (blen, vlen) beatPattern valuePattern: pattern rotate/replace."preplace (blen, plen) beats values combines the timing of beats with the values of values<. Other ways of saying this are: * sequential convolution * values quantized to beats. Examples: v d1 $ sound $ preplace (1,1) "x [~ x] x x" "bd sn" d1 $ sound $ preplace (1,1) "x(3,8)" "bd sn" d1 $ sound $ "x(3,8)"  ~C "bd sn" d1 $ sound "[jvbass jvbass:5]*3" |+| (shape $ "1 1 1 1 1"  ~ "0.2 0.9") It is assumed the pattern fits into a single cycle. This works well with pattern literals, but not always with patterns defined elsewhere. In those cases use prr@ and provide desired pattern lengths: @ let p = slow 2 $ "x x x"$d1 $ sound $ prr 0 (2,1) p "bd sn" @protate len rot p rotates pattern p by rot beats to the left. len.: length of the pattern, in cycles. Example: <d1 $ every 4 (protate 2 (-1)) $ slow 2 $ sound "bd hh hh hh"The <<~9 operator rotates a unit pattern to the left, similar to <~T, but by events rather than linear time. The timing of the pattern remains constant: Id1 $ (1 <<~) $ sound "bd ~ sn hh" -- will become d1 $ sound "sn ~ hh bd" pequal cycles p1 p2: quickly test if p1 and p2 are the same.discretise n p: samples the pattern p at a rate of nQ events per cycle. Useful for turning a continuous pattern into a discrete one. randcat ps : does a slowcat on the list of patterns ps4 but randomises the order in which they are played.mempty is a synonym for silence. | mappend is a synonym for overlay.pure a, returns a pattern with an event with value a>, which has a duration of one cycle, and repeats every cycle.show (p :: Pattern)i returns a text string representing the event values active during the first cycle of the given pattern.GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ɈGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None24/(/,None24HM5      !"#$%&'()*+,-./0122      !"#$%&'()*+,-./7 210     !"#$%&'()*+,-./#      !"#$%&'()*+,-./012-None34343434None756789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk756789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk756789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk756789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk Nonelmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~ None4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW !"#$%&'()*+,-.123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~X    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs t u v w x y z { | } ~                        !"#$%&'()*+,-./0123456789:9;9<9=9>9?9@9A9B9CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn tidal-0.5.2Sound.Tidal.UtilsSound.Tidal.TempoSound.Tidal.TimeSound.Tidal.PatternSound.Tidal.ParseSound.Tidal.StreamSound.Tidal.SuperColliderSound.Tidal.DirtSound.Tidal.StrategiesSound.Tidal.Context enumeratemapFstmapFstsmapSndmapSndswordsBy maybeReadfst'snd'thd'mapFst'mapSnd'mapThd'mapFsts'mapSnds'mapThds'mapArcs getEnvDefault mergelists ClientStateTempoatbeatcps getClockIp getServerPort readTempo logicalTime tempoMVarbeatNow clientAppsendCps connectClient runClientcpsUtilsbpsUtils cpsSetterclocked clockedTick updateTempo addClient removeClient broadcast startServer serverApp serverLoop $fShowTempo$fEqConnectionEventArcTimesamnextSamcyclePosisIn arcCycles arcCycles'subArcmapArcmapCycle mirrorArc eventStart eventOnset eventOffseteventArcmidPointhasOnset hasOffsetonsetInoffsetInPatternarcshowTimeshowArc showEventunwrapatomsilence withQueryArc withQueryTime withResultArcwithResultTimeoverlay>+<stackappendappend'cat splitAtSamslowcat listToPatmaybeListToPatrunscandensity densityGapslow<~~>brakiterrev palindromewhenwhenTplayWhenplayForseqPevery foldEverysigsinewavesinesineratratsine sinewave1sine1sinerat1sineAmp1sawwavesawsawratsawwave1saw1sawrat1triwavetritrirattriwave1tri1trirat1 squarewave1square1 squarewavesquareenvLenvLRenvEqenvEqRfadeOutfadeOut'fadeIn'fadeInspread slowspreadspread' filterValues filterOnsetsfilterStartInRangefilterOnsetsInRangeseqToRelOnsetssegmentsegment'splitpoints groupByTimeifprand timeToRandirand degradeBy unDegradeBy sometimesBy sometimesoftenrarely almostNever almostAlwaysdegradewedgewhenmod superimpose splitQueriestrunczoomcompresssliceArcwithinrevArcee'indexprrwprrpreplaceprep preplace1 preplaceWithprw preplaceWith1prw1<~>protateprotprot1<<~~>>pequal discretiserandcat$fMonadPattern$fMonoidPattern$fApplicativePattern$fFunctorPattern $fShowPatternSignNegativePositiveColourD ParseableplexerbracesbracketsparensanglessymbolnaturalintegerfloatnaturalOrFloat applySignsign intOrFloatr parseRhythm pSequenceN pSequencepSinglepPartpPolyInpPolyOutpStringpVocablepDoublepBoolpIntpColourpMultpRandpE pReplicatepRatio pRationalpDensity$fIsStringPattern$fParseableColour$fParseableRatio$fParseableInt$fParseableBool $fParseable[]$fParseableDouble OscPatternOscMapOscShapepathparamscpsStamp timestamplatency namedParamspreamble TimeStampNoStamp MessageStamp BundleStampParamIiDefaultFfDefaultSnamesDefault ticksPerCycle defaultDatum hasDefault defaulted defaultMaprequired hasRequiredisSubset toMessagedoAt applyShape'startstatestreamstreamcallbackonTickonTick'makenudgemakeSmakeFmakeIparammerge|+| transitionsetter $fShowParam $fOrdParam $fEqParam supercolliderscStreamdirtkriole dirtstart dirtStream dirtState dirtstreamkstream doubledirt dirtToColour showToColour datumToColourstringToColoursoundoffsetbeginendspeedpanvelocityvowelcutoff resonance accelerateshapegaindelay delaytime delayfeedbackcrushcoarsehcutoff hresonancebandfbandqunitloopcutksymbolkpitchpickstriatestriate'striateOstriateL striateL' metronome dirtSettersclutchInclutchxfadeInxfadestut anticipateIn anticipatehistpanstutterechotriplequaddoublejuxjuxcutjux4juxBysmashsmash'samplesspreadfspinsawwave4 sinewave4rand4 stackwithinsidescalechopgapchopArcenweaveweave' interlacestepstepsbaseGHC.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<$