4.HC      !"#$%&'()*+,-./0123456789:;<=>?@ABNoneTVCDEFGHIJKLMNOPQRSTUVINCDEFGHIJKLMNOPQRSTUV Safe-InferredWDA wrapper around IO with a designated directory for temporary files.XCreates a new temporary directory to run a computation in. When finished, the final file will be moved/copied to the given path, and the temporary directory will be deleted.Y@Creates a new file in the temporary directory, given a template.WXYZ[WXYWXYNoneT\Sequentially connect audio]/Add audio sample-wise, also multiplying volumes^Pad audio start with silence_A Jammit-provided AIFC file`An empty stereo file abcd\]^_`efgh abcd\]^_`ehacbd`_^]\efghNoneT ijklm (images, system height)systems per pagenopqrmr ijklmnopqrNone/For guitar and bass, the tablature sheet music.-For any instrument, the notation sheet music.,The backing track for an instrument package.(An audio file for a single notated part.#)Rarely used. Seen in "Smoke on the Water"$%Rarely used. Seen in "Wait for Sleep"%BRarely used. Seen in "The Answer Lies Within" and "Wait for Sleep"'Used for both Keys and Keys 1(%Rarely used. Seen in "Space Truckin'")Used for both Drums and Drums 1,!Used for both Guitar and Guitar 1-The Enum instance corresponds to the number used in the "instrument" property, and the names (used by Show/Read) are capitalized versions of those used in the "skillLevel" property.s;Reads strictly so as not to exhaust our allowed open files.9MTries to find the top-level Jammit library directory on Windows or Mac OS X.t-Gets the contents of a directory without the . and ..] special paths, and adds the directory to the front of all the names to make absolute paths.:WSearches a directory and all subdirectories for folders containing a Jammit info file.C  !"#$%&'()*+,-./0123456uvwx78s9t:yz;  !"#$%&'()*+,-./0123456789:;-210/. ,+*)('&%$#"!3456 789:  ,+*)('&%$#"!-210/.3456uvwx78s9t:yzNone<Filter the library based on some string selector. The selector is applied case-insensitively, and the song's field only has to contain the search term rather than match it exactly.=SFilter the library based on some string selector. The selector must match exactly.>FGiven the top-level Jammit library directory, finds all song packages.?@A mapping from audio part to absolute filename of an audio file.@A mapping from sheet part to .(prefix of image files, line height in pixels).;<=>?@AAIFCs to mix in normallyAIFCs to mix in invertedthe resulting WAV fileB pairs of $(png file prefix, line height in px)%how many sheet music systems per pagethe resulting PDF;<=>?@AB;<=>?@AB;<=>?@AB{       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a_bcdefghijklmnopqrstuvwxyz{|}~jammittools-0.4Sound.Jammit.BaseSound.Jammit.ExportSound.Jammit.Internal.AudioSound.Jammit.Internal.TempIOSound.Jammit.Internal.AudioExprSound.Jammit.Internal.ImageTrack trackClass identifierscoreSystemHeightscoreSystemInterval trackTitleInfoalbumartistbpm copyright countInBeats courtesyOfdemoexplicitgenre instrument publishedBy skillLevelskuslowtitleversion writtenBy SheetPartTabNotation AudioPartWithoutOnlyPart PartBVocals PartVocal PartOrgan PartSynth PartPiano PartKeys2 PartKeys1 PartDrums2 PartDrums1PartBass PartGuitar2 PartGuitar1 InstrumentVocalKeyboardDrumsBassGuitar titleToParttitleToAudioPartpartToInstrumentaudioPartToInstrumentloadInfo loadTracks findJammitDir songSubdirsLibrary fuzzySearchBy exactSearchBy loadLibrary getAudioParts getSheetPartsrunAudiorunSheetLEwriteLEBEreadBE parseChunkparseChunksUntilreadIMA decodeChunkclamp indexTable stepTablewriteWAV $fLEInt16 $fLEInt32 $fLEWord16 $fLEWord32 $fBEInt16 $fBEWord16 $fBEInt32 $fBEWord32TempIO runTempIO newTempFiletransformers-0.4.2.0Control.Monad.IO.ClassliftIOControl.Monad.Trans.ReaderaskConcatMixPadFileEmptyTimeSamplesSecondsAudio renderAudio renderSourcemixAudiooptimizeloadPNG pngChunks chunksToPagessinkJPEG partsToPagessaveJPEG vertConcat vertSplit imagePage jpegsToPDFreadXmlPropertyListFromFile' lsAbsolute fromPlEnumplEnum fromPlSkillsplSkills$fPropertyListItemTrack$fPropertyListItemInfo