synthesizer-dimensional-0.8.1: Audio signal processing with static physical dimensions

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Dimensional.RateAmplitude.Instrument

Synopsis

Documentation

stereoPhaser Source #

Arguments

:: C a 
=> (T Frequency a -> T s Time a (R s u b b))

A function mapping a frequency to a signal.

-> a

The factor to the frequency, should be close to 1.

-> T Frequency a

The base (undeviated) frequency of the sound.

-> T s Time a (R s u b b) 

Create a sound of a slightly changed frequency just as needed for a simple stereo sound.

allpassDown :: (C a, C a, C a a) => Int -> T Time a -> T Frequency a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

moogDown :: (C a, C a, C a a) => Int -> T Time a -> T Frequency a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

moogReso :: (C a, C a, C a a) => Int -> T Time a -> T Frequency a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

bell :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

bellHarmonic :: (C a, C a, C a a) => a -> T Time a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

fastBell :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

squareBell :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

moogGuitar :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

moogGuitarSoft :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

fatSaw :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

filterSaw :: (C a a, C a, C a) => T Frequency a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

fmBell :: (C a, C a, C a a) => a -> a -> T Frequency a -> T s Time a (R s Voltage a a) Source #

fmRing :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

Phase modulation using a ring modulated signal. May be used as some kind of e-guitar.

fatPad :: (C a, C a, C a a, Random a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

brass :: (C a, C a, C a a, Random a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

filterSweep :: (C a v, C a, C a) => T a -> T s Time a (R s Voltage a v -> R s Voltage a v) Source #

low pass with resonance

fatSawChordFilter :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

fatSawChord :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

filterDown :: (C a, C a) => T s Time a (R s Frequency a a) Source #

simpleSaw :: (C a, C u, C v) => T (Recip u) v -> T s u v (R s Voltage a v) Source #

modulatedWave :: (C a, C a, C u) => T s u a (R s (Recip u) a a -> R s Voltage a a) -> T (Recip u) a -> a -> T a -> T (Recip u) a -> T s u a (R s Voltage a a) Source #

accumulate multiple similar saw sounds and observe the increase of volume The oscillator osc must accept relative frequencies.

accumulationParameters :: (Random a, C a, C a, C a a) => [(T a, a, T a, T Frequency a)] Source #

accumulatedSaws :: (Random a, C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

choir :: (Random a, C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

wasp :: (C q, C q, C q q, Random q, C u) => T (Recip u) q -> T s u q (R s Voltage q q) Source #

A good choice is freq = DN.frequency 110

osciDoubleSaw :: (C a, C a a, C u) => T s u a (R s (Recip u) a a -> R s Voltage a a) Source #

sampledWave :: C t => T t y -> amp -> [y] -> T t (Numeric amp y) Source #

osciSharp :: (C a, C a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

A tone with a waveform with roughly the dependency x -> x^?p, where the waveform is normalized to constant quadratic norm

osciAbsModSaw :: (C a, C a, C a a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

Build a saw sound from its harmonics and modulate it. Different to normal modulation I modulate each harmonic with the same depth rather than a proportional one.

pulsedNoise Source #

Arguments

:: (Random a, C a, C a, C a a) 
=> T Frequency a

frequency of the pulses, interesting ones are around 100 Hz and below

-> T s Time a (R s Voltage a a) 

Short pulsed Noise.white, i.e. Noise.white amplified with pulses of varying H/L ratio.

noisePerc :: (Random a, C a, C a) => T s Time a (R s Voltage a a) Source #

noiseBass :: (Random a, C a, C a, C a a, Storable a) => T Frequency a -> T s Time a (R s Voltage a a) Source #

electroTom :: (Random a, C a, C a, C a a, Storable a) => T s Time a (R s Voltage a a) Source #

Drum sound using the Karplus-Strong-Algorithm This is a Noise.white enveloped by an exponential2 which is piped through the Karplus-Strong machine for generating some frequency. The whole thing is then frequency modulated to give a falling frequency.

bassDrum :: (C q, C q, C q q, Random q) => T s Time q (R s Voltage q q) Source #