BSD-3-Clause licensed
Maintained by Paul H. Liu
This version can be pinned in stack with:PortMidi-,2258

Module documentation for

Depends on 1 package(full list with versions):
This is a Haskell module for PortMidi audio library, which supports
real-time MIDI input and output.


Please see CHANGELOG.txt.


The usual cabal installation steps apply, either:

runhaskell Setup.hs configure
runhaskell Setup.hs build
runhaskell Setup.hs install

or simply:

cabal install

This will install a PortMidi package that contains a Sound.PortMidi module.

Contact Information

You may send your bug report and feature request to the package
maintainer: Paul H. Liu <[email protected]>.

Last Update: Tue Jul 5 PDT 2016


commit 3b92597d84113969371612fb5c590b9f8c77d53c
Author: Paul H. Liu <[email protected]>
Date: Wed Jul 6 09:34:40 2016 -0700

Fix case sensitivity, and bump version to to correct version number

commit 2d5266dd325f2c248a9022679abfcebe9b317a95
Author: Paul H. Liu <[email protected]>
Date: Tue Jul 5 21:37:24 2016 -0700

Move to github, and bump version to

commit d7946afcfd7c3204c1ea999ed7fdb9c4e9ff20a7
Author: Paul Liu <[email protected]>
Date: Sun Apr 3 00:46:02 2016 -0700

PMEvent uses CLong as message type to better handle SysEx.

Ignore-this: 367f146403228813c914a23bfc2a1248
- This is a breaking change. Use encodeMsg or decodeMsg to work with PMMsg.


commit d5217416a5477f10a36727254425a572d18b7e4a
Author: Paul Liu <[email protected]>
Date: Sun Apr 3 00:40:29 2016 -0700

Use LANGUAGE pragma instead of OPTIONS_GHC

Ignore-this: c65fb70875497b8e6c46f76ee9105dbe


commit 358452adfcf91c2436752f9b95ebcc5d5124db97
Author: Paul Liu <[email protected]>
Date: Sun Apr 3 00:40:09 2016 -0700

Detect freebsd OS

Ignore-this: 9f819a332d364679acc2e005488f9375


commit c64496ded49633100864e8e0e192a9333ef8caa5
Author: Paul Liu <[email protected]>
Date: Mon Sep 21 22:17:09 2015 -0700

Add CHANGELOG.txt to package, and bump version to

Ignore-this: 465173236978f9557dbbc574b5d34a8f


commit fda70ecb49f85fd4dccc5daaecbdd9f96fe1651f
Author: Paul Liu <[email protected]>
Date: Mon Sep 21 11:29:09 2015 -0700

Update README and bump version to

Ignore-this: 98500cbf8d27a5068949cb458648500e


commit 044b0f47f3fc3bc6ade39c2972fb4b40c16c4e05
Author: Paul Liu <[email protected]>
Date: Mon Sep 21 11:17:37 2015 -0700

Bump version to 0.1.5

Ignore-this: 4fb2ae12ea9145bac0f0459ff3073169


commit a158c93a9d50c8bc56a3be908effd4020f9e7cc0
Author: Mark Lentczner <[email protected]>
Date: Mon Sep 21 11:16:04 2015 -0700

On some systems, Int is not the same size as CInt.

Ignore-this: 7bd6231264f14d66dd4c0156cc3266ba

- Added hidden module Sound.PortMidi.DeviceInfo, moving DeviceInfo and peekDeviceInfo there
- this allowed it to be a hsc2hs module, enabling peekDeviceInfo to use C generated structure offsets and sizes
- FFI declarations for C calls that take and return PmError and PmDeviceID have been changed to take and return CInt rather than Int
- Haskell functions interfacing with C calls have had fromIntegral calls added as needed
- toPMError convenience function added, which replaced many calls to toEnum
- FFI declaration for Pm_CountDevices added, countDevices became a Haskell function
- PMError's toEnum function produces a more useful error message when the "impossible" happens


commit cfae744f937cf4dfafd9e03bce9e0088a5b375f5
Author: Mark Lentczner <[email protected]>
Date: Mon Sep 21 11:15:00 2015 -0700

Add strictness annotation when necessary

Ignore-this: 9e5792f9ad04c797fcd51b244d7485fa


commit 4fb6f505b2f495bad6ddd1072ff41b51001d9b44
Author: Paul Liu <[email protected]>
Date: Wed May 6 00:33:40 2015 -0700

Update cabal file, and bump version to 0.1.4

Ignore-this: 8b1d17f401ebd925a4bc6ff7778b453d


commit a164e464065c84f3f4e958c53271f930c097f2d3
Author: Paul Liu <[email protected]>
Date: Wed May 6 00:33:10 2015 -0700

Use withCAString for writeSysEx

Ignore-this: 9499c201b5fb289cda27c090fdbf1541


commit c3ad563bbce9fbc25c8470865ded7b070d0d030e
Author: Paul Liu <[email protected]>
Date: Wed Sep 16 11:06:11 2009 -0700

remove conflicts in cabal file

Ignore-this: 3ef1f4b655182e4cc5eb861e8f2427f1


commit 6b0963d50576c0572155e421a4e6d02c8c649d8c
Author: Paul Liu <[email protected]>
Date: Wed Sep 16 11:01:59 2009 -0700

fix compilation problem on OS X

Ignore-this: a87d64d1c1a59bd161edecbde23932e3


commit 13c1d569f8566968bd0a214903d11c08a1101a2a
Author: Paul Liu <[email protected]>
Date: Thu Jul 30 14:32:59 2009 -0700

make cabal work for ghc 6.10.* on OS X


commit 8b7e2ea3c5ef6cb2b436e136964c2ee5814ffc02
Author: Paul Liu <[email protected]>
Date: Thu Sep 4 18:59:02 2008 -0700

PortMidi-0.1 initial release