Skip to content
This repository has been archived by the owner on Jul 10, 2019. It is now read-only.

enumeration of functions from source #72

Open
sfradkin opened this issue Feb 8, 2017 · 3 comments
Open

enumeration of functions from source #72

sfradkin opened this issue Feb 8, 2017 · 3 comments

Comments

@sfradkin
Copy link
Contributor

sfradkin commented Feb 8, 2017

This is a rough list of all of the various functions found in the TidalCycles source in the 0.9 branch. More changes were added after this list was generated.

This includes some notes about functions if I could figure out what they did.

It's a combination of functions that are part of the everyday DSL and also internal functions that wouldn't normally be used. We need to decide what should be documented on the website and what does not need to be documented on the website.

  • add in somewhere that ‘.’ is now an alias for ‘[]’ for grouping

  • show -> displays text representing event values in first cycle of pattern

  • showTime -> converts a ratio into a readable string

  • showArc -> converts a time arc into a readable string

  • showEvent -> converts an event into readable string

  • pure -> pure a -> returns a pattern with one event of value “a” with a duration of one cycle and repeats each cycle

  • mempty -> synonym for silence

  • mappend -> synonym for overlay

  • return -> synonym for pure

  • unwrap -> (need a definition)

  • atom -> synonym for pure

  • silence -> returns an empty pattern

  • withQueryArc -> applies a function to the arc values passed to the original pattern

  • withQueryTime -> applies a function to the start and end time of the arc passed to the original pattern

  • withResultArc -> applies a function to the arc values in the events returned from the original pattern

  • withResultTime -> applies a function to the start and end times of the arc values in the events from the original pattern

  • overlay -> combines two patterns, events are combined over time, same as operator ‘<>’

  • splitAtSam -> ?

  • listToPat -> turns a list of values into a Pattern

  • maybeListToPat -> same as listToPat, but allows optional values so that Nothing results in gaps in the pattern

  • scan -> creates a pattern with successive runs

  • densityGap -> similar to density, but maintains cyclic alignment so that the events are squashed into the beginning of the cycle

  • whenT -> ?

  • playWhen -> ?

  • playFor -> ?

  • sig -> ?

  • sinewave/sine -> pattern of continuous Double values from -1 to 1

  • sinerat/ratsine -> same as sine wave, but returns Rational values

  • sinewave1/sine1 -> same as sinewave but returns values from 0 to 1

  • sinerat1 -> save as sinewave1 but with Rational values

  • sineAmp1 -> returns values from sinewave1 but with an added offset

  • sawwave/saw -> same as sinewave, but a saw pattern

  • sawrat -> same as sawwave, but returns Rational values

  • sawwave1/saw1 -> same as sawwave but values from 0 to 1

  • sawrat1 -> same as sawwave1 but Rational values

  • triwave/tri -> same as sine wave, but a triangular wave pattern

  • trirat -> same as triwave but Rational values

  • triwave1/tri1 -> same as triwave but values from 0 to 1

  • trirat1 -> same as triwave1 but Rational values

  • squarewave/square -> same as sine wave but with a square wave pattern

  • squarewave1/square1 -> same as square wave but values from 0 to 1

  • envL -> returns a pattern that is a linear interpolation between 0 and 1 for one cycle, then stays at 1

  • envLR -> reverse of envL

  • envEq -> “equal power” pattern

  • envEqR -> envEq in reverse

  • transition? fadeOut -> fades out a pattern

  • transition? fadeOut’ -> fades out a pattern providing a time from which the fade starts

  • transition? fadeIn -> opposite of fadeOut

  • transition? fadeIn’ -> fades in over a period of cycles

  • filterValues -> ?

  • filterOnsets -> filters out events that have had their onsets cut off ??

  • filterStartInRange -> filters out events that have onsets within a given range ??

  • filterOnsetsInRange -> combination of filterOnsets and filterStartInRange ???

  • seqToRelOnsetDeltas -> samples some events from a pattern returning a list of onsets relative to the given arc, durations, and values ???

  • segment -> ?

  • segment’ -> ?

  • split -> ?

  • points -> ?

  • groupByTime -> ?

  • timeToRand -> ?

  • unDegradeBy -> opposite of degradeBy?

  • somecyclesBy -> cycle by cycle version of sometimesBy

  • somecycles -> synonym for: somecyclesBy 0.5

  • splitQueries -> ensures that queries don’t span arcs

  • compress -> ??

  • sliceArc -> ??

  • revArc -> ??

  • e -> bjorklund patterns

  • e’ -> ??

  • index -> ??

  • prrw -> ??

  • prr -> ??

  • preplace/prep -> need a good definition

  • preplace1 -> ??

  • preplaceWith/prw -> ??

  • preplaceWith1/prw1 -> ??

  • <~> -> operator ??

  • protate/prot -> rotates a pattern N beats to the left over M cycles

  • prot1 -> protate 1

  • <<~ -> operator rotates a pattern to the left by one retaining timing, so rests are retained

  • ~>> -> operator rotates to the right

  • discretize -> samples a pattern at the rate of N events per cycle.. turn a continuous pattern into a discrete pattern

  • permstep -> ??

  • struct -> ??

  • substruct -> ??

  • parseLMRule -> ??

  • parseLMRule’ -> ??

  • lindenmayer -> ??

  • unwrap’ -> ??

  • enclosingArc -> ??

  • stretch -> ??

  • runWith -> ??

  • runWith’ -> ??

  • inside -> ??

  • outside -> ??

  • loopFirst -> ??

  • timeLoop -> ??

  • seqPLoop -> ??

  • toScale’ -> takes a list of notes within a scale and turns them into note numbers

  • toScale -> scale of 12 notes per octave

  • swingBy -> divides a cycle into N slices and delays the notes in the second half of the slice by M fraction of a slice

  • swing -> swingBy (1%3)

  • stutter -> stutters a pattern

  • echo -> stutter 2

  • triple -> stutter 3

  • quad -> stutter 4

  • double -> echo

  • juxcut -> ??

  • samples -> ?? but is this really in use anymore?

  • samples’ -> ??

  • spread -> ??

  • sawwave4 -> multiplies sawwave1 by 4

  • sinewave4 -> multiples sinewave1 by 4

  • rand4 -> multiplies rand by 4

  • stackwith -> ?

  • chopArc -> ?

  • en -> ?

  • step -> ? (step sequencing??)

  • steps -> ??

  • step’ -> ??

  • off -> superimposes a time offset

  • offadd -> superimposes a time offset and adds to the pattern

  • ghost’ -> general ghost/echo sounding thing

  • ghost -> defaults an eighth second ghosting

  • ghost’’ -> extra ghosting

  • slice -> ??

  • randslice -> ??

  • loopAt -> makes a sample fit a given number of cycles

  • operators -> pending PR from bgold for an operator page

  • time functions

  • sam

  • nextSam

  • cyclePos

  • isIn

  • arcCycles

  • arcCycles’

  • subArc

  • mapArc

  • mapCycle

  • mirrorArc

  • eventStart

  • eventOnset

  • eventOffset

  • eventArc

  • midPoint

  • hasOnset

  • hasOffset

  • onsetIn

  • offsetIn

  • new ->

  • shuffle

  • scramble

  • cycleChoose

  • pick

  • metronome

compositions

  • append (and append’)
  • cat -> equivalent of append but with list of patterns
  • interlace
  • randcat
  • seqP
  • slowcat
  • spin
  • stack
  • superimpose
  • weave (weave’ ??)
  • wedge

conditional transformers

  • every (add every’ which adds a cycle offset)
  • foldEvery
  • ifp
  • mask
  • sometimesBy (sometimes/often/rarely/almostNever/almostAlways/never/always)
  • when
  • whenmod
  • within

pattern transformers

  • beat rotation (<~ and ~>)
  • brak
  • degrade (also degradeBy) (synonym of: degradeBy 0.5)
  • density
  • fit (also fit’)
  • iter (add iter’ which rotates the opposite direction)
  • jux (also jux’ and juxBy and jux4)
  • mapping-over (talks about things like ((/ 2) <$> sinewave1) as a pattern, but can probably add the fmap function here as well)
  • palindrome
  • rev
  • slow
  • slowspread
  • smash (uses striate… smash’ uses chop)
  • spread (spread’ like spread except takes a pattern of parameters)
  • trunc
  • zoom

sample transformers

  • chop
  • gap
  • striate (also striate’)
  • striateL (also striateL’) -> loops
  • stut (also stut’)
  • also striate0 -> offset to begin and end values

synth params

  • accelerate
  • bandf
  • bandq
  • begin
  • coarse
  • crush
  • cut
  • cutoff/ctf
  • delay
  • delayfeedback/delayfb
  • delaytime/delayt
  • end
  • gain
  • hcutoff
  • hresonance
  • loop
  • nudge
  • pan
  • resonance
  • room
  • shape
  • sound
  • speed
  • unit
  • vowel
    should we add:
  • attack/att
  • channel
  • legato
  • clhatdecay/chdecay (is this for volca?)
  • cutoffegint/ctfg (is this for volca?)
  • detune/det
  • dry
  • gate/gat
  • hatgrain/hg (volca?)
  • hold
  • kriole (?)
  • lagogo/lag (?)
  • lclap/lcp (?)
  • lclaves (?)
  • lclhat/lcl (?)
  • lcrash/lcr (?)
  • lfo (?)
  • lfocutoffint/lfoc (?)
  • lfodelay (?)
  • lfoint/lfoi (?)
  • lfopitchint/lfop (?)
  • lfoshape (?)
  • lfosync (?)
  • lhitom/lht (?)
  • lkick/lbd (?)
  • llotom/llt (?)
  • lock
  • lophat/loh (?)
  • lsnare/lsn (?)
  • n (separate?)
  • degree (?)
  • mtranspose (?)
  • ctranspose (?)
  • harmonic (?)
  • stepsPerOctave (?)
  • octaveRatio (?)
  • octave (?)
  • offset (?)
  • ophatdecay/ohdecay (?)
  • orbit
  • pitch1/pit1 (volca?)
  • pitch2/pit2 (volca?)
  • pitch3/pit3 (volca?)
  • portamento/por (?)
  • release
  • sagogo/sag (?)
  • sclap/scp (?)
  • sclaves/scl (?)
  • scrash/scr (?)
  • semitone
  • size
  • slide/sld
  • s
  • stutterdepth/std
  • stuttertime/stt
  • sustain/sus
  • tomdecay/tdecay
  • velocity
  • vcfegint/vcf
  • vcoegint/vco
  • voice/voi
  • dur (midi)
  • mod wheel (midi)
  • expression (midi)
  • sustain pedal (midi)
  • midinote (alias for n - 60)
  • drum (used with the following note names in pattern for volca beats: bd, sn, lt, ht, ch, oh, cp cl, ag, cr, _)

tremolorate and tremolodepth

transitions

  • anticipate (anticipateIn)
  • clutch (clutchIn)
  • histpan
  • jump
  • jumpIn
  • jumpIn’
  • jumpMod
  • mortal
  • superwash
  • wait (and wait’)
  • wash
  • xfade (xfadeIn)
  • interpolateIn

utility

  • choose (in pattern transformers in code)
  • irand
  • pequal
  • rand
  • run
  • scale (scalex is exponential version of scale)
  • up
    do we want to add:
  • make’
  • grp
  • [ ]
@lennart
Copy link
Contributor

lennart commented Feb 8, 2017

the checkboxes mark, needs docs for website?

in any case, regarding your question at the end:

grp yes,
although this is one of the only functions usin raw params not synth function cutoff_p not cutoff

make' no
actually, since this is the general version of pF, pI and pS for producing params/synths. I'd document only the latter three, since currently we only have Float/Int/String as Value types (and make' would force us to explain what Value is, which would be something that should not directly be explain for using tidal as a DSL)

@bgold-cosmos
Copy link
Contributor

In the past I've usually ignored functions that don't return Patterns/ParamPatterns - these are almost always "internal" things like arcCycles that I can't imagine ever using live (though maybe I just don't have enough imagination).

There are boatloads of params related to MIDI stuff, but some of them also apply to SuperDirt and I've haphazardly repurposed a few more for particular synths. There's some docs of this within the SuperDirt source itself but it'd be good to make a web page summary.

As I look through I'm actually surprised to note that I think most of the stuff is documented somewhere on the website, but I could be misremembering things...

@sfradkin
Copy link
Contributor Author

sfradkin commented Feb 9, 2017

@lennart: Yes, let's check the functions that we need documentation for, then after we go through this list, we can close this issue and add the function names to @bgold-cosmos's existing issue for new documentation for 0.9. We just need some way to make it clear what functions should have documentation on the website vs just in code, and then a way to keep track of whether or not that documentation has actually been written.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants