!kZp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe jackZType argument for Jack ports where the type of samples transported by the port is unknown.jackrepresents absolute frame timejack#Type argument for Jack output portsjack"Type argument for Jack input portsx      Safe" !"#$%&'()*+,-./01./10,-)*+'($%&"# !None )Ijack Represents a raw JACK MIDI eventjack>Sample index at which event is valid (relative to cycle start)jack Raw MIDI dataKjackdConverts high level MIDI Event transformation functions into raw MIDI Event transformation functionsKjack transforms Sound.MIDI.File.Eventjack#transforms Sound.JACK.MIDI.RawEventIJ !"#$K%Safe H&jack8Free an array of NULL terminated port names returned by  get_ports and port_get_all_connections.&NoneKNjackJack Port TypeOjackHandles of Jack clients LM'N(OP)*+,-.None =QjackZA collection of mixed types of ports. It is mainly needed for freeing all allocated ports.Rjack[Type argument for Jack ports where we do not know whether it is an input or an output port.TjackCreate a port connect callback /.Ujack$Create a port registration callback /.Vjack&Create a client registration callback /._jackConstructs a new Jack client.`jack#Creates a new JACK client with the default serverbjack[Run a block of code with a newly allocated client. Do not use the client outside the block.djack Better use f$ that also handles freeing the port.fjackCreates a new port for the given client and delete it after usage. The port manages audio or MIDI data in input or output direction depending on the Port type. Usually the required port type can be inferred from following actions that use that port./Do not use the port outside the enclosed block.gjackactivates the given Jack clientjjackDcloses the given Jack client without causing any trouble (hopefully)kjack(Returns the names of all existing ports.ujackThe callback function must respond in real-time, i.e. in a bounded amout of time. That is, strictly spoken it must not wait for anything, e.g. it must not wait for locks and it must not allocate memory. In Haskell this is practically impossible because even simplest operations allocate memory. If the callback needs to much time, JACK will shut down your client. The best you can do is to hope that nothing evil happens.jack%Set the client registration callback.jack#Set the port registration callback.jackSet the port connect callback.jack)Return the full port name, including the  client_name: prefix.jack.Return the short port name, not including the  client_name: prefix.jack'Return the port aliases, including the  client_name: prefixes.jThis is especially useful for external midi devices, as the alias names are usually more descriptive than system:midi_capture_1.jack7Return all the port names a given port is connected to.<This function must not be called from a JACK event callback._jackname of the JACK serverjackname of the client`jackname of the clientbjackname of the JACK serverjackname of the clientcjackname of the clientdjack Jack clientjackname of the input portfjack Jack clientjackname of the input portkjackthe Jack clientjackthe names as a list of stringsf LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fOP_`abcjghiNSRLMdefQnolm^tu ]vw \xy [z{Z|}Y~XW V UTkpqrsNoneX jack'Smart constructor for a raw MIDI event.jackvCreates an input and an output, and transforms all raw input events into raw output events using the given functionjacknCreates an input and an output, and transforms all input events into output events using the given functionjack(sets the process loop of the JACK Clientjack7reads all available MIDI Events on the given PortBufferjackcwrites a MIDI event to the PortBuffer of a MIDI output or throws eNOBUFS if JackMIDI.buffer is fulljack{Clears an output buffer and writes a sequence of events to it. That is, you must only call this function once per callback.jackReads midi events from an input buffer and converts them to a high-level representation. Messages are simply ignored if they cannot be parsed.jack{Clears an output buffer and writes a sequence of events to it. That is, you must only call this function once per callback.jack Jack clientjackname of the input portjack>Sample index at which event is valid (relative to cycle start)jack Raw MIDI datajack%transforms raw input to output eventsjack!transforms input to output eventsjack/the JACK Client, whose process loop will be setjackwhere to get events fromjack!transforms input to output eventsjackwhere to put eventsjackFexception causing JACK to remove that client from the process() graph.jackthe PortBuffer to read fromjack-the PortBuffer of the MIDI output to write tojackthe RawEvent to writeIJKIKJNoneZ$jack Jack clientjackname of the input port 0       !"#$%%&'())*+,--./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~OgvOg PP-OOQQinmhLM     jack-0.7.2.2-inplace Sound.JACKSound.JACK.ExceptionSound.JACK.MIDISound.JACK.AudioSound.JACK.FFISound.JACK.FFI.MIDISound.JACK.FFIFreeSound.JACK.Private LatencyRangeLatencyLatencyCallbackModeXRun GraphOrder PortConnect PortRename UnknownTypePortIdClientRegistration SampleRate BufferSize FreewheelProcessNFramesOutputInputnframesIndices nframesBoundsjackCaptureLatencyjackPlaybackLatencyErrnoNoErrno ThrowsErrnoerrnoPortMismatchKind TypeMismatchDirectionMismatch PortMismatchNoPortMismatchThrowsPortMismatch portMismatch PortRegisterNoPortRegisterThrowsPortRegister portRegisterStatusNoStatus ThrowsStatusstatusToStringtoStringAlltoStringWithHead$fToStringErrno $fToStringT$fThrowsStatusStatus$fToStringStatus$fThrowsPortRegisterStatus $fThrowsPortRegisterPortRegister$fThrowsStatusPortRegister$fToStringPortRegister $fThrowsPortRegisterPortMismatch$fThrowsStatusPortMismatch$fToStringPortMismatch $fThrowsPortMismatchPortMismatch $fThrowsPortMismatchPortRegister$fThrowsPortMismatchStatus$fThrowsErrnoErrno$fThrowsErrnoPortMismatch$fThrowsErrnoPortRegister$fThrowsErrnoStatus$fThrowsErrnoErrno0$fThrowsPortMismatchErrno$fThrowsPortRegisterErrno$fThrowsStatusErrno$fToStringErrno0RawEventBuffertoRawEventFunctionPortPortTypeClientPortSetUnknownDirection DirectionmakePortConnectmakePortRegistrationmakeClientRegistration makeLatencymakeXRunmakeGraphOrdermakePortRenamemakeSampleRatemakeBufferSize makeFreewheel makeProcess newClientnewClientDefault disposeClient withClientwithClientDefaultnewPort disposePortwithPortactivate deactivatewithActivation clientClosegetPortsconnect disconnect setOfPort setOfPortsquitwaitForBreakAndClose waitForBreakhandleExceptions setProcess withProcess setFreewheel withFreewheel setBufferSizewithBufferSize setSampleRatewithSampleRate setPortRenamewithPortRename setGraphOrderwithGraphOrdersetXRunwithXRun setLatency withLatencygetLatencyRangesetLatencyRangerecomputeTotalLatencies getBufferSize getSampleRate lastFrameTimesetClientRegistrationwithClientRegistrationsetPortRegistrationwithPortRegistrationsetPortConnectwithPortConnectportById portByNameportName portShortName portAliasesportGetAllConnections narrowPortnarrowPortTypenarrowPortDirectionswitchUnknownTypePortswitchUnknownDirectionPort$fDirectionOutput$fDirectionInput$fMonoidPortSet$fSemigroupPortSetrawEvent rawEventTimerawEventBuffermainRawmain readRawEvents getBuffer clearBuffer writeRawEventreadRawEventsFromPortwriteRawEventsToPortreadEventsFromPort writeEventwriteEventsToPortSample getBufferPtrgetBufferArraymainMonowithProcessMono mainStereowithProcessStereoPortRegistrationdeconsPortTypePortNamedeconsPortNamePortFlagPortIsTerminalPortCanMonitorPortIsPhysical PortIsOutput PortIsInput PortFlagSet VersionError ShmFailure InitFailure LoadFailure NoSuchClient ServerError ServerFailed ServerStarted NameNotUnique InvalidOptionFailure StatusSet OpenOptions ServerName UseExactName NoStartServer OpenOptionSetport_unregister client_closeget_buffer_sizeport_get_bufferlast_frame_timerecompute_total_latenciesport_set_latency_rangeport_get_latency_rangeport_get_all_connections get_ports port_type port_flagsport_short_nameport_get_aliasesport_name_size port_name port_by_name port_by_idset_latency_callbackset_xrun_callbackset_graph_order_callbackset_port_connect_callbackset_port_rename_callbackset_port_registration_callback set_client_registration_callbackset_sample_rate_callbackset_buffer_size_callbackset_freewheel_callbackset_process_callback port_registerget_sample_rate client_new client_openwordNullOptionwordNoStartServerwordUseExactNamewordServerName wordFailurewordInvalidOptionwordNameNotUniquewordServerStartedwordServerFailedwordServerErrorwordNoSuchClientwordLoadFailurewordInitFailurewordShmFailurewordVersionError portIsInput portIsOutput nframesToWord_dummytimebuffer EventBuffer event_write event_reserve clear_buffer event_getget_event_countwithByteStringPtrfreePortNameArrayPortTypeStringswitchPortTypeportTypeString withCStringallocabracketbracket_ liftErrnobaseGHC.PtrFunPtr