Tweaks and a couple of tests for signals
This commit is contained in:
parent
b4b303a2d9
commit
fd8f70d914
2 changed files with 30 additions and 5 deletions
11
strudel.mjs
11
strudel.mjs
|
|
@ -676,23 +676,26 @@ export const signal = func => {
|
|||
return new Pattern(query)
|
||||
}
|
||||
|
||||
const _toBipolar = pat => pat.fmap(x => (x * 2) - 1)
|
||||
const _fromBipolar = pat => pat.fmap(x => (x + 1) / 2)
|
||||
|
||||
export const sine2 = signal(t => Math.sin(Math.PI * 2 * t))
|
||||
export const sine = signal(t => (Math.sin(Math.PI * 2 * t) + 1) / 2)
|
||||
export const sine = _fromBipolar(sine2)
|
||||
|
||||
export const cosine2 = sine2._early(0.25)
|
||||
export const cosine = sine._early(0.25)
|
||||
|
||||
export const saw2 = signal(t => (t % 1) * 2)
|
||||
export const saw = signal(t => t % 1)
|
||||
export const saw2 = _toBipolar(saw)
|
||||
|
||||
export const isaw2 = signal(t => (1 - (t % 1)) * 2)
|
||||
export const isaw = signal(t => 1 - (t % 1))
|
||||
export const isaw2 = _toBipolar(isaw)
|
||||
|
||||
export const tri2 = fastcat(isaw2, saw2)
|
||||
export const tri = fastcat(isaw, saw)
|
||||
|
||||
export const square2 = signal(t => (Math.floor((t*2) % 2) * 2) - 1)
|
||||
export const square = signal(t => Math.floor((t*2) % 2))
|
||||
export const square2 = _toBipolar(square)
|
||||
|
||||
function reify(thing) {
|
||||
// Tunrs something into a pattern, unless it's already a pattern
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue