com.frinika.sequencer.gui.mixer
Class SynthWrapper

java.lang.Object
  extended by com.frinika.sequencer.gui.mixer.SynthWrapper
All Implemented Interfaces:
MidiRenderFactory, MidiDeviceIconProvider, javax.sound.midi.MidiDevice, javax.sound.midi.Synthesizer

public class SynthWrapper
extends java.lang.Object
implements javax.sound.midi.Synthesizer, MidiRenderFactory, MidiDeviceIconProvider

Synthesizer wrapper for external midi out devices. Used to intercept midi messages and update the mixer gui (mixer sliders etc.)

Author:
Peter Johan Salomonsen

Nested Class Summary
 
Nested classes/interfaces inherited from interface javax.sound.midi.MidiDevice
javax.sound.midi.MidiDevice.Info
 
Field Summary
 java.lang.String soundBankFile
           
 
Constructor Summary
SynthWrapper(ProjectContainer project, javax.sound.midi.MidiDevice midiDevice)
           
 
Method Summary
 void close()
           
 uk.org.toot.audio.core.AudioProcess getAudioProcess()
          You can use this grab the output from the synth.
 javax.sound.midi.Instrument[] getAvailableInstruments()
           
 javax.sound.midi.MidiChannel[] getChannels()
           
 javax.sound.midi.Soundbank getDefaultSoundbank()
           
 javax.sound.midi.MidiDevice.Info getDeviceInfo()
           
 javax.swing.Icon getIcon()
           
 long getLatency()
           
 javax.sound.midi.Instrument[] getLoadedInstruments()
           
 int getMaxPolyphony()
           
 int getMaxReceivers()
           
 int getMaxTransmitters()
           
 long getMicrosecondPosition()
           
 javax.sound.midi.MidiDevice getRealDevice()
          Returns the midiDevice that this synthwrapper is wrapping
 javax.sound.midi.Receiver getReceiver()
           
 java.util.List<javax.sound.midi.Receiver> getReceivers()
           
 MidiRender getRender(float samplerate, int channels)
           
 javax.sound.midi.Soundbank getSoundbank(java.io.File file)
           
 javax.sound.midi.Transmitter getTransmitter()
           
 java.util.List<javax.sound.midi.Transmitter> getTransmitters()
           
 javax.sound.midi.VoiceStatus[] getVoiceStatus()
           
 boolean isOpen()
           
 boolean isRenderable()
           
 boolean isSoundbankSupported(javax.sound.midi.Soundbank soundbank)
           
 boolean loadAllInstruments(javax.sound.midi.Soundbank soundbank)
           
 boolean loadInstrument(javax.sound.midi.Instrument instrument)
           
 boolean loadInstruments(javax.sound.midi.Soundbank soundbank, javax.sound.midi.Patch[] patchList)
           
 void open()
           
 boolean remapInstrument(javax.sound.midi.Instrument from, javax.sound.midi.Instrument to)
           
 void setRenderAudioProcess(uk.org.toot.audio.core.AudioProcess audioprocess)
           
 void setSaveReferencedData(boolean saveReferencedData)
           
 void setSupressAudio(boolean supress_audio)
           
 java.lang.String toString()
          Override toString to provide easy construction of GUI selectors.
 void unloadAllInstruments(javax.sound.midi.Soundbank soundbank)
           
 void unloadInstrument(javax.sound.midi.Instrument instrument)
           
 void unloadInstruments(javax.sound.midi.Soundbank soundbank, javax.sound.midi.Patch[] patchList)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

soundBankFile

public java.lang.String soundBankFile
Constructor Detail

SynthWrapper

public SynthWrapper(ProjectContainer project,
                    javax.sound.midi.MidiDevice midiDevice)
Parameters:
project - - Only neccesary if the device is a synthesizer implementing the mixer interface (NOT USED? --PJL)
midiDevice -
Throws:
javax.sound.midi.MidiUnavailableException
Method Detail

getAudioProcess

public uk.org.toot.audio.core.AudioProcess getAudioProcess()
You can use this grab the output from the synth.

Returns:
the audio process of this synth voice.

getReceiver

public javax.sound.midi.Receiver getReceiver()
                                      throws javax.sound.midi.MidiUnavailableException
Specified by:
getReceiver in interface javax.sound.midi.MidiDevice
Throws:
javax.sound.midi.MidiUnavailableException

getReceivers

public java.util.List<javax.sound.midi.Receiver> getReceivers()
Specified by:
getReceivers in interface javax.sound.midi.MidiDevice

getTransmitter

public javax.sound.midi.Transmitter getTransmitter()
                                            throws javax.sound.midi.MidiUnavailableException
Specified by:
getTransmitter in interface javax.sound.midi.MidiDevice
Throws:
javax.sound.midi.MidiUnavailableException

getTransmitters

public java.util.List<javax.sound.midi.Transmitter> getTransmitters()
Specified by:
getTransmitters in interface javax.sound.midi.MidiDevice

getDeviceInfo

public javax.sound.midi.MidiDevice.Info getDeviceInfo()
Specified by:
getDeviceInfo in interface javax.sound.midi.MidiDevice

open

public void open()
          throws javax.sound.midi.MidiUnavailableException
Specified by:
open in interface javax.sound.midi.MidiDevice
Throws:
javax.sound.midi.MidiUnavailableException

close

public void close()
Specified by:
close in interface javax.sound.midi.MidiDevice

isOpen

public boolean isOpen()
Specified by:
isOpen in interface javax.sound.midi.MidiDevice

getMicrosecondPosition

public long getMicrosecondPosition()
Specified by:
getMicrosecondPosition in interface javax.sound.midi.MidiDevice

getMaxReceivers

public int getMaxReceivers()
Specified by:
getMaxReceivers in interface javax.sound.midi.MidiDevice

getMaxTransmitters

public int getMaxTransmitters()
Specified by:
getMaxTransmitters in interface javax.sound.midi.MidiDevice

getMaxPolyphony

public int getMaxPolyphony()
Specified by:
getMaxPolyphony in interface javax.sound.midi.Synthesizer

getLatency

public long getLatency()
Specified by:
getLatency in interface javax.sound.midi.Synthesizer

getChannels

public javax.sound.midi.MidiChannel[] getChannels()
Specified by:
getChannels in interface javax.sound.midi.Synthesizer

getVoiceStatus

public javax.sound.midi.VoiceStatus[] getVoiceStatus()
Specified by:
getVoiceStatus in interface javax.sound.midi.Synthesizer

isSoundbankSupported

public boolean isSoundbankSupported(javax.sound.midi.Soundbank soundbank)
Specified by:
isSoundbankSupported in interface javax.sound.midi.Synthesizer

loadInstrument

public boolean loadInstrument(javax.sound.midi.Instrument instrument)
Specified by:
loadInstrument in interface javax.sound.midi.Synthesizer

unloadInstrument

public void unloadInstrument(javax.sound.midi.Instrument instrument)
Specified by:
unloadInstrument in interface javax.sound.midi.Synthesizer

remapInstrument

public boolean remapInstrument(javax.sound.midi.Instrument from,
                               javax.sound.midi.Instrument to)
Specified by:
remapInstrument in interface javax.sound.midi.Synthesizer

getDefaultSoundbank

public javax.sound.midi.Soundbank getDefaultSoundbank()
Specified by:
getDefaultSoundbank in interface javax.sound.midi.Synthesizer

getAvailableInstruments

public javax.sound.midi.Instrument[] getAvailableInstruments()
Specified by:
getAvailableInstruments in interface javax.sound.midi.Synthesizer

getLoadedInstruments

public javax.sound.midi.Instrument[] getLoadedInstruments()
Specified by:
getLoadedInstruments in interface javax.sound.midi.Synthesizer

loadAllInstruments

public boolean loadAllInstruments(javax.sound.midi.Soundbank soundbank)
Specified by:
loadAllInstruments in interface javax.sound.midi.Synthesizer

unloadAllInstruments

public void unloadAllInstruments(javax.sound.midi.Soundbank soundbank)
Specified by:
unloadAllInstruments in interface javax.sound.midi.Synthesizer

loadInstruments

public boolean loadInstruments(javax.sound.midi.Soundbank soundbank,
                               javax.sound.midi.Patch[] patchList)
Specified by:
loadInstruments in interface javax.sound.midi.Synthesizer

unloadInstruments

public void unloadInstruments(javax.sound.midi.Soundbank soundbank,
                              javax.sound.midi.Patch[] patchList)
Specified by:
unloadInstruments in interface javax.sound.midi.Synthesizer

toString

public java.lang.String toString()
Override toString to provide easy construction of GUI selectors.

Overrides:
toString in class java.lang.Object

getRealDevice

public javax.sound.midi.MidiDevice getRealDevice()
Returns the midiDevice that this synthwrapper is wrapping

Returns:

setSaveReferencedData

public void setSaveReferencedData(boolean saveReferencedData)

isRenderable

public boolean isRenderable()

setRenderAudioProcess

public void setRenderAudioProcess(uk.org.toot.audio.core.AudioProcess audioprocess)

setSupressAudio

public void setSupressAudio(boolean supress_audio)

getRender

public MidiRender getRender(float samplerate,
                            int channels)
Specified by:
getRender in interface MidiRenderFactory

getIcon

public javax.swing.Icon getIcon()
Specified by:
getIcon in interface MidiDeviceIconProvider

getSoundbank

public javax.sound.midi.Soundbank getSoundbank(java.io.File file)
                                        throws javax.sound.midi.InvalidMidiDataException,
                                               java.io.IOException
Throws:
javax.sound.midi.InvalidMidiDataException
java.io.IOException