tur/notation
src/tidal/notation.tur
defn
nil-value
(nil-value)
defn
list-nil?
(list-nil? [lst :int])
defn
cons
(cons [value :int next :int])
defn
head
(head [lst :int])
defn
tail
(tail [lst :int])
defn
tidal-ok
(tidal-ok [x :int])
defn
tidal-err
(tidal-err [e :int])
defn
tidal-ok?
(tidal-ok? [r :ptr<void>])
defn
tidal-err?
(tidal-err? [r :ptr<void>])
defn
tidal-ok-val
(tidal-ok-val [r :ptr<void>])
defn
tidal-err-val
(tidal-err-val [r :ptr<void>])
defn
tidal-void
(tidal-void)
defn
tidal-cstr-as-int
(tidal-cstr-as-int [s :cstr])
defn
tidal-cstr-eq?
(tidal-cstr-eq? [a :cstr b :cstr])
defn
tidal-cstr-is-rest?
(tidal-cstr-is-rest? [s :cstr])
defn
tidal-int-to-float
(tidal-int-to-float [n :int])
defn
tidal-float-to-int
(tidal-float-to-int [f :float])
defn
tidal-int-div
(tidal-int-div [a :int b :int])
defn
tidal-int-mod
(tidal-int-mod [a :int b :int])
defn
tidal-int-max
(tidal-int-max [a :int b :int])
defn
tidal-pat-alloc
(tidal-pat-alloc [kind :int])
defn
tidal-pat-add-child
(tidal-pat-add-child [pat :int child :int w :float])
defn
tidal-pat-kind
(tidal-pat-kind [pat :int])
defn
tidal-pat-value
(tidal-pat-value [pat :int])
defn
tidal-pat-set-value
(tidal-pat-set-value [pat :int v :cstr])
defn
tidal-pat-count
(tidal-pat-count [pat :int])
defn
tidal-pat-child
(tidal-pat-child [pat :int i :int])
defn
tidal-pat-weight
(tidal-pat-weight [pat :int i :int])
defn
tidal-pat-param-f
(tidal-pat-param-f [pat :int])
defn
tidal-pat-param-n
(tidal-pat-param-n [pat :int])
defn
tidal-pat-param-k
(tidal-pat-param-k [pat :int])
defn
tidal-pat-set-param-f
(tidal-pat-set-param-f [pat :int f :float])
defn
tidal-pat-set-param-n
(tidal-pat-set-param-n [pat :int v :int])
defn
tidal-pat-set-param-k
(tidal-pat-set-param-k [pat :int v :int])
defn
tidal-pat-total-weight
(tidal-pat-total-weight [pat :int])
defn
tidal-pat-free-raw
(tidal-pat-free-raw [pat :int])
free a PatNode tree iteratively (no nested C functions).
defn
tidal-tokenize
(tidal-tokenize [text :cstr])
defn
tidal-tok-count
(tidal-tok-count [ta :int])
defn
tidal-tok-type
(tidal-tok-type [ta :int i :int])
defn
tidal-ttidal-ok-value
(tidal-ttidal-ok-value [ta :int i :int])
defn
tidal-tok-free
(tidal-tok-free [ta :int])
defn
tidal-atom-base
(tidal-atom-base [s :cstr])
defn
tidal-atom-mod-type
(tidal-atom-mod-type [s :cstr])
defn
tidal-atom-mod-n
(tidal-atom-mod-n [s :cstr])
defn
tidal-atom-mod-k
(tidal-atom-mod-k [s :cstr])
defn
tidal-atom-mod-f
(tidal-atom-mod-f [s :cstr])
defn
tidal-parse-element
(tidal-parse-element [ta :int i :int])
defn
tidal-parse-seq-body
(tidal-parse-seq-body [ta :int i :int node :int])
defn
tidal-parse-alt-body
(tidal-parse-alt-body [ta :int i :int node :int])
defn
tidal-parse-seq
(tidal-parse-seq [text :cstr])
defn
tidal-el-new
(tidal-el-new)
defn
tidal-el-push
(tidal-el-push [el :int onset :float dur :float value :cstr])
defn
tidal-el-count
(tidal-el-count [el :int])
defn
tidal-el-get
(tidal-el-get [el :int i :int])
defn
tidal-el-to-cons
(tidal-el-to-cons [el :int])
defn
tidal-el-free-all
(tidal-el-free-all [el :int])
defn
tidal-el-free-struct
(tidal-el-free-struct [el :int])
defn
tidal-ev-onset
(tidal-ev-onset [e :int])
defn
tidal-ev-dur
(tidal-ev-dur [e :int])
defn
tidal-ev-value
(tidal-ev-value [e :int])
defn
tidal-bjorklund
(tidal-bjorklund [n :int k :int])
defn
tidal-bjorklund-get
(tidal-bjorklund-get [arr :int i :int])
defn
tidal-bjorklund-free
(tidal-bjorklund-free [arr :int])
defn
tidal-rand
(tidal-rand)
defn
tidal-eval
(tidal-eval [pat :int cycle :int onset :float dur :float el :int])
defn
tidal-child-dur
(tidal-child-dur [dur :float w :float total-w :float])
defn
tidal-slow-frac
(tidal-slow-frac [r :float fa :float])
defn
tidal-eval-seq-children
(tidal-eval-seq-children [pat :int n :int cycle :int onset :float dur :float i :int el :int total-w :float])
defn
tidal-eval-repeat-steps
(tidal-eval-repeat-steps [child :int n :int cycle :int onset :float step-dur :float i :int el :int])
defn
tidal-eval-fast-steps
(tidal-eval-fast-steps [child :int fi :int cycle :int onset :float step-dur :float i :int el :int])
defn
tidal-eval-stack-children
(tidal-eval-stack-children [pat :int n :int cycle :int onset :float dur :float i :int el :int])
defn
tidal-eval-euclid-steps
(tidal-eval-euclid-steps [child :int pulses :int k :int cycle :int onset :float step-dur :float i :int el :int])
defn
tidal-eval-slow-filter
(tidal-eval-slow-filter [temp-el :int i :int frac :float frac-end :float onset :float dur :float factor :float el :int])
defn
tidal-eval-slow
(tidal-eval-slow [pat :int cycle :int onset :float dur :float el :int])
defn
tidal-eval-rev-build
(tidal-eval-rev-build [temp-el :int n :int i :int onset :float dur :float el :int])
defn
tidal-eval-degrade-filter
(tidal-eval-degrade-filter [temp-el :int n :int i :int prob :float el :int])
defn
tidal-eval-to-cons
(tidal-eval-to-cons [pat :int cycle :int])
evaluate pattern at cycle, return cons list of event handles.
Parameters
| pat | pattern handle returned by parse-notation (via tidal-ok-val) | |
| cycle | cycle number (0-based integer) |
Returns
cons list of TidalEvent* handles (as :int). Walk with head/tail.
Example
(let [evts (tidal-eval-to-cons p 0)]
(if (list-nil? evts) "empty" "has events"))
Since: TD1
defn
parse-notation
(parse-notation [text :cstr])
parse mini-notation text into a pattern handle.
Parameters
| text | mini-notation string (e.g. "bd sd cp" or "[bd sd] cp <60 62>") |
Returns
tidal-ok(pattern :int) on success, tidal-err(0) on parse error.
Example
(let [r (parse-notation "bd sd cp")]
(if (tidal-ok? r) (tidal-ok-val r) "error"))
Since: TD1
defn
notation-free
(notation-free [p :int])
free a pattern returned by parse-notation.
Parameters
| p | pattern handle returned by parse-notation (the :int from tidal-ok-val) |
Example
(notation-free p)
Since: TD1
defn
pattern-events
(pattern-events [p :int cycle :int])
evaluate a pattern at the given cycle number.
Parameters
| p | pattern handle | |
| cycle | cycle number (0-based integer) |
Returns
cons list of event handles (onset, dur, value); caller frees events.
Example
(let [evts (pattern-events p 0)]
(if (list-nil? evts) "empty" "has events"))
Since: TD1