BasicMidiPlayer.java |
1 package fi.jyu.mit.Music; 2 3 import java.util.List; 4 5 6 /** 7 * BasicSoundSystem tarjoaa rajapinnan yksinkertaiselle MIDI-äänentoistolle Java-ohjelmissa 8 * niin komentoriviltä kuin graafisilta sovelluksilta. 9 * <h2>Yleistä</h2> 10 * <p> 11 * Rajapinta tarjoaa seuraavat funktiot äänentoistoon: 12 * </p> 13 * <ul> 14 * <li>play monen nuotin toistoon (esim. play("cccc")</li> 15 * <li>playSingleNote yhden nuotin toistoon</li> 16 * <li>rest taukoja varten</li> 17 * <li>setTempo tempon säätelyyn BPM:n (engl. beats per minute eli iskuja minuutissa, oletus 120)</li> 18 * </ul> 19 * <p> 20 * Yksinkertaiseen äänentoistoon soveltuu parhaiten SoundSystem. BufferedSoundSystem puskuroi saamansa datan 21 * ja toistaa sen asynkronisesti eri säikeessä kun taas ConcurrentSoundSystem toistaa ääntä reaaliaikaisesti 22 * sitä mukaa mitä annetaan. 23 * </p><p> 24 * Lisäksi ConcurrentSoundSystem tarjoaa mahdollisuuden kytkeä toiston suoraan standardisyätteeseen, eli 25 * käyttäjä voi tehdä pianon (tai muun soittimen). 26 * </p> 27 * @see BufferedMidiPlayer 28 * @see MidiPlayer 29 * @see ThreadedMidiPlayer 30 */ 31 public interface BasicMidiPlayer { 32 33 public void play(String sequence); 34 35 public void play(String sequence, double length); 36 37 public void play(String sequence, double noteLength, int octave); 38 39 public void play(final String sequence, final double length, final int octave, final int velocity); 40 41 public void playSingleNote(String note); 42 43 public void playSingleNote(String note, double length); 44 45 public void playSingleNote(String note, double length, int octave); 46 47 public void playSingleNote(String note, double length, int octave, int velocity); 48 49 public void play(final List<Note> notes); 50 51 // public void rest(); 52 53 // public void rest(double duration); 54 55 public void setTempo(int bpm); 56 } 57