Skip to content

Latest commit

 

History

History
93 lines (52 loc) · 2.49 KB

Windows_Cygwin.md

File metadata and controls

93 lines (52 loc) · 2.49 KB

Welcome to the portmidi-sml wiki!

Information for compiling PolyML on Windows with Cygwin.

download setup-x86_64.exe from https://cygwin.com/install.html

run it

select View >Full

  • Install the packages cygwin-devel, git, make, gcc-core, gcc-g++ and rlwrap
    WARNING : don't choose mingwin64 ; this compiler don't work well for compiling PolyML on cygwin

  • download the PolyML latest release :
    WARNING : don't clone the repository it is not the stable version and don't compile on windows.
    here I use v5.9.tar.gz

untar it using the cywin64 Terminal

$ tar xvf polyml-5.9.tar.gz

then

$ cd polyml-5.9
$ ./configure
$ make
$ make compiler
$ make install

and verify

  • $ poly

Poly/ML 5.9 Release

> "Hello!";

val it = "Hello!": string

> control-D quit polyML

note : you can use rlwrap for line editing and history

  • $ rlwrap poly

then you are in business.

information for portmidi 🥇

$ git clone https://github.com/jh-midi/portmidi-sml.git
$ cd portmidi-sml

before using portmidi you have to set portmidi.dll executable

$ chmod +777 libs/portmidi.dll

And then you can compile your transformer :

`$ polyc -o toChan1 modifier.sml

And run it :

$ ./toChan1.exe

Microsoft MIDI Mapper id=0 input=false output=true opened=false interf=MMSystem
TouchOSC Bridge id=1 input=true output=false opened=false interf=MMSystem
loopMIDI Port id=2 input=true output=false opened=false interf=MMSystem
ATM SQ id=3 input=true output=false opened=false interf=MMSystem
MIDIIN2 (ATM SQ) id=4 input=true output=false opened=false interf=MMSystem
Microsoft GS Wavetable Synth id=5 input=false output=true opened=false interf=MMSystem
TouchOSC Bridge id=6 input=false output=true opened=false interf=MMSystem
loopMIDI Port id=7 input=false output=true opened=false interf=MMSystem\

usage : ./toChan1 <midi-input-name> <midi-output-name> [<velocity>:0=same as input] [<scan-latency-microseconds>:2000>]

playing GS wavetable for test

  • with big latency :
    $ ./toChan1 "ATM SQ" "Microsoft GS Wavetable Synth"

  • with small latency=2 fixed velocity=100 :
    $ ./toChan1 "ATM SQ" "Microsoft GS Wavetable Synth" 100 2

with loopMidi you can use Asio in your Daw then latency is ok

$ ./toChan1 "ATM SQ" "loopMIDI Port"