Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while(byteStream.available() > 0) {
- MainWindow.getTrackProgressBar().setValue((int) Math.round(100 * ((double) (progress) / (double) totalStreamSize)));
- //System.out.println(byteStream.available());
- long time = getVaribaleLengthValue(byteStream);
- byteStream.mark(1);
- if(time < 0) {
- event = new EndOfTrackEvent(total);
- tickLength = t.addEvent(event);
- continue;
- }
- total += time;
- int meta = byteStream.read() & 0xFF;
- //if not large keyboard
- if(meta >= 128) {
- lastStatus = meta;
- }
- if(meta == 0xFF) {
- int type = byteStream.read() & 0xFF;
- int length = (int) getVaribaleLengthValue(byteStream);
- data = new byte[length];
- if(length > 0) {
- byteStream.read(data);
- }
- if(type == TEMPO) {
- int ppq = bytesToInt(Arrays.copyOfRange(data, 0, 3));
- if(ppq <= 0) {
- event = null;
- //t.addEvent(event);
- continue;
- }
- event = new TempoEvent(total, 60000000.0F / ppq);
- tickLength = t.addEvent(event);
- continue;
- }
- /*
- if(type == TIME_SIGNATURE) {
- event = new TimeSignatureEvent(total, data[0], data[1], data[2], data[3], time);
- t.addEvent(event);
- continue;
- }
- */
- if(type == END_OF_TRACK) {
- event = new EndOfTrackEvent(total);
- tickLength = t.addEvent(event);
- continue;
- }
- } else if(meta >= 0x80 && meta <= 0xFE) {
- if(meta >= 0xF4 && meta <= 0xFF) {
- event = null;
- //t.addEvent(event);
- continue;
- }
- int value1 = byteStream.read() & 0xFF;
- int value2 = 0;
- /*
- if(meta >= 0xE0 && meta <= 0xEF) { //pitch bend
- //System.out.println("pitch bend in loading");
- event = new PitchBend(total, value1, meta - 0xE0);
- tickLength = t.addEvent(event);
- continue;
- }
- */
- if((!(meta >= 0xC0 && meta <= 0xCF)) && meta != 0xF3 && meta != 0xF1) {
- value2 = byteStream.read(); // & 0xCF
- } else {
- if (meta >= 0xC0 && meta <= 0xCF) {
- //System.out.println("Value 1: " + value1 + ", Tick: " + total + ", Channel: " + (meta - 0xC0));
- event = new ProgramChangeEvent(total, value1, meta - 0xC0);
- tickLength = t.addEvent(event);
- continue;
- }
- }
- if(meta == 0x90 || meta == 0x91 || meta == 0x92 || meta == 0x93 || meta == 0x94 || meta == 0x95 || meta == 0x96 || meta == 0x97 || meta == 0x98 || meta == 0x99 || meta == 0x9A || meta == 0x9B || meta == 0x9C || meta == 0x9D || meta == 0x9E || meta == 0x9F){
- if(value1 > 128) {
- keyRange = 256;
- }
- event = new NoteOn(total, value1 & 0xFF, value2, meta - 0x90);
- tickLength = t.addEvent(event);
- continue;
- } else if(meta == 0x80 || meta == 0x81 || meta == 0x82 || meta == 0x83 || meta == 0x84 || meta == 0x85 || meta == 0x86 || meta == 0x87 || meta == 0x88 || meta == 0x89 || meta == 0x8A || meta == 0x8B || meta == 0x8C || meta == 0x8D || meta == 0x8E || meta == 0x8F){
- event = new NoteOff(total, value1 & 0xFF, value2, meta - 0x80);
- tickLength = t.addEvent(event);
- continue;
- } else {
- event = null;
- //t.addEvent(event);
- continue;
- }
- /*
- if(meta == 0x90 || meta == 0x91 || meta == 0x92 || meta == 0x93 || meta == 0x94 || meta == 0x95 || meta == 0x96 || meta == 0x97 || meta == 0x98 || meta == 0x99 || meta == 0x9A || meta == 0x9B || meta == 0x9C || meta == 0x9D || meta == 0x9E || meta == 0x9F){
- event = new NoteOn(total, (value1 + (TheGhastMidiPlayerPanel.largeKeyboard ? 60 : 0)) & 0xFF, value2, meta - 0x90);
- break;
- } else if(meta == 0x80 || meta == 0x81 || meta == 0x82 || meta == 0x83 || meta == 0x84 || meta == 0x85 || meta == 0x86 || meta == 0x87 || meta == 0x88 || meta == 0x89 || meta == 0x8A || meta == 0x8B || meta == 0x8C || meta == 0x8D || meta == 0x8E || meta == 0x8F){
- event = new NoteOff(total, (value1 + (TheGhastMidiPlayerPanel.largeKeyboard ? 60 : 0)) & 0xFF, value2, meta - 0x80);
- } else {
- event = null;
- break;
- }
- */
- } else if(meta == 0xF0 || meta == 0xF7) {
- int thing = 0;
- byteStream.read();
- while(thing != 0xF7) {
- thing = byteStream.read() & 0xFF;
- }
- event = null;
- //t.addEvent(event);
- continue;
- } else {
- byteStream.reset();
- byteStream.read();
- }
- event = null;
- continue;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement