packages feed

hsc3-graphs-0.14: gr/bit-reduction.hs

-- bit reduction (adc)

import Sound.SC3.ID {- hsc3 -}

sample_rate_decrease :: UGen
sample_rate_decrease =
  let f = lfNoise2 'α' KR 8
      nh = lfNoise2 'β' KR 3
      src = blip AR (f * 200 + 300) (nh * 10 + 20)
      sr = mouseX KR 1000 (sampleRate * 0.1) Exponential 0.2
  in latch src (impulse AR sr 0)

bit_rate_decrease :: UGen
bit_rate_decrease =
  let f = lfNoise2 'γ' KR 8
      nh = lfNoise2 'δ' KR 3
      src = blip AR (f * 200 + 300) (nh * 10 + 20)
      sr = mouseX KR 1000 (sampleRate * 0.1) Exponential 0.2
      bit_sz = mouseY KR 1 24 Exponential 0.2
      down_sample = latch src (impulse AR sr 0)
      bit_redux = roundTo down_sample (0.5 ** bit_sz)
  in mce2 down_sample bit_redux

-- > Sound.SC3.UGen.Dot.draw (sample_rate_decrease + bit_rate_decrease)
main :: IO ()
main = audition (out 0 (sample_rate_decrease + bit_rate_decrease))