packages feed

hsc3-sf-0.8: Help/rescale.help.hs

-- Change the gain of an audio file.

import qualified Sound.File.NeXT as F
import System.Environment

rescale :: Double -> FilePath -> IO ()
rescale n fn = do
  (hdr, d) <- F.read fn
  let d' = map (map (* n)) d
      hdr' = hdr { F.encoding = F.Float }
  F.write (fn ++ ".rescale.au") hdr' d'

main :: IO ()
main = do
  a <- getArgs
  case a of
    [g, fn] -> rescale (read g) fn
    _ -> putStrLn "rescale gain-multiplier file-name"

{-
rescale 0.25 "/home/rohan/audio/text.snd"
-}