úÎ!4Û/K      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF G H I J SafeSafeg     SafeõKLMNOP SafeDQRSafe‡ !" !"Safe ƒ(soxÿ 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?#$#$ Safe Ù STUVWXYZ[\]^Safe ‘/sox"You can combine options using the _ functions ` and aV. When the same option is given multiple times, only the first occurence is respected./bcd0Safe Ü/0123456123456/0Safe 7sox N:load Sound.Sox.Convert simple Option.none "test.aiff" Option.none "test.wav"7soxsource options soxsource file name soxtarget options soxtarget file name 77Safe9sox7Unfortunately we cannot retrieve the sample rate using sox. However there is soxi2 for this purpose, which we may support in future. ÿÿ:load Sound.Sox.Read Sound.Sox.Signal.List :module + Control.Exception bracket (open Option.none "test.aiff") close $ \h -> withHandle2 Sound.Sox.Signal.List.getContents h >>= \x -> print (Control.Monad.Exception.Asynchronous.result x :: [Data.Int.Int16])89:;<89:;<NoneÝ=>?@AB?@AB>=Safe=esox¹Disable sigPIPE for a local action. If we don't call this, GHCi quits, when the playing command is aborted with CTRL-C. Unfortunately there doesn't seem to be another way of doing this.ef Safe!Fsox „:load Sound.Sox.Play Sound.Sox.Signal.List simple Sound.Sox.Signal.List.put Option.none 11025 (iterate (1000+) (0::Data.Int.Int16))Fsox!Writer routine - e.g.  or  sox sample rate Gsox!Writer routine - e.g.  or  soxsource options, usually none soxtarget options sox sample rate FGFG Safe.ùHsoxESox determines the output format from the filename extension or from 6). Make sure that you provide one of them. œ:load Sound.Sox.Write Sound.Sox.Signal.List simple Sound.Sox.Signal.List.put Option.none "test.aiff" 11025 (take 100 $ iterate (1000+) (0::Data.Int.Int16))JsoxThe traversable functor f might be gr or '[]'. It allows you to write to many files simultaneously and returns the exit codes of all writing processes.Hsox!Writer routine - e.g.  or  sox sample rate Isox!Writer routine - e.g.  or  soxsource options, usually none soxtarget options sox sample rate Jsox!Writer routine - e.g.  or  soxsource options, usually none soxtarget options sox sample rate hsoxsource options, usually none soxtarget options sox sample rate HIJHIJi !"#$%& '()*+,-./0123456789:;<=>?@ABC!DEFGHIJKLMNOP  Q  Q R   S A T U  S     V   ! " # $WXYWXZWX[S\]^WX_ E`"sox-0.2.3.1-HwIOu1gzVKQ36x1rdkM4NrSound.Sox.Frame.StereoSound.Sox.FrameSound.Sox.InformationSound.Sox.FormatSound.Sox.Option.FormatSound.Sox.ConvertSound.Sox.ReadSound.Sox.Signal.ListSound.Sox.PlaySound.Sox.WriteSound.Sox.Private.ArgumentsSound.Sox.Private.FormatSound.Sox.Private.InformationSound.Sox.Private.OptionSound.Sox.SystemputData.StorableVectorhPut)sample-frame-0.0.3-Bv4YSttpYdn71uzu4vkYumSound.Frame.StereoconsrightleftT Sound.Frame withSignalnumberOfChannelsConssimpleformat sampleRatelength bitsPerSampleget exampleMulti exampleSingle$fApplicativeT $fFunctorTcustomaiffwaveoggmp3iff8svxmuLaw signedByte unsignedByte signedWord unsignedWord signedLong unsignedLongieeeSinglePrecisionieeeDoublePrecisionC$fCT$fCT0 $fCDouble$fCFloat$fCInt32 $fCWord32$fCInt16 $fCWord16$fCInt8$fCWord8singlenonenumberOfChannelsAutoHandleopenclose withHandle1 withHandle2IOReadException ReadException writeFile withReadFile getContents$fShowReadException$fEqReadException$fEnumReadExceptionextended manyExtendeddeconsfileNamepipe simpleReadbaseGHC.BaseMonoidmappendmconcat toArguments catchCtrlC ignoreCtrlCMaybe