h&zh      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                  ((c) Henning Thielemann, 2010-2012 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred (c) Henning Thielemann, 2010 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred alsa-seqThe type of sequencer handles.alsa-seq*Blocking behavior of the sequencer device.alsa-seqOperations may block.alsa-seq%Throw exceptions instead of blocking. alsa-seqRead/Write permissions for the sequencer device. This way we prevent the ALSA exception 22 "Invalid argument" when calling  event_output on an input-only sequencer.  Safe-Inferred A   Safe-Inferred i Safe-Inferredalsa-seqCreates a new handle and opens a connection to the kernel sequencer interface. After a client is created successfully, a  ClientStart event is broadcast to the announce port. May throw an exception. See also:  open_lconf, ,  get_seq_type,  get_seq_name,  set_blocking,  get_client_id.alsa-seqClose the sequencer. Closes the sequencer client and releases its resources. After a client is closed, an event with  ClientExit is broadcast to announce port. The connection between other clients are disconnected. Call this just before exiting your program. NOTE: we could put this in a finalizer for the handle?alsa-seq*This is the name that should be passed to  in most cases.alsa-seqGet identifier of a sequencer handle. It is the same identifier specified in the call to .alsa-seqChange the blocking mode of the given client. In block mode, the client falls into sleep when it fills the output pool with events, or when it demands events from an empty input pool. memory pool with full events. Clients that are sleeping due to loack of space in the output pool are woken when a certain amount of free space becomes available (see set_output_room).alsa-seq*Return the byte size of the output buffer.alsa-seqResize of the output buffer. This function clears all output events (see  drop_output).alsa-seq%Return the byte size of input buffer.alsa-seqResize the input buffer. This function clears all input events (see  drop_input). alsa-seqResize the output memory pool.!alsa-seqSpecify how much space should become free before waking clients that are blocked due to a lack of space in the output pool."alsa-seqReset the output pool.#alsa-seqResize the input memory pool.$alsa-seqReset the input pool.alsa-seqThe sequencer's "name". This is not a name that you make up for your own purposes; it has special significance to the ALSA library. Usually you need to pass  here or simply use .alsa-seqBlocking behavioralsa-seqHandle to the sequencer.alsa-seqBlocking behavioralsa-seqHandle to the sequencer.alsa-seqhandle to the sequenceralsa-seqThe sequencer's "name". This is not a name that you make up for your own purposes; it has special significance to the ALSA library. Usually you need to pass  here or simply use .alsa-seqBlocking behavioralsa-seq>Action on the sequencer, the result must be computed strictly.alsa-seqsequencer handlealsa-seqALSA identifier for the handlealsa-seqsequencer handlealsa-seq blocking modealsa-seqSequencer handle.alsa-seqSize of output buffer in bytes.alsa-seqSequencer handle.alsa-seqNew buffer size in bytes.alsa-seqSequencer handle.alsa-seqSize of input buffer in bytes.alsa-seqSequencer handle.alsa-seqNew byffer size in bytes. alsa-seqSequencer handle.alsa-seqNew size in bytes.!alsa-seqSequencer handle.alsa-seq Number of bytes need to wake up."alsa-seqSequencer handle.#alsa-seqSequencer handle.alsa-seqNew size in bytes.$alsa-seqSequencer handle. !"#$(c) Henning Thielemann, 2010 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred  !"#$   !"#$ Safe-Inferred Safe-Inferred;%('& Safe-Inferredb)alsa-seq!Convert number of nanoseconds to %*alsa-seq(Convert fractional number of seconds to % Time must be non-negative.,alsa-seq!Convert number of nanoseconds to %-alsa-seq(Convert fractional number of seconds to % %&'()*+,-. %&'(*+)-., Safe-Inferred/0124358769: Safe-Inferred /0123456789: 56789:234/01(c) Henning Thielemann, 2010 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred;alsa-seqThe type of queue identifiers. ;<(c) Henning Thielemann, 2010-2012 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred balsa-seq,Copy the content of one object into another.alsa-seq0Allocate an uninitialized object. (Not exported)Calsa-seq8Copy the content of an object to a newly created object.Balsa-seq Destinationalsa-seqSource=>?@ABCDEFGHIJADEBCFGIHJ=>?@(c) Henning Thielemann, 2010-2012 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred"alsa-seq0Allocate an uninitialized object. (Not exported)Ralsa-seq8Copy the content of an object to a newly created object.Walsa-seq,Copy the content of one object into another.Qalsa-seq Destinationalsa-seqSourcePQRSTUVWXYZ[\]PSTQRUVXZ\WY[] (c) Henning Thielemann, 2010-2012 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred#`alsa-seq,Copy the content of one object into another.aalsa-seq8Copy the content of an object to a newly created object.calsa-seq0Allocate an uninitialized object. (Not exported)`alsa-seq Destinationalsa-seqSource_`abcdef_b`aefcd (c) Henning Thielemann, 2011 (c) Iavor S. Diatchki, 2007BSD3Henning Thielemann provisional Safe-Inferred+/halsa-seq Port types.ialsa-seqPort capabilities.alsa-seqWait until new input is available or new output may be drainedalsa-seqA thread-compatible version of  Sound.ALSA.Sequencer.Event.input. This call is always blocking (unless there are already event in the input buffer) but will not block other threads. The sequencer, however, must be set non-blocking or this will not work as expected.alsa-seqA thread-compatible version of !Sound.ALSA.Sequencer.Event.output. This call is always blocking (unless there is space in the output buffer) but will not block other threads. The sequencer, however, must be set non-blocking or this will not work as expected.alsa-seqA thread-compatible version of &Sound.ALSA.Sequencer.Event.drainBuffer. This call is always blocking but will not block other threads. The sequencer, however, must be set non-blocking or this will not work as expected.,-./0011223456789:;<=>?@ABCDEFGHIJKLM,NOPQRSTUVWXYZ[\,N]^_`,abcde,fghijklmnopqrs,fghijtuvwxyz{o , f g h | } j ~ o b  , N                            !b!!!,!N!!!! , f g h i C        j o","f"g"C""""""""k"""h""i",hkC  #,#N#######b,fgkljopqrs,fgjo$,$f$g$h$i$C$$$$$$$$$$$$$$$$$$$$$$$$$$$$,hC     %,%N%%&&&&&&&&&&b&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,&N&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@       ,+*@7fgNXN                                !!!  ""N"""""""""""""""""""@""#$$$@$$N$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&''''''''h''i''''((g(((f((,(((j(((((((((}((|((((((((((('alsa-seq-0.6.0.9-5QQd39rc0cn3sNOhXZdMbkSound.ALSA.SequencerSound.ALSA.Sequencer.PollSound.ALSA.Sequencer.QuerySound.ALSA.Sequencer.RealTimeSound.ALSA.Sequencer.TimeSound.ALSA.Sequencer.Queue Sound.ALSA.Sequencer.Queue.Timer Sound.ALSA.Sequencer.Queue.Tempo!Sound.ALSA.Sequencer.Queue.StatusSound.ALSA.Sequencer.PortSound.ALSA.Sequencer.ClientSound.ALSA.Sequencer.Queue.Info Sound.ALSA.Sequencer.Client.Info%Sound.ALSA.Sequencer.Client.InfoMonadSound.ALSA.Sequencer.Address$Sound.ALSA.Sequencer.Subscribe.QuerySound.ALSA.Sequencer.SubscribeSound.ALSA.Sequencer.Port.Info#Sound.ALSA.Sequencer.Port.InfoMonadSound.ALSA.Sequencer.ConnectSound.ALSA.Sequencer.Event&Sound.ALSA.Sequencer.Event.RemoveMonad#Sound.ALSA.Sequencer.Event.AccessorSound.ALSA.Sequencer.ConcurrentSound.ALSA.Sequencer.Area&Sound.ALSA.Sequencer.Marshal.SequencerSound.ALSA.Sequencer.SequencerSound.ALSA.Sequencer.Utility%Sound.ALSA.Sequencer.Marshal.RealTime!Sound.ALSA.Sequencer.Marshal.Time"Sound.ALSA.Sequencer.Marshal.Queue!Sound.ALSA.Sequencer.Marshal.Port#Sound.ALSA.Sequencer.Marshal.Client'Sound.ALSA.Sequencer.Marshal.ClientInfo$Sound.ALSA.Sequencer.Marshal.Address%Sound.ALSA.Sequencer.Marshal.PortInfo$Sound.ALSA.Sequencer.Marshal.Connect"Sound.ALSA.Sequencer.Marshal.Event,Sound.ALSA.Sequencer.Client.Info.EventFilter!Sound.ALSA.Sequencer.Event.RemoveEventdropInputBufferdropOutputBufferT BlockModeBlockNonblock DuplexMode InputMode OutputMode AllowOutput AllowInputOpenMode descriptorsCinitnextfirstloop_loopopen openDefaultclosewith withDefault defaultNamegetName setBlockinggetOutputBufferSizesetOutputBufferSizegetInputBufferSizesetInputBufferSize setPoolOutputsetPoolOutputRoomresetPoolOutput setPoolInputresetPoolInputConssecsnano fromInteger fromDoublefromFractional toIntegertoDouble toFractionalStampTickRealModeAbsoluteRelativemodestampconsAbsconsReldirectTypeAlsa MidiClockMidiTickcopyclonegetsetgetQueuegetTypesetType getResolution setResolution$fCT $fShowType$fEqType $fOrdType $fEnumTypegetTemposetTempogetPPQsetPPQgetSkewsetSkew getSkewBase setSkewBase getTickTime getRealTime getEventsCap systemTimersystemAnnounceunknowncapReadcapWrite capSyncRead capSyncWrite capDuplex capSubsRead capSubsWrite capNoExportcaps typeSpecifictypeMidiGeneric typeMidiGM typeMidiGS typeMidiXG typeMidiMT32 typeMidiGM2 typeSynthtypeDirectSample typeSample typeHardware typeSoftwaretypeSynthesizertypePorttypeApplicationtypesUserKernelsystem subscribers broadcastsetName getLocked setLockedgetOwnersetOwnergetFlagssetFlagsgetBroadcastFiltersetBroadcastFiltergetErrorBouncesetErrorBounce getClient setClient getNumPorts getEventLostgetAny queryNextrunmodify $fFunctorT$fApplicativeT$fMonadTgetIdclientportReadWritemallocgetPortsetPortgetIndexsetIndex getNumSubs getExclusive getTimeUpdate getTimeRealgetRootgetAddrqueryqueryAllsetQueue setExclusive setTimeUpdate setTimeReal getSendergetDest setSendersetDest subscribePortunsubscribePortcreate subscribe unsubscribegetPortSpecifiedsetPortSpecifiedgetTimestampingsetTimestampinggetTimestampRealsetTimestampReal getCapability setCapabilitygetMidiChannelssetMidiChannels getMidiVoices setMidiVoicesgetSynthVoicessetSynthVoicesgetTimestampQueuesetTimestampQueuesetAddr getReadUse getWriteUse queryFirst queryLoop_ queryLoop createSimple deleteSimple withSimpledeletesourcedestDataNoteEvCtrlEvQueueEvAddrEvConnEvEmptyEvCustomEvExtEvPortSubscribedPortUnsubscribed ClientStart ClientExit ClientChange PortStartPortExit PortChangeSysExBounceUserVar0UserVar1UserVar2UserVar3UserVar4EchoOSSUser0User1User2User3User4User5User6User7User8User9 TuneRequestResetSensingNoneUnknown QueueStart QueueContinue QueueStopQueueSetPosTickQueueSetPosTime QueueTempo QueueClock QueueTick QueueSkew QueueSyncPosTempounTempo Controller PgmChange ChanPress PitchBend Control14 NonRegParamRegParamSongPosSongSelQFrameTimeSignKeySignANoteNoteOnNoteOffKeyPress highPrioritytagqueuetimebodyTagunTagCustomcustom0custom1custom2Ctrl ctrlChannel ctrlParam ctrlValueValueunValue Parameter unParameterNote noteChannelnoteNote noteVelocitynoteOffVelocity noteDurationDuration unDurationVelocity unVelocityPitchunPitchChannel unChannelalloc allocNamed withNamedfreecontrol filterClear filterAdd filterDel filterCheckgetInputsetInputputInput getOutput setOutput putOutput getChannel setChannel putChannel setEventType putEventTypegetTagsetTagputTagputDest getIgnoreOff setIgnoreOff putIgnoreOffgetTimesetTimeputTimereverse toSubscribersfromSubscribers createFromcreateTo deleteFromdeleteTowithFromwithToparse timeStampconnectsyncOutputQueueinput inputPendingoutput outputBuffer outputDirect outputPending extractOutput removeOutput drainOutput dropOutput dropInput simpleNotenormalVelocity offVelocitysimple forSourcePort forConnection customZerothreadWaitInputthreadWaitOutputthreadWaitDuplexbaseGHC.PtrPtrFunPtrGHC.ForeignPtr ForeignPtrForeign.C.StringCString withCAString peekCStringForeign.Marshal.UtilsForeign.Marshal.AllocallocaForeign.ForeignPtr.Imp newForeignPtrwithForeignPtrForeign.StorablepeekCore expOpenMode expBlockModesnd_seq_reset_pool_inputsnd_seq_set_client_pool_inputsnd_seq_reset_pool_output#snd_seq_set_client_pool_output_roomsnd_seq_set_client_pool_outputsnd_seq_set_input_buffer_sizesnd_seq_get_input_buffer_sizesnd_seq_set_output_buffer_sizesnd_seq_get_output_buffer_sizesnd_seq_nonblock snd_seq_name snd_seq_close snd_seq_open withOpenMode showsField showsRecordcheckResultQuery FlagContainerFlagmodeAccstampAcc stampTick stampRealmodeAbsmodeRelpoke peekStamp pokeStampPosition unPositionSkewskewBase skewValueimpexpgetResolution_ TypeOther TypeSpecificTypeMIDIGeneric TypeMIDIGM TypeMIDIGS TypeMIDIXG TypeMIDIMT32 TypeMIDIGM2 TypeSynthTypeDirectSample TypeSample TypeHardware TypeSoftwareTypeSynthesizerTypePortTypeApplicationCapOtherCapReadCapWrite CapSyncRead CapSyncWrite CapDuplex CapSubsRead CapSubsWrite CapNoExport$fEnumCapabilityFlagGHC.EnumEnumTypeFlagCapabilityFlag capFlagSet typeFlagSetimpType getQueue_ getEventLost_T_ queryNext_set_getAny_get_ getNumPorts_getType_ setClient_ getClient_setErrorBounce_getErrorBounce_setBroadcastFilter_getBroadcastFilter_setName_getName_copy_malloc_ queryInit queryPort_getTimeUpdate_ getExclusive_setRoot queryPort setTimeReal_ getWriteUse_getTimestampQueue_ghc-prim GHC.TypesTrue getReadUse_setAddr_getAddr_setTimestampQueue_setSynthVoices_getSynthVoices_setMidiVoices_getMidiVoices_setMidiChannels_getMidiChannels_setCapability_getCapability_setPort_getPort_setTimestampReal_getTimestampReal_setTimestamping_getTimestamping_setPortSpecified_getPortSpecified_expEvETypeunEType FlagValueFlagseventLengthFixedeventLengthVariableeventLengthVarUser priorityHighpriorityNormal pokeQueue withMaybepokeBodypokeData pokeHeaderpeekData expQueueEv maxEventTypepeekBody peekNoteEv peekCtrlEv peekQueueEv peekQueueExt peekAddrEv peekConnEv peekEmptyEv peekCustomEv peekExtEvEventTypeSubset EventTypeSetclearbitsizecheck modifyByteadd Condition getCondition setCondition getEventType setRealTime setTickTime condInput condOutputcondDestcondDestChannelcondTimeBefore condTimeAfter condTimeTick condEventType condIgnoreOff condTagMatch_applythreadWaitPolls