public MidiID(int channel, int data1, int port, MidiStatus status) { this.channel = channel; this.data1 = data1; this.port = port; this.status = status; }
public void PlayMidi(MidiStatus midiStatus) { switch (midiStatus) { case MidiStatus.Play: if (!Running) { StartCoroutine(playMidi); Running = true; } break; case MidiStatus.Stop: if (Running) { StopCoroutine(playMidi); Running = false; } break; case MidiStatus.Pause: default: UnityEngine.Debug.Log(string.Format("MIDI status, {0}, not available", midiStatus)); break; } }
//get data2 from midi static int GetMidi(int data1, int port = -1, MidiStatus status = MidiStatus.Dummy) { //initialize if necessary if (!_initialized) { Initialize(); //quit if initialization was not done successfully if (!_initialized) { return(0); } } // check if no port was given if (port < 0) { //check every port for (int i = 0; i < currdevices.Length; i++) { //if the note is active if (currdevices[i].DataActive(data1, status)) { return(currdevices[i].getData(data1).data2); } } return(0); } // if port was specified, find and get data from port given. else if (port < portCount && currdevices[port].DataActive(data1, status)) { return(currdevices[port].getData(data1).data2); } return(0); }
public void EqualityTest() { var code1 = new MidiStatus(1); var code2 = new MidiStatus(2); Assert.IsTrue(code1.Equals(new MidiStatus(1))); Assert.IsFalse(code1.Equals(code2)); }
public MidiNoteOn( MidiStatus status, MidiNoteNumber midiNoteNumber, MidiVelocity midiVelocity) { Status = status; DataByte1 = midiNoteNumber; DataByte2 = midiVelocity; }
public MidiData getLastSpecial(MidiStatus status) { //check if the status given is special if (isSpecial(status) && activedata.ContainsKey(11 - (int)status)) { return(activedata[11 - (int)status]); } return(CreateMidiDummy(0)); }
public MidiData(float timeStamp, MidiStatus status, int channel, byte data1, byte data2, byte[] rawData) { this.timeStamp = timeStamp; this.status = status; this.channel = channel; this.data1 = data1; this.data2 = data2; this.rawData = rawData; }
public MidiControlChange( MidiStatus status, MidiControlChangeNumber midiControlChangeNumber, MidiControlChangeValue midiControlChangeValue) { Status = status; DataByte1 = midiControlChangeNumber; DataByte2 = midiControlChangeValue; }
public static void SendSimpleData(uint port, MidiStatus status, byte data1, byte data2, byte channel = 0) { byte[] data = { (byte)(((int)status << 4) | (channel & 0xF)), data1, data2 }; SendRawData(port, data); }
bool isSpecial(MidiStatus status) { //values after CC messages do not follow a unique value on data 1 return((int)status > 11); }
//creates a dummy data for any uninitialized midi notes //returns MidiData Dummy static MidiData CreateMidiDummy(int data1, MidiStatus status = MidiStatus.Dummy) { return(new MidiData(0, status, 0, (byte)data1, 0, null)); }
public bool DataActive(int data1, MidiStatus status = MidiStatus.Dummy) { return(activedata.ContainsKey(data1) && activedata[data1].status == status && activedata[data1].data2 != 0); }
public MidiProgramChange(MidiStatus status, MidiProgramChangeNumber number) { Status = status; DataByte1 = number; DataByte2 = GenericMidiData.Empty; }
// Constructors public MidiData( MidiStatus status, byte channel, byte byte1, byte byte2, uint ts ) { this.status = (byte)(status+channel); this.byte1 = byte1; this.byte2 = byte2; timestamp = ts; }