Package javax.sound.midi

Examples of javax.sound.midi.SysexMessage


    /**
     * test method setMessage(int, byte[], int)
     *
     */
    public void test_setMessage2() throws Exception {
        SysexMessage message = new SysexMessage();
        try {
            message.setMessage(34, new byte[] {1, 2}, 2);
            fail("InvalidMidiDataException expected");
        } catch (InvalidMidiDataException e) {}
       
        /*
         * it's all right
         */
        message.setMessage(240, new byte[] {1, 2}, 2);
        message.setMessage(247, new byte[] {34, -42}, 2);
       
        assertEquals(3, message.getLength());
        assertEquals(247, message.getStatus());
        assertEquals(3, message.getMessage().length);
        assertEquals(-9, message.getMessage()[0]);
        assertEquals(34, message.getMessage()[1]);
        assertEquals(-42, message.getMessage()[2]);
        assertEquals(2, message.getData().length);
        assertEquals(34, message.getData()[0]);
        assertEquals(-42, message.getData()[1]);
       
        message.setMessage(240, new byte[] {12, 47, -9}, 1);
        assertEquals(2, message.getLength());
        assertEquals(240, message.getStatus());
        assertEquals(2, message.getMessage().length);
        assertEquals(-16, message.getMessage()[0]);
        assertEquals(12, message.getMessage()[1]);
        assertEquals(1, message.getData().length);
        assertEquals(12, message.getData()[0]);
       
        message.setMessage(240, new byte[] {12, 4, 9}, 0);
        assertEquals(1, message.getLength());
        assertEquals(240, message.getStatus());
        assertEquals(1, message.getMessage().length);
        assertEquals(-16, message.getMessage()[0]);
        assertEquals(0, message.getData().length);
       
        try {
            message.setMessage(247, new byte[] {1, 2, 3}, 4);
            fail("IndexOutOfBoundsException expected");
        } catch (IndexOutOfBoundsException e) {}
       
        try {
            message.setMessage(247, new byte[] {1, 2, 3}, -1);
            fail("IndexOutOfBoundsException expected");
        } catch (IndexOutOfBoundsException e) {}
       
        message.setMessage(247, new byte[0], 0);
        assertEquals(1, message.getLength());
        assertEquals(247, message.getStatus());
        assertEquals(1, message.getMessage().length);
        assertEquals(-9, message.getMessage()[0]);
        assertEquals(0, message.getData().length);
       
        try {
            message.setMessage(247, null, 0);
            fail("NullPointerException expected");
        } catch (NullPointerException e) {}
    }
View Full Code Here


    /**
     * Test method clone() of class SysexMessage.
     */
    public void test_clone2() throws Exception {
        SysexMessage message = new SysexMessage();

        message.setMessage(240, new byte[] { 23, 45, -90 }, 2);

        assertTrue(message.clone() != message);
        assertEquals(message.clone().getClass(), message.getClass());
        SysexMessage tmessage;
        tmessage = (SysexMessage) message.clone();
        assertEquals(message.getLength(), tmessage.getLength());
        assertEquals(message.getMessage().length, tmessage.getMessage().length);
        assertEquals(message.getData().length, tmessage.getData().length);
        if (message.getData().length != 0) {
            for (int i = 0; i < message.getData().length; i++) {
                assertEquals(message.getData()[i], tmessage.getData()[i]);
            }
        }
        if (message.getMessage().length != 0) {
            for (int i = 0; i < message.getMessage().length; i++) {
                assertEquals(message.getMessage()[i], tmessage.getMessage()[i]);
            }
        }
    }
View Full Code Here

    public void test_clone3() throws Exception {
        byte[] bt = new byte[] {1, 2, 3, 4};
        SysexMessage1 message = new SysexMessage1(bt);
        assertTrue(message.clone() != message);
       
        SysexMessage tmessage;
        tmessage = (SysexMessage) message.clone();
        bt[0] = 34;
        bt[1] = 15;
        bt[2] = 89;
        bt[3] = 1;
        assertEquals(message.getLength(), tmessage.getLength());
        assertEquals(message.getMessage().length, tmessage.getMessage().length);
        assertEquals(message.getData().length, tmessage.getData().length);
        /*
         * 'real' SysexMessage change, but 'clone' not
         */
        //'real'
        assertEquals(15, message.getData()[0]);
        assertEquals(89, message.getData()[1]);
        assertEquals(1, message.getData()[2]);
        assertEquals(34, message.getMessage()[0]);
        assertEquals(15, message.getMessage()[1]);
        assertEquals(89, message.getMessage()[2]);
        assertEquals(1, message.getMessage()[3]);
        //'clone'
        assertEquals(2, tmessage.getData()[0]);
        assertEquals(3, tmessage.getData()[1]);
        assertEquals(4, tmessage.getData()[2]);
        assertEquals(1, tmessage.getMessage()[0]);
        assertEquals(2, tmessage.getMessage()[1]);
        assertEquals(3, tmessage.getMessage()[2]);
        assertEquals(4, tmessage.getMessage()[3]);
    }
View Full Code Here

      bytes[i] = getByte(i);
      cksum += bytes[i];
    }
    bytes[116] = (byte) (cksum & 0x7F); // CKSUM
    bytes[117] = (byte) 0xF7; // EOX
    SysexMessage sms = new SysexMessage();
    try {
      sms.setMessage(bytes, bytes.length);
    } catch (InvalidMidiDataException e) {
      return null;
    }
    return sms;
  }
View Full Code Here

  }

  public void emitFxChange(Object src, int fx, byte[] ah_al, int value) {
    assertValidFXNumber(fx);
    assertValidMidiValue(value, "sys ex value");
    SysexMessage sms = new SysexMessage();
    byte[] bytes = new byte[14];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    // OS Version 1.05 seems to transmit SNDP twice
    // works only this way (captured from RackAttack output)
    bytes[4] = RackAttack.FX_CHANGE; // CMD (SNDP)
    bytes[5] = RackAttack.EDIT_BUFFER; // CMD (SNDP)
    bytes[6] = (byte) (fx & 0xFF); // SNDN
    bytes[7] = ah_al[0]; // PAH
    bytes[8] = ah_al[1]; // PAL
    bytes[9] = (byte) (value & 0x7F); // SNDV
    bytes[10] = (byte) (bytes[4] + bytes[5] + bytes[6] + bytes[7]
        + bytes[8] + bytes[9] & 0x7F); // CKSUM
    // bytes[10]=(byte)RackAttack.TRUE_CKSUM; //CKSUM
    bytes[11] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[12] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[13] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
      JRackAttackFrame.getInstance().internalFxChange(
          new FXParameterEvent(src, fx, ah_al, value));
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
View Full Code Here

    }
  }

  public void emitGlobalChange(Object src, byte[] ah_al, int value) {
    assertValidMidiValue(value, "sys ex value");
    SysexMessage sms = new SysexMessage();
    byte[] bytes = new byte[12];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    bytes[4] = RackAttack.GLOBAL_CHANGE; // CMD (GLBP)
    bytes[5] = ah_al[0]; // PAH
    bytes[6] = ah_al[1]; // PAL
    bytes[7] = (byte) (value & 0xFF); // SNDV
    bytes[8] = (byte) (bytes[4] + bytes[5] + bytes[6] + bytes[7] & 0x7F); // CKSUM
    bytes[9] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[10] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[11] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
      // JRackAttackFrame.getInstance().internalParamChange(new
      // SoundParameterEvent(src, snd, ah_al, value));
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
View Full Code Here

  }

  public void emitProgramChange(Object src, int prg, byte[] ah_al, int value) {
    assertValidProgramNumber(prg);
    assertValidMidiValue(value, "sys ex value");
    SysexMessage sms = new SysexMessage();
    byte[] bytes = new byte[14];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    bytes[4] = RackAttack.PROGRAM_CHANGE; // CMD (SNDP)
    bytes[5] = RackAttack.EDIT_BUFFER; // CMD (SNDP)
    bytes[6] = (byte) (prg & 0xFF); // SNDN
    bytes[7] = ah_al[0]; // PAH
    bytes[8] = ah_al[1]; // PAL
    bytes[9] = (byte) (value & 0xFF); // SNDV
    bytes[10] = (byte) (bytes[4] + bytes[5] + bytes[6] + bytes[7]
        + bytes[8] + bytes[9] & 0x7F); // CKSUM
    // bytes[10]=(byte)RackAttack.TRUE_CKSUM; //CKSUM
    bytes[11] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[12] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[13] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
      JRackAttackFrame.getInstance().internalProgramChange(
          new ProgramParameterEvent(src, prg, ah_al, value));
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
View Full Code Here

  }

  public void emitPatternChange(Object src, int snd, byte[] ah_al, int value) {
    assertValidPatternNumber(snd);
    assertValidMidiValue(value, "sys ex value");
    SysexMessage sms = new SysexMessage();
    byte[] bytes = new byte[14];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    bytes[4] = RackAttack.PATTERN_CHANGE; // CMD (SNDP)
    bytes[5] = RackAttack.EDIT_BUFFER;
    bytes[6] = (byte) (snd & 0xFF); // SNDN
    bytes[7] = ah_al[0]; // PAH
    bytes[8] = ah_al[1]; // PAL
    bytes[9] = (byte) (value & 0xFF); // SNDV
    bytes[10] = (byte) (bytes[4] + bytes[5] + bytes[6] + bytes[7]
        + bytes[8] + bytes[9] & 0x7F); // CKSUM
    // bytes[10]=(byte)RackAttack.TRUE_CKSUM; //CKSUM
    bytes[11] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[12] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[13] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
      JRackAttackFrame.getInstance().internalPatternChange(
          new PatternParameterEvent(src, snd, ah_al, value));
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
View Full Code Here

     * log("<<<tracer>>>"); for(StackTraceElement
     * ste:Thread.currentThread().getStackTrace()) { log(ste.toString()); }
     */
    assertValidSoundNumber(snd);
    assertValidMidiValue(value, "sys ex value");
    SysexMessage sms = new SysexMessage();
    byte[] bytes = new byte[14];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    bytes[4] = RackAttack.SOUND_CHANGE; // CMD (SNDP)
    bytes[5] = RackAttack.EDIT_BUFFER; // CMD (SNDP)
    bytes[6] = (byte) (snd & 0xFF); // SNDN
    bytes[7] = ah_al[0]; // PAH
    bytes[8] = ah_al[1]; // PAL
    bytes[9] = (byte) (value & 0xFF); // SNDV
    bytes[10] = (byte) (bytes[4] + bytes[5] + bytes[6] + bytes[7]
        + bytes[8] + bytes[9] & 0x7F); // CKSUM
    // bytes[10]=(byte)RackAttack.TRUE_CKSUM; //CKSUM
    bytes[11] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[12] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[13] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
      JRackAttackFrame.getInstance().internalParamChange(
          new SoundParameterEvent(src, snd, ah_al, value));
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
View Full Code Here

    }
  }

  public void loadFXParameter(int fx, boolean buffer) {
    assertValidFXNumber(fx);
    SysexMessage sms = new SysexMessage();
    byte[] bytes = null;
    bytes = new byte[11];
    bytes[0] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[1] = RackAttack.WALDORF_MANUFACTURER_BYTE; // Waldorf (IDW)
    bytes[2] = RackAttack.RACK_ATTACK_MODEL_BYTE; // RackAttack (IDM)
    bytes[3] = 0x00; // Default ID (IDD)
    bytes[4] = RackAttack.FX_REQUEST; // CMD (SNDP)
    if (buffer) {
      bytes[5] = RackAttack.EDIT_BUFFER;
    } else {
      bytes[5] = RackAttack.ASSEMBLY_BUFFER;
    }
    bytes[6] = (byte) (fx & 0xFF); // SNDN
    bytes[7] = (byte) (bytes[4] + bytes[5] + bytes[6] & 0x7F); // CKSUM
    bytes[8] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX
    // a bit tricky but flushes SysEx-Buffers (in any sort of device)
    bytes[9] = (byte) SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
    bytes[10] = (byte) SysexMessage.SPECIAL_SYSTEM_EXCLUSIVE; // EOX

    try {
      sms.setMessage(bytes, bytes.length);
      enqueueEvent(sms);
    } catch (InvalidMidiDataException e) {
      log.error("error", e);
    } catch (MidiUnavailableException e) {
      log.error("error", e);
View Full Code Here

TOP

Related Classes of javax.sound.midi.SysexMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.