[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ None+/The possible things to be found in MikMod_errnodA MikMod 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 eof.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.Operations that manipulate muting of multiple channels use one of two interpretations of the specified channge range. MuteExclusive means mute / unmute / toggle muting of all channels outside the specified range.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 mikmodGetChannelVoice.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._`abcdefghijklmnop^_`abcdefghijklmnop^_`abcdefghijklmnop^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 SafeA versions of the API methods which return an Either MikModError.Lqrstuvwxyz{|}~Lqrstuvwxyz{|}~Lqrstuvwxyz{|}~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.kSet the loop flag. False means only process forward loops or same-pattern backward loops. Default is True.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). wSet the sample flags. Useful for setting the loop, reverse, and bi-directional playback characteristics of the sample.cQuery the "on disk" flags of the sample if you're curious about the original format of the sample.Query the length of the sample... in samples. The byte-size of a (big) sample is related to the size of a (small) sample in bytes, either 8bit or 16bit.*Set the loop starting position in samples. %Set the loop end position in samples.      LGPL3NoneN ~Query the global music volume. It has range 0 to 128 (there are 129 possible volume levels). The default music volume is 128. HSet the global music volume. The argument must be in the range 0 to 128. Query the global stereo separation. It has range 0 to 128 where 0 means mono sound and 128 means full separation. The default pan sep is 128.MSet the global stereo separation. The argument must be in the range 0 to 128.Query the global reverb. It has range 0 to 15 where 0 means no reverb and 15 means extreme reverb. The default reverb is zero.ASet the global reverb. The argument must be in the range 0 to 15.gQuery the global sound effects volume. It has range 0 to 128. The default sound effects volume is 128.PSet the global sound effects volume. The argument must be in the range 0 to 128.gQuery the global overall sound volume. It has range 0 to 128. The default overall sound volume is 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.Query the mix frequency setting measured in Hertz. Higher values mean more sound quality and more CPU usage. The default is 44100.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.$Query the current "mode flags". See .fSet 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].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 ).0Same as mikmodInit but doesn't throw exceptions.pRegisters all drivers and loaders, initializes MikMod, sets a number of sound effect 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 current driver, if any.&>Get a formatted string describing the current 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 .*ERegister all loaders. Use this before loading any modules or samples.+Reinitialize the MikMod system. This might be necessary after tweaking one of MikMods global parameters. If reinitialization fails it will throw a MikModError.,1Same as mikmodReset but doesn't throw exceptions.-Set the number of music voices and sample voices to be used for playback. If this operation fails for some reason it will throw a MikModError..8Same as mikmodSetNumVoices but doesn't throw exceptions./On 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.0Check if the player is active.1eFree a module and stop it if it is playing. You must discard the ModuleHandle after this operation. 2QThis function determines the voice corresponding to the specified module channel.3)Get the currently playing module, if any.4Load 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.50Same as playerLoad but doesn't throw exceptions.6>Same as playerLoad but loads the module data from the MReader.77Same as playerLoadGeneric but doesn't throw exceptions.8hLoad only the title from a module file. Returns Nothing in case there is no title or an error occurred!9Mute 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.?(Set the position of the current module. @-Set the speed of the current module, 1 to 32.A/Set the tempo of the current module, 32 to 255./Set the volume of the current module, 0 to 128.BBegin playing the given module.CStop the player.D+Toggle the muting of the specified channel.EkToggle the muting of a range of channels. MuteOperation determines if the range is inclusive or exclusive.F:Pause the player if it isn't paused. Otherwise unpause it.GUnmute the given channel.HToggle the muting of a range of channels. If MuteInclusive is used this will include all channels in the given range. MuteExclusive is the opposite of MuteInclusive.ILoad a sample from a mono, uncompressed RIFF WAV file. If something goes wrong while loading the same it will throw a MikModError.J0Same as sampleLoad but doesn't throw exceptions.K7Same as sampleLoad but read sample data from a MReader.L7Same as sampleLoadGeneric but doesn't throw exceptions.MPlay 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.N This is like M 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).OFFree a sample. You must discard the SampleHandle after this operation.P;Set a voice's volume, 0 - 256. There are 257 volume levels.R!Set a voice's frequency in Hertz.TKSet a voice's pan position. 0 is far left, 127 is center, 255 is far right.VPlay 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.WStop a voice from playing.X*Check if a voice is currently not playing.YQuery 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.ZCompute 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.Q    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZdefh      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ   $)*!%&-.+,#"/ '(45678BC>F01239:GHDE;<=?@AIJKLMNO  VWXPQRSTUYZdfehQ    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^  mikmod-0.1.1.0Sound.MikMod.ErrorsSound.MikMod.SynonymsSound.MikMod.FlagsSound.MikMod.Types Sound.MikModSound.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 marshalVoiceeofnewByteStringReadernewHandleReadermikmodGetError getModuleInfogetModuleSamplesgetModuleRealChannelsgetModuleTotalChannelsgetModuleSongTimegetModuleSongPositiongetModulePatternPositionsetModuleInitSpeedgetModuleInitSpeedsetModuleInitTempogetModuleInitTemposetModulePanninggetModulePanningsetModuleChannelVolumegetModuleChannelVolume setModuleBPM getModuleBPMsetModuleSongSpeedgetModuleSongSpeedsetModuleExtSpeedgetModuleExtSpeedsetModulePanFlaggetModulePanFlag setModuleWrap getModuleWrapsetModuleRepeatPositiongetModuleRepeatPosition setModuleLoop getModuleLoopsetModuleFadeoutgetModuleFadeoutsetModuleRelativeSpeedgetModuleRelativeSpeedpanLeftpanRight getSampleInfosetSamplePanninggetSamplePanningsetSampleSpeedgetSampleSpeedsetSampleVolumegetSampleVolumesetSampleFlagsgetSampleFlagsgetSampleInFlagsgetSampleLengthsetSampleLoopStartgetSampleLoopStartsetSampleLoopEndgetSampleLoopEndmikmodGetMusicVolumemikmodSetMusicVolumemikmodGetPanSepmikmodSetPanSepmikmodGetReverbmikmodSetReverbmikmodGetSndFXVolumemikmodSetSndFXVolumemikmodGetVolumemikmodSetVolumemikmodGetDeviceIndexmikmodSetDeviceIndexmikmodGetDrivermikmodGetMixFreqmikmodSetMixFreqmikmodGetDriverModeFlagsmikmodSetDriverModeFlags mikmodInitmikmodInitSafe mikmodSetup runMikMod mikmodExit mikmodActivemikmodEnableOutputmikmodDisableOutputmikmodGetVersionmikmodInfoDrivermikmodInfoLoadermikmodInitThreads withMikModmikmodRegisterAllDriversmikmodRegisterAllLoaders mikmodResetmikmodResetSafemikmodSetNumVoicesmikmodSetNumVoicesSafe mikmodUpdate playerActive playerFreeplayerGetChannelVoiceplayerGetModule playerLoadplayerLoadSafeplayerLoadGenericplayerLoadGenericSafeplayerLoadTitleplayerMuteChannelplayerMuteChannels playerMutedplayerNextPositionplayerPrevPosition playerPausedplayerSetPositionplayerSetSpeedplayerSetTempo playerStart playerStopplayerToggleMuteChannelplayerToggleMuteChannelsplayerTogglePauseplayerUnmuteChannelplayerUnmuteChannels sampleLoadsampleLoadSafesampleLoadGenericsampleLoadGenericSafe samplePlaysamplePlayCritical 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