from Hacker News

Enhancing your MIDI devices with Perl

by oalders on 1/29/25, 2:59 PM with 40 comments

  • by PaulDavisThe1st on 2/2/25, 1:24 AM

    There's some confusion at the end of TFA about latency.

    What TFA refers to as latency is the time required to inject a MIDI event/message received by RtMIDI into the perl async object - basically inter-thread wakeup. You certainly expect that to be very, very fast - it's what context switching on any multitasking/multithreaded system relies. "Fractions of a millisecond" is in the right ballpark, though on some systems "Tens of microseconds" would be more appropriate as a description.

    What "latency" normally means in the context of MIDI or audio is the delay between the user generating a MIDI event somehow and when the audio corresponding to that MIDI event (e.g. a note) is audible. This is typically measured in relatively small numbers of milliseconds (e.g. 1-30).

    These are not really connected in any meaningful sense.

  • by grav on 2/2/25, 4:10 PM

    Couldn't get the code to run with Perl on Mac:

       $ plenv exec perl midi.pl
       Not enough arguments for main::pedal_notes at midi.pl line 107, near "$note)"
       BEGIN not safe after errors--compilation aborted at midi.pl line 150.
    
    I got something similar working in Supercollider though, which has a lot of tools for these sort of things, eg:

       MIDIIn.addFuncTo(\noteOn, ~myNoteOnHandler);
  • by randmeerkat on 2/2/25, 4:36 AM

    People still use Perl?