aK]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ None+/The possible things to be found in MikMod_errnodMikMod reports errors as either critical or not. A critical error means the system state was reset because it could not continue in the face of the error.n  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef]ghij^_k  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkdfeghcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  ij acba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  dfe]ghij^_ Safe-Inferred klmnopqrst klmnopqrst qponmlkrst klmnopqrstNonesClass to handle the bit flags. It's Enum with UWORD (CUShort) instead of Int and without irrelevant functionality.*uvwxyz{|}~'uvwxyz{|}~*u~}|{zyxwv u ~}|{zyxwv None |Collection of IO operations that MikMod can use to load data from an arbitrary source, such as a memory buffer or zip file.@Move the read position. Return 0 for success and -1 for failure.!Report the current read position.Write a number of bytes to the destination and advance the read position. Return True if an error occurred or False otherwise. EOF is not an error.oReturn one byte and advance the read position. If an error occurs or we are at the end-of-stream, then return .GReturn True if we are at the end of the stream. Otherwise return False.Static info about a sample.Static info about a module.^Handle to a Module object which contains the music data and current playback state of a song. Pan settings.oWhen loading a module Curious will cause the loader to attempt to load hidden tracks past the end of the song.8Inclusive or exclusive selection of channels for muting.MikMod distinguishes module channels from voices. Sound effects and music both work by playing samples on voices. At most one sample can play on a voice at a time. Operations on the voice level take a voice number which you can get using  and .666  None9To be returned by a readerGet if called at end-of-stream.`Allocate a MREADER and populate it with the correct function pointers. Run the action on the MREADER and free it all even if an error occurs.%Create an MReader from a ByteString. *Wrap a Handle so it works like an MReader.abcdefghijklmnopqr`abcdefghijklmnopqr`abcdefghijklmnopqr` NoneQuery the current MikMod global errno and get the MikModError expressed there, if any. This value is only valid if checked immediately after an error occurs. If you are interested in MikModErrors use the "SafeB" versions of the API methods which return an Either MikModError.Lstuvwxyz{|}~Lstuvwxyz{|}~Lstuvwxyz{|}~ None/Get a report of the static aspects of a module.vGet handles to the samples contained in a module. I don't think it would be wise to call sampleFree on these samples.LDuring playback, the number of active channels (not counting NNA channels). HDuring playback, the total number of channels (including NNA channels). FElapsed song time in units of 1/1024 seconds. That's not milliseconds.Current song position.-Current position in the pattern being played.=Set the initial speed of the module. Must be in range 1 - 32.?Set the initial tempo of the module. Must be in range 32 - 255..Set the pan position of a channel in a module./Query the pan position of a particular channel.(Set the volume of a channel in a module.)Query the volume of a particular channel.!Set the tempo of the module. See playerSetTempo.!Set the speed of the module. See playerSetSpeed._Set the Protracker extended speed effect flag. True means process the effect. Default is True.BSet the pan flag. True means process pan effects. Default is True.hSet the wrap flag. True means repeat from restart position at end of song. Default is False, song ends.Set the restart position.~Set the loop flag. False means only process forward loops or same-pattern backward loops. Default is True, process all loops.JSet the fadeout flag of the module. True means fade out. Default is False.ZThis value is added to the module tempo to define actual playback speed. Default is zero.&Channel to set panning on.2Pan position from 0 (far left) to 255 (far right).Channel to set volume on.Volume level from 0 to 128.&& None Far left pan. panLeft = Pan 0."Far right pan. panRight = Pan 255..Get a report of the current state of a sample.mSet the panning value of the sample. Valid values range from panLeft (0) to panRight (255), or PanSurround. *Set the sample playing frequency in Hertz.2Set sample volume to a range 0 to 64 (65 levels). zModify the sample flags. Useful for setting the loop, reverse, and bi-directional playback characteristics of the sample.See X to avoid clobbering flags you aren't trying to clear, such as the sample format flags.UQuery the "on disk" flags of the sample if you're curious about the original format.-Query the length of the sample... in samples.*Set the loop starting position in samples. %Set the loop end position in samples.         LGPL3NoneH gSet the global music volume. The argument must be in the range 0 to 128 (There are 129 volume levels).Set the global stereo separation. The argument must be in the range 0 to 128 where 0 means mono sound and 128 means full separation. The default pan sep is 128.Set the global reverb. The argument must be in the range 0 to 15 where 0 means no reverb and 15 means extreme reverb. The default reverb is zero.PSet the global sound effects volume. The argument must be in the range 0 to 128.PSet the global overall sound volume. The argument must be in the range 0 to 128.CThe selected output driver from the global 1-based list of drivers.Change the selected output driver by specifying a 1-based index into the global list of drivers. Setting this to zero, the default, means autodetect. To see the list use '.Get a info report of the sound driver currently in use, if any. MikMod does not expose any functionality via MDriver field manipulation.Set the mix frequency measured in Hertz. Higher values mean more sound quality and more CPU usage. Common values are 8000, 11025, 22100, and 44100. The default is 44100.iModify the "mode flags". These flags affect sound output in various ways. For a full explanation of each one see the MikMod docs. Changing DModeInterp, DModeReverse, or DModeSurround will affect playing immediately. The other flags will require a reset. The default flags are set to [DModeStereo, DModeSurround, DMode16Bits, DModeSoftMusic, DModeSoftSndFX].See 7 to avoid clobbering flags you aren't trying to clear.Initialize the MikMod system using an initialization string. An empty string is acceptable (see MikMod docs for more info). If initialization fails it will throw a MikModError.SDon't try this until you register a driver which is supported by your system. See +.#See also the convenience functions   and !.Same as  but doesn't throw exceptions. jRegisters all drivers and loaders, initializes MikMod, sets a number of sample voices and enables output.!Run an action between   and "5. It does not handle freeing of Modules and Samples."Shutdown the MikMod system.#'Check if a module is currently playing.$Enable output. This happens automatically when playing a module. But according to the examples, mikmodEnableOutput is required before sound effects will work by themselves.%Disable output.&3Get the MikMod version as (major, minor, revision).'@Get a formatted string describing the available drivers, if any.(@Get a formatted string describing the available loaders, if any.)Check if MikMod is thread safe.*Execute the action after calling MikMod_Lock. Calls MikMod_Unlock afterwards even if an error occurred. See the MikMod docs to determine if this is necessary.+?Register all drivers. Use this before initializing MikMod with .,:Register all loaders. Use this before loading any modules.-Reinitialize the MikMod system. This might be necessary after tweaking one of MikMods global parameters. If reinitialization fails it will throw a MikModError..Same as - but doesn't throw exceptions./WSet the number of music voices and sample voices to be used for playback. A value of -1 for either argument means "don't modify pre-existing number of voices". In particular the number of music voices is handled by the module player so probably shouldn't be manipulated. If this operation fails for some reason it will throw a MikModError.0Same as / but doesn't throw exceptions.1On some drivers mikmodUpdate must called periodically to fill an audio out buffer, or sound wont play. In those environments you must call it more often for higher quality audio (see ).rMany audio backends have luckily taken this out of the programmer's hands and so mikmodUpdate may be unnecessary.2Check if the player is active.3eFree a module and stop it if it is playing. You must discard the ModuleHandle after this operation. 4QThis function determines the voice corresponding to the specified module channel.5)Get the currently playing module, if any.6Load a module from a file. The second argument is the maximum number of channels to allow. If something goes wrong while loading the module it will throw a MikModError.70Same as playerLoad but doesn't throw exceptions.8>Same as playerLoad but loads the module data from the MReader.97Same as playerLoadGeneric but doesn't throw exceptions.:hLoad only the title from a module file. Returns Nothing in case there is no title or an error occurred!;Mute the given channel.<[Mute a range of channels. MuteOperation determines if the range is inclusive or exclusive.=Check if a channel is muted.>(Skip to the next position in the module.?/Go back to the previous position in the module.@&Check if the current module is paused.A(Set the position of the current module. B-Set the speed of the current module, 1 to 32.C/Set the tempo of the current module, 32 to 255./Set the volume of the current module, 0 to 128.DBegin playing the given module.EStop the player.F+Toggle the muting of the specified channel.GkToggle the muting of a range of channels. MuteOperation determines if the range is inclusive or exclusive.H:Pause the player if it isn't paused. Otherwise unpause it.IUnmute the given channel.JkToggle the muting of a range of channels. MuteOperation determines if the range is inclusive or exclusive.KLoad a sample from a mono, uncompressed RIFF WAV file. If something goes wrong while loading the sample it will throw a MikModError.LSame as K but doesn't throw exceptions.MSame as K% but read sample data from a MReader.NSame as M but doesn't throw exceptions.OPlay the given sample from the specified starting position (in samples). If there aren't enough voices available to do this, it will replace the oldest non-critical sample currently playing.P This is like O but the sample will not be interrupted by other samples played later (unless all voices are being used by critical samples and yet another critical sample is played).QFFree a sample. You must discard the SampleHandle after this operation.R;Set a voice's volume, 0 - 256. There are 257 volume levels.T!Set a voice's frequency in Hertz.VKSet a voice's pan position. 0 is far left, 127 is center, 255 is far right.XPlay a sample on the specified voice starting from the specified position. The playing sample will have the same "critical status" as the previous sample played on this voice.YStop a voice from playing.Z*Check if a voice is currently not playing.[Query the position (in samples) of the sample playing on this voice. If no sample is playing it will return zero. On some drivers this operation does not work and will return -1.\Compute the "actual playing volume" of the voice. The result will be in the range 0 - 65535. On some drivers this operation does not work and will return zero.R   !"#$%&'()*+,-./Number of music voices or -1Number of sample voices or -10123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\defhuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\  ! &+,#'(/0-.%$1")*6789:DE@H2345;<IJFG=>?ABCu~}|{zyxwvKLMNOPQ   XYZRSTUVW[\dfehR   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                  `                                       mikmod-0.1.2.1Sound.MikMod.ErrorsSound.MikMod.SynonymsSound.MikMod.FlagsSound.MikMod.Types Sound.MikModeofplayerGetChannelVoice samplePlaySound.MikMod.MReaderSound.MikMod.InternalSound.MikMod.ModuleSound.MikMod.SampleMikModException MikModErrno MMErrUnknownMMErrMaxMMErrAlsaPcmRecoverMMErrAlsaPcmWriteMMErrAlsaPcmStartMMErrAlsaBuffersizeMMErrAlsaSetchannelsMMErrAlsaSetrateMMErrAlsaSetformatMMErrAlsaSetparamsMMErrAlsaNoconfigMMErrOpenalSourcestopMMErrOpenalSourceplayMMErrOpenalGetsourceMMErrOpenalBufferdataMMErrOpenalUnqueuebuffersMMErrOpenalQueuebuffersMMErrOpenalSourceMMErrOpenalGensourcesMMErrOpenalGenbuffersMMErrOpenalCtxcurrentMMErrOpenalCreatectxMMErrNoFloat32MMErrDossbStartdmaMMErrDoswssStartdmaMMErrOsxPthreadMMErrOsxDeviceStartMMErrOsxAddIoProcMMErrOsxBufferAllocMMErrOsxSetStereoMMErrOsxUnsupportedFormatMMErrOsxBadPropertyMMErrOsxUnknownDevice MMErrMacStart MMErrMacSpeedMMErrWinmmUnknownMMErrWinmmFormatMMErrWinmmDeviceidMMErrWinmmAllocatedMMErrWinmmHandle MMErrDsUpdate MMErrDsThread MMErrDsEvent MMErrDsNotify MMErrDsFormat MMErrDsBufferMMErrDsPriorityMMErrOs2Thread MMErrOs2TimerMMErrOs2SemaphoreMMErrOs2Mixsetup MMErrSunInit MMErrSgiMonoMMErrSgiStereo MMErrSgi8bit MMErrSgi16bit MMErrSgiSpeedMMErrOssSetspeedMMErrOssSetstereoMMErrOssSetsamplesizeMMErrOssSetfragmentMMErrHpBuffersizeMMErrHpAudioDescMMErrHpAudioOutputMMErrHpChannelsMMErrHpSetspeedMMErrHpSetsamplesize MMErrGusTimer MMErrGusResetMMErrGusSettingsMMErrAixConfigStartMMErrAixConfigControlMMErrAixConfigInitMMErrAfAudioPort MMErrNonBlock MMErrUlawMMErrStereoOnlyMMErr16bitOnly MMErr8bitOnlyMMErrOpeningAudioMMErrInitializingMixerMMErrInvalidDeviceMMErrDetectingDeviceMMErrItpackInvalidDataMMErrMedSynthsamplesMMErrNotAStreamMMErrNotAModuleMMErrLoadingSampleinfoMMErrLoadingHeaderMMErrLoadingTrackMMErrLoadingPatternMMErrUnknownWaveTypeMMErrOutOfHandlesMMErrSampleTooBigMMErrDynamicLinkingMMErrOutOfMemoryMMErrOpeningFile MikModErrorCritical NonCriticalgetErrnodescribeMikModErrormarshalMikModErrnounmarshalMikModErrnoBOOLSLONGULONGSWORDUWORDSBYTEUBYTE decodeBool encodeBoolgenericEncodeBool ModuleFlag UFPanning UFT2Quirks UFXMPeriods UFS3MSlidesUFNoWrapUFNNAUFLinearUFInst UFHighBPM UFBGSlidesUFARPMem SampleFlag SFReverseSFLoopSFBidiSFStereoSFSigned SFITPackedSFDelta SFBigEndianSF16BitsDriverModeFlagDModeNoiseReductionDModeSIMDMixer DModeReverse DModeInterp DModeSurround DModeFloat DModeHQMixerDModeSoftMusicDModeSoftSndfx DModeStereo DMode16BitsFlagtoFlagfromFlag unpackFlags packFlags$fFlagModuleFlag$fFlagSampleFlag$fFlagDriverModeFlag InstrumentMReader readerSeek readerTell readerRead readerGet readerEof SampleInfo samplePanning sampleSpeed sampleVolume sampleFlags sampleInflags sampleLengthsampleLoopStart sampleLoopEnd SampleHandleSample ModuleInfomoduleSongname moduleModType moduleComment moduleFlagsmoduleNumChannelsmoduleNumVoicesmoduleNumPositionsmoduleNumPatternsmoduleNumInstrumentsmoduleNumSamplesmoduleInstruments ModuleHandleModule MDriverInfo mdriverNamemdriverHardVoiceLimitmdriverSoftVoiceLimit mdriverAliasMDriverPan PanSurround CuriousFlag NotCuriousCurious MuteOperation MuteExclusive MuteInclusiveVoice marshalVoicenewByteStringReadernewHandleReadermikmodGetError getModuleInfogetModuleSamplesgetModuleRealChannelsgetModuleTotalChannelsgetModuleSongTimegetModuleSongPositiongetModulePatternPositionsetModuleInitSpeedgetModuleInitSpeedsetModuleInitTempogetModuleInitTemposetModulePanninggetModulePanningsetModuleChannelVolumegetModuleChannelVolume setModuleBPM getModuleBPMsetModuleSongSpeedgetModuleSongSpeedsetModuleExtSpeedgetModuleExtSpeedsetModulePanFlaggetModulePanFlag setModuleWrap getModuleWrapsetModuleRepeatPositiongetModuleRepeatPosition setModuleLoop getModuleLoopsetModuleFadeoutgetModuleFadeoutsetModuleRelativeSpeedgetModuleRelativeSpeedpanLeftpanRight getSampleInfosetSamplePanninggetSamplePanningsetSampleSpeedgetSampleSpeedsetSampleVolumegetSampleVolumemodifySampleFlagssetSampleFlagsgetSampleFlagsgetSampleInFlagsgetSampleLengthsetSampleLoopStartgetSampleLoopStartsetSampleLoopEndgetSampleLoopEndmikmodSetMusicVolumemikmodGetMusicVolumemikmodSetPanSepmikmodGetPanSepmikmodSetReverbmikmodGetReverbmikmodSetSndFXVolumemikmodGetSndFXVolumemikmodSetVolumemikmodGetVolumemikmodGetDeviceIndexmikmodSetDeviceIndexmikmodGetDrivermikmodSetMixFreqmikmodGetMixFreqmikmodModifyDriverModeFlagsmikmodGetDriverModeFlagsmikmodSetDriverModeFlags mikmodInitmikmodInitSafe mikmodSetup runMikMod mikmodExit mikmodActivemikmodEnableOutputmikmodDisableOutputmikmodGetVersionmikmodInfoDrivermikmodInfoLoadermikmodInitThreads withMikModmikmodRegisterAllDriversmikmodRegisterAllLoaders mikmodResetmikmodResetSafemikmodSetNumVoicesmikmodSetNumVoicesSafe mikmodUpdate playerActive playerFreeplayerGetModule playerLoadplayerLoadSafeplayerLoadGenericplayerLoadGenericSafeplayerLoadTitleplayerMuteChannelplayerMuteChannels playerMutedplayerNextPositionplayerPrevPosition playerPausedplayerSetPositionplayerSetSpeedplayerSetTempo playerStart playerStopplayerToggleMuteChannelplayerToggleMuteChannelsplayerTogglePauseplayerUnmuteChannelplayerUnmuteChannels sampleLoadsampleLoadSafesampleLoadGenericsampleLoadGenericSafesamplePlayCritical sampleFreevoiceSetVolumevoiceGetVolumevoiceSetFrequencyvoiceGetFrequencyvoiceSetPanningvoiceGetPanning voicePlay voiceStop voiceStoppedvoiceGetPositionvoiceRealVolumec_MikMod_strerror$fExceptionMikModException$fShowMikModException withMReaderEofFnGetFnReadFnTellFnSeekFnMREADERmkEofmkGetmkReadmkTellmkSeek genericEofunmarshalSeekModemakeSeekmakeTellmakeReadmakeGetmakeEof c_MikMod_freec_Voice_RealVolumec_Voice_GetPositionc_Voice_Stopped c_Voice_Stop c_Voice_Playc_Voice_GetPanningc_Voice_SetPanningc_Voice_GetFrequencyc_Voice_SetFrequencyc_Voice_GetVolumec_Voice_SetVolume c_Sample_Playc_Sample_LoadGeneric c_Sample_Loadc_Sample_Free_Ptr c_Sample_Freec_Player_UnmuteChannelsc_Player_UnmuteChannelc_Player_TogglePausec_Player_ToggleMuteChannelsc_Player_ToggleMuteChannel c_Player_Stopc_Player_Startc_Player_SetVolumec_Player_SetTempoc_Player_SetSpeedc_Player_SetPositionc_Player_Pausedc_Player_PrevPositionc_Player_NextPositionc_Player_Mutedc_Player_MuteChannelsc_Player_MuteChannelc_Player_LoadTitlec_Player_LoadGeneric c_Player_Loadc_Player_GetModulec_Player_GetChannelVoicec_Player_Free_Ptr c_Player_Freec_Player_Activec_MikMod_Updatec_MikMod_SetNumVoicesc_MikMod_Resetc_MikMod_RegisterAllLoadersc_MikMod_RegisterAllDriversc_MikMod_Unlock c_MikMod_Lockc_MikMod_InitThreads c_MikMod_Initc_MikMod_InfoLoaderc_MikMod_InfoDriverc_MikMod_GetVersion c_MikMod_Exitc_MikMod_EnableOutputc_MikMod_DisableOutputc_MikMod_Active c_md_mode c_md_mixfreq c_md_driver c_md_device c_md_volumec_md_sndfxvolume c_md_reverb c_md_pansepc_md_musicvolumec_MikMod_criticalc_MikMod_errnomarshalMuteOperation peekMDriver sfxCriticalmarshalCuriousmikmodGetStringpeekCStringMaybepeekCStringErrorunpackInstrumentNamesgetInstrumentNamesizeOfInstrumentpackPan unpackPanplayerSetVolume