Package javax.sound.midi

Examples of javax.sound.midi.MidiEvent


            new byte[] {
                (byte)  ((l / 0x10000) & 0xff),
                (byte) (((l % 0x10000) / 0x100) & 0xff),
                (byte)  ((l % 0x100)   & 0xff) },
            3);
        return new MidiEvent(metaMessage, currentTicks[0]);
    }
View Full Code Here


          ShortMessage shortMessage = new ShortMessage();
          shortMessage.setMessage(ShortMessage.CONTROL_CHANGE,
                                    midiChannel,
                            7// ���C���{�����[�� MSB
                            volume);
          events[0] = new MidiEvent(shortMessage, context.getCurrentTick());
            return events;
        }
    }
View Full Code Here

        metaMessage.setMessage(0x7f,    // �V�[�P���T�[�ŗL���^�C�x���g
                               data,
                               data.length);

        return new MidiEvent[] {
            new MidiEvent(metaMessage, context.getCurrentTick())
        };
    }
View Full Code Here

            shortMessage.setMessage(ShortMessage.PROGRAM_CHANGE,
                                    midiChannel,
                                    program,
                                    0);
            return new MidiEvent[] {
                new MidiEvent(shortMessage, context.getCurrentTick())
            };
        }
    }
View Full Code Here

        shortMessage.setMessage(ShortMessage.CONTROL_CHANGE,
                                channel,
                                11,    // �G�N�X�v���b�V���� MSB
                                getVolume() < 0 ? getVolume() * 2 + 128 :
                                                  getVolume() * 2);
        events[0] = new MidiEvent(shortMessage, context.getCurrent());
        return events;
    }
View Full Code Here

        MfiContext mfiContext = new MfiContext();
        mfiContext.setType(fileType);
        mfiContext.setMidiSequence(midiSequence);
           
        for (int i = 0; i < mfiContext.getSequenceSize(); i++) {
            MidiEvent midiEvent = mfiContext.getMidiEvent(i);
           
            MidiMessage midiMessage = midiEvent.getMessage();
           
            Track[] mfiTracks = mfiSequence.getTracks();
            int maxTracks = mfiTracks.length;
           
            String key = null;
            int mfiTrackNumber = 0;
           
            //
            if (midiMessage instanceof ShortMessage) {
               
                ShortMessage shortMessage = (ShortMessage) midiMessage;
                int channel = shortMessage.getChannel();
                int command = shortMessage.getCommand();
                int data1 = shortMessage.getData1();
//              int data2 = shortMessage.getData2();

                mfiTrackNumber = mfiContext.retrieveMfiTrack(channel);
               
                if (!mfiContext.isTrackUsed(mfiTrackNumber) &&
                        maxTracks <= mfiTrackNumber) {
                   
                    for (int j = maxTracks; j <= mfiTrackNumber; j++) {
                        mfiSequence.createTrack();
Debug.println(">>>> create MFi track: " + j);
                        mfiTracks = mfiSequence.getTracks();
                        maxTracks = mfiTracks.length;
                    }
                }
                mfiContext.setTrackUsed(mfiTrackNumber, true);
                // 0xc_ program change
                // 0xb_ 1: modulation depth
                // 0xb_ 7: volume
                // 0xb0 100, 101, 6: rpn H, rpn L, data entry
                // 0xe_ pitch bend
                // 0xb0 10: panpot
               
                if ((command & 0xf0) == 0xb0) {
                    key = "midi.short." + (command & 0xf0) + "." + data1;
                } else {
                    key = "midi.short." + (command & 0xf0);
                }
            } else if (midiMessage instanceof SysexMessage) {

                SysexMessage sysexMessage = (SysexMessage) midiMessage;
                byte[] data = sysexMessage.getData();
               
                // GM system on
                // master volume
                if (maxTracks == 0) {
                    mfiSequence.createTrack();
Debug.println("create MFi track: 0");
                    mfiTracks = mfiSequence.getTracks();
                    maxTracks = mfiTracks.length;
                }
                mfiContext.setTrackUsed(0, true);
               
                mfiTrackNumber = 0;
                key = "midi.sysex." + data[0];
            } else if (midiMessage instanceof MetaMessage) {
                // 1 -> ProtInfo
                // 2 -> CopyInfo
                // 3 -> TitlInfo
                // 0x51 tempo
               
                MetaMessage metaMessage = (MetaMessage) midiMessage;
                int meta = metaMessage.getType();
//                byte[] data = metaMessage.getData();

                if (maxTracks == 0) {
                    mfiSequence.createTrack();
Debug.println("create MFi track: 0");
                    mfiTracks = mfiSequence.getTracks();
                    maxTracks = mfiTracks.length;
                }
                mfiContext.setTrackUsed(0, true);

                mfiTrackNumber = 0;
                key = "midi.meta." + meta;
            }


            // convert
            MfiConvertible converter = MfiConvertibleFactory.getConverter(key);
            if (converter instanceof EndOfTrackMessage) { // TODO
                // converted
                MfiEvent[] mfiEvents = converter.getMfiEvents(midiEvent, mfiContext);
                for (int t = 0; t < mfiEvents.length && t < maxTracks; t++) {
                    if (mfiEvents[t] != null) {
                        if (!mfiContext.isEofSet(t)) {

                            MfiEvent[] nops = mfiContext.getIntervalMfiEvents(t);
                            if (nops != null) {
                                for (int j = 0; j < nops.length; j++) {
                                    mfiTracks[t].add(nops[j]);
                                }
                            }
                           
                            mfiTracks[t].add(mfiEvents[t]);
                            mfiContext.setEofSet(t, true);
                        } else {
//Debug.println("EOF already set[" +  t + "]");
                        }
                    } else {
Debug.println("message is null[" +  mfiTracks[t].size() + "]: " + midiMessage);
                    }
                }
            } else if (converter != null) {
                // interval
                MfiEvent[] mfiEvents = mfiContext.getIntervalMfiEvents(mfiTrackNumber);
                if (mfiEvents != null) {
                    for (int j = 0; j < mfiEvents.length; j++) {
if (mfiEvents[j] == null) {
Debug.println(Level.WARNING, "NOP is null[" +  mfiTracks[mfiTrackNumber].size() + "]: " + MidiUtil.paramString(midiMessage));
}
                    addEventToTrack(mfiContext, midiEvent.getTick(), mfiTracks[mfiTrackNumber], mfiTrackNumber, mfiEvents[j]);
                    }
                }

                // converted
                mfiEvents = converter.getMfiEvents(midiEvent, mfiContext);
                if (mfiEvents != null) {
                    for (int j = 0; j < mfiEvents.length; j++) {
if (mfiEvents[j] == null) {
Debug.println(Level.WARNING, "event is null[" +  mfiTracks[mfiTrackNumber].size() + ", " + mfiEvents.length + "]: " + converter.getClass() + ", " + MidiUtil.paramString(midiMessage));
}
                addEventToTrack(mfiContext, midiEvent.getTick(), mfiTracks[mfiTrackNumber], mfiTrackNumber, mfiEvents[j]);
                    }
                }
            } else {
//Debug.println("not convertible: " + key);
            }
View Full Code Here

        metaMessage.setMessage(0x7f,    // �V�[�P���T�[�ŗL���^�C�x���g
                               data,
                               data.length);

        return new MidiEvent[] {
            new MidiEvent(metaMessage, context.getCurrent())
        };
    }
View Full Code Here

            new byte[] { (byte)  ((l / 0x10000) & 0xff),
                         (byte) (((l % 0x10000) / 0x100) & 0xff),
                         (byte)  ((l % 0x100)   & 0xff)},
            3);
        return new MidiEvent[] {
            new MidiEvent(metaMessage, context.getCurrent())
        };
    }
View Full Code Here

            ((ShortMessage) midiEvent.getMessage()).getCommand() == ShortMessage.PROGRAM_CHANGE &&
            midiTrack.size() > 1 &&
            midiTrack.get(midiTrack.size() - 2).getMessage() instanceof ShortMessage &&
            (((ShortMessage) midiTrack.get(midiTrack.size() - 2).getMessage()).getCommand() == ShortMessage.NOTE_ON ||
             ((ShortMessage) midiTrack.get(midiTrack.size() - 2).getMessage()).getCommand() == ShortMessage.NOTE_OFF)) {
            MidiEvent removedMidiEvent = midiTrack.get(midiTrack.size() - 2);
            midiTrack.remove(removedMidiEvent);
            midiTrack.add(midiEvent);
            midiTrack.add(removedMidiEvent);
Debug.println("���������� : " + MidiUtil.paramString(midiEvent.getMessage()) + ", " + MidiUtil.paramString(removedMidiEvent.getMessage()));
        } else {
            midiTrack.add(midiEvent);
        }
    }
View Full Code Here

        metaMessage.setMessage(0x7f,    // �V�[�P���T�[�ŗL���^�C�x���g
                               data,
                               data.length);

        return new MidiEvent[] {
            new MidiEvent(metaMessage, context.getCurrent())
        };
    }
View Full Code Here

TOP

Related Classes of javax.sound.midi.MidiEvent

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.