csound-expression-5.4.0: library to make electronic music
Safe HaskellNone
LanguageHaskell2010

Csound.Air.Wave.Sync

Description

Oscillators with hard and soft sync

Synopsis

Hard sync

data SyncSmooth #

Type of smooth shape to make smooth transitions on retrigger. Available types are:

  • No smooth: RawSync
  • Ramp smooth: SawSync
  • Triangular smooth: TriSync
  • User defined shape: UserSync

Instances

Instances details
Default SyncSmooth 
Instance details

Defined in Csound.Typed.Control.Vco

Methods

def :: SyncSmooth #

sawSync :: Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

sawSync ratio cps

isawSync :: Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

isawSync ratio cps

pulseSync :: Sig -> Sig -> Sig #

Pulse oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

pulseSync ratio cps

sqrSync :: Sig -> Sig -> Sig #

Square oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

sqrSync ratio cps

triSync :: Sig -> Sig -> Sig #

Triangle oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

triSync ratio cps

bloscSync :: Tab -> Sig -> Sig -> Sig #

Band-limited oscillator with hard-sync. The first argument is a ration between slave and master oscillators.

bloscSync tab ratio cps

sawSync' :: D -> Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

sawSync' phase ratio cps

isawSync' :: D -> Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

isawSync' phase ratio cps

pulseSync' :: D -> Sig -> Sig -> Sig #

Pulse oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

pulseSync' phase ratio cps

sqrSync' :: D -> Sig -> Sig -> Sig #

Square oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

sqrSync' phase ratio cps

triSync' :: D -> Sig -> Sig -> Sig #

Triangle oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

triSync' phase ratio cps

bloscSync' :: Tab -> D -> Sig -> Sig -> Sig #

Band-limited oscillator with hard-sync with phase. The second argument is a ration between slave and master oscillators.

bloscSync' phase tab ratio cps

With random phase

rndSawSync :: Sig -> Sig -> SE Sig Source #

Hard sync with saw waveform and randomized phase.

rndIsawSync :: Sig -> Sig -> SE Sig Source #

Hard sync with integral saw waveform and randomized phase.

rndPulseSync :: Sig -> Sig -> SE Sig Source #

Hard sync with pulse waveform and randomized phase.

rndSqrSync :: Sig -> Sig -> SE Sig Source #

Hard sync with square waveform and randomized phase.

rndTriSync :: Sig -> Sig -> SE Sig Source #

Hard sync with triangle waveform and randomized phase.

rndBloscSync :: Tab -> Sig -> Sig -> SE Sig Source #

Hard sync with band-limited table waveform waveform and randomized phase.

With absolute slave frequencies

sawSyncAbs :: Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

sawSyncAbs freq slaveCps masterCps

isawSyncAbs :: Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

isawSyncAbs freq slaveCps masterCps

pulseSyncAbs :: Sig -> Sig -> Sig #

Pulse oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

pulseSyncAbs freq slaveCps masterCps

sqrSyncAbs :: Sig -> Sig -> Sig #

Square oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

sqrSyncAbs freq slaveCps masterCps

triSyncAbs :: Sig -> Sig -> Sig #

Triangle oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

triSyncAbs freq slaveCps masterCps

bloscSyncAbs :: Tab -> Sig -> Sig -> Sig #

Bandlimited table oscillator with hard-sync. The freq argument is an absolute frequency of a slave oscillator.

bloscSyncAbs tab freq slaveCps masterCps

sawSyncAbs' :: D -> Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

sawSyncAbs' phase freq slaveCps masterCps

isawSyncAbs' :: D -> Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

isawSyncAbs' phase freq slaveCps masterCps

pulseSyncAbs' :: D -> Sig -> Sig -> Sig #

Pulse oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

pulseSyncAbs' phase freq slaveCps masterCps

sqrSyncAbs' :: D -> Sig -> Sig -> Sig #

Square oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

sqrSyncAbs' phase freq slaveCps masterCps

triSyncAbs' :: D -> Sig -> Sig -> Sig #

Triangle oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

triSyncAbs' phase freq slaveCps masterCps

bloscSyncAbs' :: Tab -> D -> Sig -> Sig -> Sig #

Bandlimited table oscillator with hard-sync with phase. The freq argument is an absolute frequency of a slave oscillator.

bloscSyncAbs' phase tab freq slaveCps masterCps

With absolute custom smooth mode

sawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

sawSyncBy spec ratio cps

isawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync. We can specify the smoothness type. The first argument is a ration between slave and master oscillators.

isawSyncB specy ratio cps

pulseSyncBy :: SyncSmooth -> Sig -> Sig -> Sig #

Pulse oscillator with hard-sync. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

pulseSyncBy spec ratio cps

sqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig #

Square oscillator with hard-sync. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

sawSyncBy spec ratio cps

triSyncBy :: SyncSmooth -> Sig -> Sig -> Sig #

Triangle oscillator with hard-sync. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

triSyncBy spec ratio cps

bloscSyncBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig #

Bandlimited table oscillator with hard-sync. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

bloscSyncBy spec tab ratio cps

sawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Sawtooth oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

sawSyncBy' spec phase ratio cps

isawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Integrated sawtooth oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

isawSyncBy' spec phase ratio cps

pulseSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Pulse oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

pulseSyncBy' spec phase ratio cps

sqrSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Square oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

sawSyncBy' spec phase ratio cps

triSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Triangle oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

triSyncBy' spec phase ratio cps

bloscSyncBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig #

Bandlimited table oscillator with hard-sync with phase. We can specify the smoothness type. The ratio argument is a ration between slave and master oscillators.

bloscSyncBy' spec phase tab ratio cps

sawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig #

A hard sync for sawtooth with absolute slave frequency.

sawSyncAbs syncType salveCps masterCps

isawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig #

A hard sync for integrated sawtooth: 4 * x * (1 - x) with absolute slave frequency.

isawSyncAbs syncType salveCps masterCps

pulseSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig #

A hard sync for pulse wave with absolute slave frequency.

pulseSyncAbs syncType salveCps masterCps

sqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig #

A hard sync for square wave with absolute slave frequency.

sqrSyncAbs syncType salveCps masterCps

triSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig #

A hard sync for triangle wave with absolute slave frequency.

triSyncAbs syncType salveCps masterCps

bloscSyncAbsBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig #

A hard sync for band-limited oscillator with user defined waveform (it's stored in the table) woth absolute frequency.

bloscSyncAbs syncType ftable salveCps masterCps

sawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

A sawtooth.

isawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Integrated sawtooth: 4 * x * (1 - x).

pulseSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

Pulse (not normalized).

sqrSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

A square wave.

triSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig #

A triangle wave.

bloscSyncAbsBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig #

A band-limited oscillator with user defined waveform (it's stored in the table).

Raw (non-bandlimited) shapes

With relative slave frequency

rawTriSync :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited triangle wave.

rawSqrSync :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited square wave.

rawSawSync :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited sawtooth wave.

rawPwSync :: Double -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited pulse-width wave.

rawTriSyncBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited triangle wave.

rawSqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited square wave.

rawSawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited sawtooth wave.

rawPwSyncBy :: Double -> SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited pulse-width wave.

With absolute slave frequency

rawTriSyncAbs :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited triangle wave.

rawSqrSyncAbs :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited square wave.

rawSawSyncAbs :: Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited sawtooth wave.

rawPwSyncAbs :: Double -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited pulse-width wave.

rawTriSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited triangle wave.

rawSqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited square wave.

rawSawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited sawtooth wave.

rawPwSyncAbsBy :: Double -> SyncSmooth -> Sig -> Sig -> Sig Source #

Hard-sync with non-bandlimited pulse-width wave.

Soft sync

With relative slave frequency

softSync :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with band-limited square wave for switch). The soft sync amount is controlled with ratio between master and slave frequencies.

softSync slaveWave ratio masterWave

rawSoftSync :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with raw square wave for switch). It's faster than softSync The soft sync amount is controlled with ratio between master and slave frequencies.

rawSoftSync slaveWave ratio masterWave

softSyncBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with band-limited square wave for switch). The soft sync amount is controlled with ratio between master and slave frequencies. With first argument we can specify the smoothness algorithm.

softSyncBy spec slaveWave ratio masterWave

rawSoftSyncBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with raw square wave for switch). It's faster than softSyncBy The soft sync amount is controlled with ratio between master and slave frequencies. With first argument we can specify the smoothness algorithm.

rawSoftSyncBy spec slaveWave ratio masterWave

With absolute slave frequency

softSyncAbs :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with band-limited square wave for switch). The soft sync amount is controlled with absolute frequency of the slave oscillator.

softSyncAbs slaveWave ratio masterWave

rawSoftSyncAbs :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with raw square wave for switch). It's faster than softSyncAbs The soft sync amount is controlled with absolute frequency of the slave oscillator.

rawSoftSyncAbs slaveWave ratio masterWave

softSyncAbsBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with band-limited square wave for switch). The soft sync amount is controlled with absolute frequency of the slave oscillator. With first argument we can specify the smoothness algorithm.

softSyncAbsBy spec slaveWave ratio masterWave

rawSoftSyncAbsBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a Source #

Soft sync with given waveform (with raw square wave for switch). It's faster than softSyncAbsBy The soft sync amount is controlled with absolute frequency of the slave oscillator. With first argument we can specify the smoothness algorithm.

rawSoftSyncBy spec slaveWave ratio masterWave