gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

JPortMidiApi.java (5531B)


      1 package jportmidi;
      2 
      3 public class JPortMidiApi {
      4     public static class PortMidiStream {
      5         private long address;
      6     }
      7     public static class PmEvent {
      8         public int message;
      9         public int timestamp;
     10     }
     11 
     12     // PmError bindings
     13     public final int pmNoError = 0;
     14     public final int pmNoData = 0;
     15     public final int pmGotData = -1;
     16     public final int pmHostError = -10000;
     17     public final int pmInvalidDeviceId = -9999;
     18     public final int pmInsufficientMemory = -9998;
     19     public final int pmBufferTooSmall = -9997;
     20     public final int pmBufferOverflow = -9996;
     21     public final int pmBadPtr = -9995;
     22     public final int pmBadData = -9994;
     23     public final int pmInternalError = -9993;
     24     public final int pmBufferMaxSize = -9992;
     25     
     26     static public native int Pm_Initialize();
     27     static public native int Pm_Terminate();
     28     static public native int Pm_HasHostError(PortMidiStream stream);
     29     static public native String Pm_GetErrorText(int errnum);
     30     static public native String Pm_GetHostErrorText();
     31     final int pmNoDevice = -1;
     32     static public native int Pm_CountDevices();
     33     static public native int Pm_GetDefaultInputDeviceID();
     34     static public native int Pm_GetDefaultOutputDeviceID();
     35     static public native String Pm_GetDeviceInterf(int i);
     36     static public native String Pm_GetDeviceName(int i);
     37     static public native boolean Pm_GetDeviceInput(int i);
     38     static public native boolean Pm_GetDeviceOutput(int i);
     39     static public native int Pm_OpenInput(PortMidiStream stream,
     40                                           int inputDevice, 
     41                                           String inputDriverInfo, 
     42                                           int bufferSize);
     43     static public native int Pm_OpenOutput(PortMidiStream stream,
     44                                            int outputDevice, 
     45                                            String outnputDriverInfo, 
     46                                            int bufferSize,
     47                                            int latency);
     48     final static public int PM_FILT_ACTIVE = (1 << 0x0E);
     49     final static public int PM_FILT_SYSEX = (1 << 0x00);
     50     final static public int PM_FILT_CLOCK = (1 << 0x08);
     51     final static public int PM_FILT_PLAY = 
     52             (1 << 0x0A) | (1 << 0x0C) | (1 << 0x0B);
     53     final static public int PM_FILT_TICK = (1 << 0x09);
     54     final static public int PM_FILT_FD = (1 << 0x0D);
     55     final static public int PM_FILT_UNDEFINED = PM_FILT_FD;
     56     final static public int PM_FILT_RESET = (1 << 0x0F);
     57     final static public int PM_FILT_REALTIME =
     58             PM_FILT_ACTIVE | PM_FILT_SYSEX | PM_FILT_CLOCK;
     59     final static public int PM_FILT_NOTE = (1 << 0x19) | (1 << 0x18);
     60     final static public int PM_FILT_CHANNEL_AFTERTOUCH = (1 << 0x1D);
     61     final static public int PM_FILT_POLY_AFTERTOUCH = (1 << 0x1A);
     62     final static public int PM_FILT_AFTERTOUCH = 
     63             (PM_FILT_CHANNEL_AFTERTOUCH | PM_FILT_POLY_AFTERTOUCH);
     64     final static public int PM_FILT_PROGRAM = (1 << 0x1C);
     65     final static public int PM_FILT_CONTROL = (1 << 0x1B);
     66     final static public int PM_FILT_PITCHBEND = (1 << 0x1E);
     67     final static public int PM_FILT_MTC = (1 << 0x01);
     68     final static public int PM_FILT_SONG_POSITION = (1 << 0x02);
     69     final static public int PM_FILT_SONG_SELECT = (1 << 0x03);
     70     final static public int PM_FILT_TUNE = (1 << 0x06);
     71     final static public int PM_FILT_SYSTEMCOMMON =
     72         (PM_FILT_MTC | PM_FILT_SONG_POSITION | 
     73          PM_FILT_SONG_SELECT | PM_FILT_TUNE);
     74     static public native int Pm_SetFilter(PortMidiStream stream, int filters);
     75     static public int Pm_Channel(int channel) { return 1 << channel; }
     76     final static public native int Pm_SetChannelMask(PortMidiStream stream, 
     77                                                      int mask);
     78     final static public native int Pm_Abort(PortMidiStream stream);
     79     final static public native int Pm_Close(PortMidiStream stream);
     80     static public int Pm_Message(int status, int data1, int data2) {
     81         return (((data2 << 16) & 0xFF0000) |
     82                 ((data1 << 8) & 0xFF00) |
     83                 (status & 0xFF));
     84     }
     85     static public int Pm_MessageStatus(int msg) {
     86         return msg & 0xFF;
     87     }
     88     static public int Pm_MessageData1(int msg) {
     89         return (msg >> 8) & 0xFF;
     90     }
     91     static public int Pm_MessageData2(int msg) {
     92         return (msg >> 16) & 0xFF;
     93     }
     94     // only supports reading one buffer at a time
     95     static public native int Pm_Read(PortMidiStream stream, PmEvent buffer);
     96     static public native int Pm_Poll(PortMidiStream stream);
     97     // only supports writing one buffer at a time
     98     static public native int Pm_Write(PortMidiStream stream, PmEvent buffer);
     99     static public native int Pm_WriteShort(PortMidiStream stream, 
    100                                            int when, int msg);
    101     static public native int Pm_WriteSysEx(PortMidiStream stream, 
    102                                            int when, byte msg[]);
    103     
    104     public final int ptNoError = 0;
    105     public final int ptAlreadyStarted = -10000;
    106     public final int ptAlreadyStopped = -9999;
    107     public final int PtInsufficientMemory = -9998;
    108     static public native int Pt_TimeStart(int resolution);
    109     static public native int Pt_TimeStop();
    110     static public native int Pt_Time();
    111     static public native boolean Pt_TimeStarted();
    112     static {
    113         System.out.println("Loading pmjni");
    114         System.loadLibrary("pmjni");
    115         System.out.println("done loading pmjni");
    116     }
    117 }