Îõ³h&qbË      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF G H I J  Safe-Inferred^ Safe-InferredŒ      Safe-InferredÈKLMNOP  Safe-InferredõQR Safe-Inferred !" !" Safe-Inferred{(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-Inferred© STUVWXYZ[\]^ Safe-Inferred„/sox"You can combine options using the _ functions ` and aÖ. When the same option is given multiple times, only the first occurence is respected./bcd0 Safe-Inferred°/0123456123456/0 Safe-Inferred©7sox Î:load Sound.Sox.Convert simple Option.none "test.aiff" Option.none "test.wav"7soxsource options soxsource file name soxtarget options soxtarget file name 77 Safe-Inferredp9sox7Unfortunately 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:;< Safe-Inferred =>?@AB?@AB>= Safe-Inferred–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-Inferred XFsox „: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-InferredXHsoxÅSox 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 gò 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 HIJHIJé !"#$%& '()*+,-./0123456789:;<=>?@ABC!DEFGHIJKLMNOP  Q  Q R  S  A T U S      V   ! " # $WXYWXZWX[S\]^W_` Eá"sox-0.2.3.2-FmjgdyTmU3iKGl92wsOcQsSound.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.4-4OB1LeX5LXd1TPuEeEamY7Sound.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 ignoreCtrlC GHC.MaybeMaybe