fi.jyu.mit.Music
Class BufferedMidiPlayer

java.lang.Object
  extended by fi.jyu.mit.Music.MidiPlayer
      extended by fi.jyu.mit.Music.BufferedMidiPlayer
All Implemented Interfaces:
BasicMidiPlayer

public class BufferedMidiPlayer
extends MidiPlayer
implements BasicMidiPlayer

Puskuroitu äänijärjestelmä, jonka tarkoitus on tukea mahdollisuutta syättää äänijärjestelmälle nuotteja, jotka voidaan toistaa joko pääohjelman säikeessä tai uudessa säikeessä. Tälläin käskyt play ja playNote eivät toista saamiansa nuotteja heti, vaan ne puskuroidaan, eli varastoidaan. Soittaminen aloitetaan metodeilla run tai runAsync. Metodilla run äänijärjestelmä aloittaa soittamisen nykyisessä säikeessä, kun taas runAsync tekee uuden säikeen joka sitten pyärii niin kauan kunnes soitto on loppunut. Asynkronisen soittamisen voi aina lopettaa käskyllä stop.


Nested Class Summary
 
Nested classes/interfaces inherited from class fi.jyu.mit.Music.MidiPlayer
MidiPlayer.NoteDuration
 
Field Summary
 
Fields inherited from class fi.jyu.mit.Music.MidiPlayer
ALLNOTES, basicNotes, basicNotes2, channels, currentChannel, DEFOCTAVE, DEFVELOCITY, DELAYST, instruments, synth
 
Constructor Summary
BufferedMidiPlayer()
           
BufferedMidiPlayer(int channel)
           
 
Method Summary
 List<Note> getCopyOfNotes()
          Luo kopion puskuroiduista nuoteista
 List<Note> getNotes()
          Palauttaa nuotit viitteenä jolloin niiden muuttaminen muuttaa soitettavia nuotteja
 void midiSoundNote(int note, int length, int velocity)
          Tallentaa nuotin puskuriin.
protected  void rest(int barLength)
          Toistaa mielivaltaisen tauon.
 void run()
          Aloittaa soiton kutsujan säikeessä, toisin sanoen keskeyttää pääohjelman toiminnan.
 void runAsync()
          Aloittaa asynkronisen soiton, eli soitto ei keskeytä pääohjelman toimintaa.
 void stop()
          Pysäyttää asynkronisen soiton.
 
Methods inherited from class fi.jyu.mit.Music.MidiPlayer
channelOff, channelOn, checkSynth, error, getBeatLength, getDefOctave, getInstrument, getInstrumentIndex, getNotes, getTempo, getVelocity, init, isVerbose, makeNote, makeNote, message, midiEndNote, midiStartNote, play, play, play, play, play, playAsciiFile, playMidiFile, playMidiFileAsync, playSingleNote, playSingleNote, playSingleNote, playSingleNote, printInstruments, printSequence, selectChannel, setDefOctave, setInstrument, setInstrument, setTempo, setVelocity, setVerbose
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface fi.jyu.mit.Music.BasicMidiPlayer
play, play, play, play, play, playSingleNote, playSingleNote, playSingleNote, playSingleNote, setTempo
 

Constructor Detail

BufferedMidiPlayer

public BufferedMidiPlayer()

BufferedMidiPlayer

public BufferedMidiPlayer(int channel)
Method Detail

getCopyOfNotes

public List<Note> getCopyOfNotes()
Luo kopion puskuroiduista nuoteista

Returns:
kopio nuoteista

getNotes

public List<Note> getNotes()
Palauttaa nuotit viitteenä jolloin niiden muuttaminen muuttaa soitettavia nuotteja

Returns:
nuotit

midiSoundNote

public void midiSoundNote(int note,
                          int length,
                          int velocity)
Tallentaa nuotin puskuriin.

Overrides:
midiSoundNote in class MidiPlayer
Parameters:
note - Nuotti (21-108)
length - Kesto millisekunteina
velocity - Nuotin nk. painovoimakkuus. Oletus on 64.

rest

protected void rest(int barLength)
Description copied from class: MidiPlayer
Toistaa mielivaltaisen tauon.

Overrides:
rest in class MidiPlayer
Parameters:
barLength - tauon pituus ms

run

public void run()
Aloittaa soiton kutsujan säikeessä, toisin sanoen keskeyttää pääohjelman toiminnan.


runAsync

public void runAsync()
Aloittaa asynkronisen soiton, eli soitto ei keskeytä pääohjelman toimintaa.


stop

public void stop()
Pysäyttää asynkronisen soiton.