- portmidi for PolyML with virtual ports, all Portmidi functionalities are at your disposal except callback function
- You can use Portmidi without worry of pointers : just use device id or name
- please read tutor_eng.sml and execute lines step by step for getting started
- use modifier.sml to transform MIDI message from input to output (Presonus Atom SQ -only one channel- )
- create virtual "my-diato" midi ports for use with Ardour, Tracktion MuseScsore ...
- and use diato keyboard for entering, recording your music on Linux.
- these are examples for using read1 and write1 added to lib interface for realtime input-output
- portmidi libs are provided for 64bits : tested on Debian Linux, Mac Catalina and Windows 10
- compiled from https://github.com/PortMidi/portmidi
- read the portmidi doc at https://portmidi.github.io/portmidi_docs/
- download polyML https://codeload.github.com/polyml/polyml/tar.gz/refs/tags/v5.9
- go to terminal
- untar gz file with : tar xvf polyml-5.9.tar.gz
- cd polyml-5.9/
- ./configure
- make
- sudo make install
- you are ready for portmidi-sml
- if you don't know sml language read the book https://www.cl.cam.ac.uk/~lp15/MLbook/
- Book with solutions of exercices.
- I provide already compiled portmidi dynamic library for facility, but if this don't work for you, you should compile portmidi yourself and modify the function "getLibMidi()" in the file PortmidiFFI.sml
- download https://github.com/jh-midi/portmidi-sml/archive/refs/heads/main.zip
- copy this file to your home directory
- unzip the file : unzip main.zip
- cd portmidi-sml-main
- polyc virt.sml -o virtual-portmidi (compile the program )
- now you can create virtual midi port : ./virtual-portmidi diato-port
- you can create your in-out named ports : ./virtual-portmidi my-midi-port
- and you can use it with my diato program (refresh your chromium navigator) or another at your convenance
- NB you can't create virtual midi port on windows
- but you can use this library for filtering midi event create music,send sysex etc ...
- https://www.tobias-erichsen.de/software/loopmidi.html or another driver work well with windows
- Click Windows Cygwin : this is help for installing PolyML on Windows allowing compiling.
It's the same as for Linux, but I was only able to compile for the Intel version (Catalina). Just modify PortmidiFFI.sml to add what is needed for M1 and M2.