packages feed

hsc3-graphs-0.11: src/bit-reduction.hs

-- bit reduction (adc)

import Sound.SC3.ID

sample_rate_decrease :: UGen
sample_rate_decrease =
  let f = lfNoise2 'a' KR 8
      nh = lfNoise2 'a' 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 'a' KR 8
      nh = lfNoise2 'a' 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

main :: IO ()
main = audition (out 0 (sample_rate_decrease + bit_rate_decrease))