# Continuous Signals

Signals are patterns with continuous values, meaning they have theoretically infinite steps. They can provide streams of numbers that can be sampled at discrete points in time.

## saw

A sawtooth signal between 0 and 1.

note("<c3 [eb3,g3] g2 [g3,bb3]>*8") .clip(saw.slow(2))

n(saw.range(0,8).segment(8)) .scale('C major')

## sine

A sine signal between 0 and 1.

n(sine.segment(16).range(0,15)) .scale("C:minor")

## cosine

A cosine signal between 0 and 1.

n(stack(sine,cosine).segment(16).range(0,15)) .scale("C:minor")

## tri

A triangle signal between 0 and 1.

n(tri.segment(8).range(0,7)).scale("C:minor")

## square

A square signal between 0 and 1.

n(square.segment(4).range(0,7)).scale("C:minor")

## rand

A continuous pattern of random numbers, between 0 and 1.

// randomly change the cutoff s("bd*4,hh*8").cutoff(rand.range(500,8000))

## Ranges from -1 to 1

There is also `saw2`

, `sine2`

, `cosine2`

, `tri2`

, `square2`

and `rand2`

which have a range from -1 to 1!

## perlin

Generates a continuous pattern of perlin noise, in the range 0..1.

// randomly change the cutoff s("bd*4,hh*8").cutoff(perlin.range(500,8000))

## irand

A continuous pattern of random integers, between 0 and n-1.

- n (number): max value (exclusive)

// randomly select scale notes from 0 - 7 (= C to C) n(irand(8)).struct("x x*2 x x*3").scale("C:minor")

## brand

A continuous pattern of 0 or 1 (binary random)

s("hh*10").pan(brand)

## brandBy

A continuous pattern of 0 or 1 (binary random), with a probability for the value being 1

- probability (number): a number between 0 and 1

s("hh*10").pan(brandBy(0.2))

## mouseX

The mouse's x position value ranges from 0 to 1.

n(mousex.segment(4).range(0,7)).scale("C:minor")

## mouseY

The mouse's y position value ranges from 0 to 1.

n(mousey.segment(4).range(0,7)).scale("C:minor")

Next up: Random Modifiers