/*
* Musical Skill Coach - An interactive midi device friendly program to help music students improve their skills
* Copyright (C) 2011 Paul-Emile Gaudet
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package music.midi;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.ShortMessage;
public class MidiController
{
public static ShortMessage getProgramChange(int channel, int instrument)
{
if ((channel < 0) || (channel > 15) || (instrument < 0) || (instrument > 127))
return null;
ShortMessage message = new ShortMessage();
try
{
message.setMessage(ShortMessage.PROGRAM_CHANGE, channel, instrument, 0);
}
catch (InvalidMidiDataException e)
{
message = null;
}
return message;
}
public static ShortMessage getNoteEvent(int channel, int note, int velocity)
{
if ((channel < 0) || (channel > 15) || (note < 0) || (note > 127) || (velocity < 0) || (velocity > 127))
return null;
ShortMessage message = new ShortMessage();
try
{
if (velocity == 0)
message.setMessage(ShortMessage.NOTE_OFF, channel, note, 0);
else
message.setMessage(ShortMessage.NOTE_ON, channel, note, velocity);
}
catch (InvalidMidiDataException e)
{
message = null;
}
return message;
}
}