úÎ,›(Þ/      !"#$%&'()*+,- .  / 0 1     23 23 2323      45678945678945656789 "You can combine options using the : functions ; and <. .When the same option is given multiple times, 'only the first occurence is respected. =>?=>?=>=>?  :load Sound.Sox.Convert  7 simple Option.none "test.aiff" Option.none "test.wav" source options source file name target options target file name  !"# !"# !"# !"# @$Disable sigPIPE for a local action.  If we don't call this, GHCi quits, 1when the playing command is aborted with CTRL-C. Unfortunately there doesn'(t seem to be another way of doing this. A@A@A$%B,The floating point instances are dangerous, /because Storable Float may not use IEEE format )that sox uses according to its man page. 'This is strange since sox uses the host'#s endianess for multi-byte values. #So, why does it not use the machine's floating point format? $%$%$%% &CDEFG'7Unfortunately we cannot retrieve the sample rate using sox. However there is soxi3 for this purpose, which we may support in future. , :load Sound.Sox.Read Sound.Sox.Signal.List  ¦ open Option.none "test.aiff" >>= withHandle2 Sound.Sox.Signal.List.getContents >>= (\x -> print (Control.Monad.Exception.Asynchronous.result x :: [Data.Int.Int16])) H()*&'()*&'()*&'()*+!Sox determines the output format $from the filename extension or from #. (Make sure that you provide one of them. - :load Sound.Sox.Write Sound.Sox.Signal.List  q simple Sound.Sox.Signal.List.put Option.none "test.aiff" 11025 (take 100 $ iterate (1000+) (0::Data.Int.Int16)) Writer routine -  e.g. Sound.Sox.Signal.List.put  or Data.StorableVector.hPut  sample rate ,Writer routine -  e.g. Sound.Sox.Signal.List.put  or Data.StorableVector.hPut source options, usually none target options  sample rate +,+,+, - , :load Sound.Sox.Play Sound.Sox.Signal.List  Z simple Sound.Sox.Signal.List.put Option.none 11025 (iterate (1000+) (0::Data.Int.Int16)) Writer routine -  e.g. Sound.Sox.Signal.List.put  or Data.StorableVector.hPut  sample rate .Writer routine -  e.g. Sound.Sox.Signal.List.put  or Data.StorableVector.hPut source options, usually none target options  sample rate -.-.-.I  !"#$%&'()*+  ,-./012134567-8 - 89:; < =  < = , > ?@AB@AC@AD < = E F GH3IJKLMNsox-0.2Sound.Sox.Frame.StereoSound.Sox.FrameSound.Sox.Signal.ListSound.Sox.FormatSound.Sox.Option.FormatSound.Sox.ConvertSound.Sox.ReadSound.Sox.WriteSound.Sox.PlaySound.Sox.Private.FormatSound.Sox.Private.ArgumentsSound.Sox.Private.OptionSound.Sox.Systemsample-frame-0.0.1Sound.Frame.StereoconsrightleftT Sound.Frame withSignalnumberOfChannelsIOReadException ReadException writeFileput withReadFile getContentscustomaiffwaveoggmp3iff8svxmuLaw signedByte unsignedByte signedWord unsignedWord signedLong unsignedLongieeeSinglePrecisionieeeDoublePrecisionsinglesimplenonenumberOfChannelsAuto sampleRateformatCHandleopenclose withHandle1 withHandle2extended BrokenFrameputFramegetFrameConsdeconsfileNamepipebase Data.MonoidMonoidmappendmconcat toArguments catchCtrlC ignoreCtrlC$fCFloat pipeInput pipeOutput pipeError processIdopenAux