APIdia Launch Partner
Top Description Inners Fields Constructors Methods
com.sun.media.sound

public final Class SoftChannel

extends Object
implements MidiChannel, ModelDirectedPlayer
Class Inheritance
All Implemented Interfaces
com.sun.media.sound.ModelDirectedPlayer, javax.sound.midi.MidiChannel
Imports
java.util.ArrayList, .HashMap, .Iterator, .List, .Map, javax.sound.midi.MidiChannel, .Patch

Software Synthesizer MIDI channel class.
Author
Karl Helgason

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class

Field Summary

Modifier and TypeField and Description
private int
pack-priv ModelConnectionBlock[]
pack-priv ModelConnectionBlock[]
pack-priv int
pack-priv ModelConnectionBlock[]
private final int
private int
private final SoftControl[]
private final SoftControl
private final double[][]
private final double[]
private final SoftControl
pack-priv Map<Integer, double[]>
pack-priv Map<Integer, int[]>
private final double[]
private final SoftControl
pack-priv Map<Integer, double[]>
pack-priv Map<Integer, int[]>
private final Object
private final int[]
pack-priv ModelDirector
pack-priv SoftInstrument
pack-priv ModelChannelMixer
private static final boolean[]
private boolean
pack-priv boolean[][]
pack-priv double[][]
private final int[]
private final SoftMainMixer
private boolean
private boolean
private int
private int
private int
private int
private boolean
private int
private final int[]
private boolean
pack-priv int[]
pack-priv int
pack-priv double
private int
private int
private int
private static final int
private boolean
private boolean
pack-priv boolean
private final SoftSynthesizer
pack-priv SoftTuning
pack-priv int
pack-priv int
private int
private final SoftVoice[]

Constructor Summary

AccessConstructor and Description
public
SoftChannel(SoftSynthesizer synth, int channel)

Method Summary

Modifier and TypeMethod and Description
public void
allNotesOff()

Implements javax.sound.midi.MidiChannel.allNotesOff.

Turns off all notes that are currently sounding on this channel.

public void
allSoundOff()

Implements javax.sound.midi.MidiChannel.allSoundOff.

Immediately turns off all sounding notes on this channel, ignoring the state of the Hold Pedal and the internal decay rate of the current Instrument.

pack-priv void
public void
controlChange(int controller, int value)

Implements javax.sound.midi.MidiChannel.controlChange.

Reacts to a change in the specified controller's value.

public void
controlChangePerNote(int noteNumber, int controller, int value)

private ModelConnectionBlock[]
createModelConnections(ModelIdentifier sid, int[] destination, int[] range)

private int
public int
getChannelPressure()

Implements javax.sound.midi.MidiChannel.getChannelPressure.

Obtains the channel's keyboard pressure.

public int
getController(int controller)

Implements javax.sound.midi.MidiChannel.getController.

Obtains the current value of the specified controller.

public int
getControlPerNote(int noteNumber, int controller)

public boolean
getMono()

Implements javax.sound.midi.MidiChannel.getMono.

Obtains the current mono/poly mode.

public boolean
getMute()

Implements javax.sound.midi.MidiChannel.getMute.

Obtains the current mute state for this channel.

public boolean
getOmni()

Implements javax.sound.midi.MidiChannel.getOmni.

Obtains the current omni mode.

public int
getPitchBend()

Implements javax.sound.midi.MidiChannel.getPitchBend.

Obtains the upward or downward pitch offset for this channel.

public int
getPolyPressure(int noteNumber)

Implements javax.sound.midi.MidiChannel.getPolyPressure.

Obtains the pressure with which the specified key is being depressed.

public int
getProgram()

Implements javax.sound.midi.MidiChannel.getProgram.

Obtains the current program number for this channel.

public boolean
getSolo()

Implements javax.sound.midi.MidiChannel.getSolo.

Obtains the current solo state for this channel.

pack-priv void
initVoice(SoftVoice voice, SoftPerformer p, int voiceID, int noteNumber, int velocity, int delay, ModelConnectionBlock[] connectionBlocks, ModelChannelMixer channelmixer, boolean releaseTriggered)

public boolean
localControl(boolean on)

Implements javax.sound.midi.MidiChannel.localControl.

Turns local control on or off.

public void
mapChannelPressureToDestination(int[] destination, int[] range)

public void
mapControlToDestination(int control, int[] destination, int[] range)

public void
mapPolyPressureToDestination(int[] destination, int[] range)

public void
noteOff(int noteNumber, int velocity)

Implements javax.sound.midi.MidiChannel.noteOff.

Turns the specified note off.

public void
noteOff(int noteNumber)

Implements javax.sound.midi.MidiChannel.noteOff.

Turns the specified note off.

private void
noteOff_internal(int noteNumber, int velocity)

public void
noteOn(int noteNumber, int velocity)

Implements javax.sound.midi.MidiChannel.noteOn.

Starts the specified note sounding.

pack-priv void
noteOn(int noteNumber, int velocity, int delay)

private void
noteOn_internal(int noteNumber, int velocity, int delay)

public void
nrpnChange(int controller, int value)

public void
play(int performerIndex, ModelConnectionBlock[] connectionBlocks)

Implements com.sun.media.sound.ModelDirectedPlayer.play.

public void
programChange(int program)

Implements javax.sound.midi.MidiChannel.programChange.

Changes a program (patch).

public void
programChange(int bank, int program)

Implements javax.sound.midi.MidiChannel.programChange.

Changes the program using bank and program (patch) numbers.

public void
resetAllControllers()

Implements javax.sound.midi.MidiChannel.resetAllControllers.

Resets all the implemented controllers to their default values.

public void
resetAllControllers(boolean allControls)

private static int
restrict14Bit(int value)

private static int
restrict7Bit(int value)

public void
rpnChange(int controller, int value)

public void
setChannelPressure(int pressure)

Implements javax.sound.midi.MidiChannel.setChannelPressure.

Reacts to a change in the keyboard pressure.

public void
setMono(boolean on)

Implements javax.sound.midi.MidiChannel.setMono.

Turns mono mode on or off.

public void
setMute(boolean mute)

Implements javax.sound.midi.MidiChannel.setMute.

Sets the mute state for this channel.

public void
setOmni(boolean on)

Implements javax.sound.midi.MidiChannel.setOmni.

Turns omni mode on or off.

public void
setPitchBend(int bend)

Implements javax.sound.midi.MidiChannel.setPitchBend.

Changes the pitch offset for all notes on this channel.

public void
setPolyPressure(int noteNumber, int pressure)

Implements javax.sound.midi.MidiChannel.setPolyPressure.

Reacts to a change in the specified note's key pressure.

public void
setSolo(boolean soloState)

Implements javax.sound.midi.MidiChannel.setSolo.

Sets the solo state for this channel.

private void
setSoloMute(boolean mute)

public void
tuningChange(int program)

public void
tuningChange(int bank, int program)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

bankback to summary
private int bank
cds_channelpressure_connectionsback to summary
pack-priv ModelConnectionBlock[] cds_channelpressure_connections
cds_control_connectionsback to summary
pack-priv ModelConnectionBlock[] cds_control_connections
cds_control_numberback to summary
pack-priv int cds_control_number
cds_polypressure_connectionsback to summary
pack-priv ModelConnectionBlock[] cds_polypressure_connections
channelback to summary
private final int channel
channelpressureback to summary
private int channelpressure
co_midiback to summary
private final SoftControl[] co_midi
co_midi_ccback to summary
private final SoftControl co_midi_cc
co_midi_cc_ccback to summary
private final double[][] co_midi_cc_cc
co_midi_channel_pressureback to summary
private final double[] co_midi_channel_pressure
co_midi_nrpnback to summary
private final SoftControl co_midi_nrpn
co_midi_nrpn_nrpnback to summary
pack-priv Map<Integer, double[]> co_midi_nrpn_nrpn
co_midi_nrpn_nrpn_iback to summary
pack-priv Map<Integer, int[]> co_midi_nrpn_nrpn_i
co_midi_pitchback to summary
private final double[] co_midi_pitch
co_midi_rpnback to summary
private final SoftControl co_midi_rpn
co_midi_rpn_rpnback to summary
pack-priv Map<Integer, double[]> co_midi_rpn_rpn
co_midi_rpn_rpn_iback to summary
pack-priv Map<Integer, int[]> co_midi_rpn_rpn_i
control_mutexback to summary
private final Object control_mutex
controllerback to summary
private final int[] controller
current_directorback to summary
pack-priv ModelDirector current_director
current_instrumentback to summary
pack-priv SoftInstrument current_instrument
current_mixerback to summary
pack-priv ModelChannelMixer current_mixer
dontResetControlsback to summary
private static final boolean[] dontResetControls
firstVoiceback to summary
private boolean firstVoice
keybasedcontroller_activeback to summary
pack-priv boolean[][] keybasedcontroller_active
keybasedcontroller_valueback to summary
pack-priv double[][] keybasedcontroller_value
lastVelocityback to summary
private final int[] lastVelocity
mainmixerback to summary
private final SoftMainMixer mainmixer
monoback to summary
private boolean mono
muteback to summary
private boolean mute
nrpn_controlback to summary
private int nrpn_control
pitchbendback to summary
private int pitchbend
play_delayback to summary
private int play_delay
play_noteNumberback to summary
private int play_noteNumber
play_releasetriggeredback to summary
private boolean play_releasetriggered
play_velocityback to summary
private int play_velocity
polypressureback to summary
private final int[] polypressure
portamentoback to summary
private boolean portamento
portamento_lastnoteback to summary
pack-priv int[] portamento_lastnote
portamento_lastnote_ixback to summary
pack-priv int portamento_lastnote_ix
portamento_timeback to summary
pack-priv double portamento_time
prevVoiceIDback to summary
private int prevVoiceID
programback to summary
private int program
rpn_controlback to summary
private int rpn_control
RPN_NULL_VALUEback to summary
private static final int RPN_NULL_VALUE
soloback to summary
private boolean solo
solomuteback to summary
private boolean solomute
sustainback to summary
pack-priv boolean sustain
synthesizerback to summary
private final SoftSynthesizer synthesizer
tuningback to summary
pack-priv SoftTuning tuning
tuning_bankback to summary
pack-priv int tuning_bank
tuning_programback to summary
pack-priv int tuning_program
voiceNoback to summary
private int voiceNo
voicesback to summary
private final SoftVoice[] voices

Constructor Detail

SoftChannelback to summary
public SoftChannel(SoftSynthesizer synth, int channel)

Method Detail

allNotesOffback to summary
public void allNotesOff()

Implements javax.sound.midi.MidiChannel.allNotesOff.

Doc from javax.sound.midi.MidiChannel.allNotesOff.

Turns off all notes that are currently sounding on this channel. The notes might not die away instantaneously; their decay rate is determined by the internals of the Instrument. If the Hold Pedal controller (see controlChange) is down, the effect of this method is deferred until the pedal is released.

Annotations
@Override
allSoundOffback to summary
public void allSoundOff()

Implements javax.sound.midi.MidiChannel.allSoundOff.

Doc from javax.sound.midi.MidiChannel.allSoundOff.

Immediately turns off all sounding notes on this channel, ignoring the state of the Hold Pedal and the internal decay rate of the current Instrument.

Annotations
@Override
applyInstrumentCustomizationback to summary
pack-priv void applyInstrumentCustomization()
controlChangeback to summary
public void controlChange(int controller, int value)

Implements javax.sound.midi.MidiChannel.controlChange.

Doc from javax.sound.midi.MidiChannel.controlChange.

Reacts to a change in the specified controller's value. A controller is some control other than a keyboard key, such as a switch, slider, pedal, wheel, or breath-pressure sensor. The MIDI 1.0 Specification provides standard numbers for typical controllers on MIDI devices, and describes the intended effect for some of the controllers. The way in which an Instrument reacts to a controller change may be specific to the Instrument.

The MIDI 1.0 Specification defines both 7-bit controllers and 14-bit controllers. Continuous controllers, such as wheels and sliders, typically have 14 bits (two MIDI bytes), while discrete controllers, such as switches, typically have 7 bits (one MIDI byte). Refer to the specification to see the expected resolution for each type of control.

Controllers 64 through 95 (0x40 - 0x5F) allow 7-bit precision. The value of a 7-bit controller is set completely by the value argument. An additional set of controllers provide 14-bit precision by using two controller numbers, one for the most significant 7 bits and another for the least significant 7 bits. Controller numbers 0 through 31 (0x00 - 0x1F) control the most significant 7 bits of 14-bit controllers; controller numbers 32 through 63 (0x20 - 0x3F) control the least significant 7 bits of these controllers. For example, controller number 7 (0x07) controls the upper 7 bits of the channel volume controller, and controller number 39 (0x27) controls the lower 7 bits. The value of a 14-bit controller is determined by the interaction of the two halves. When the most significant 7 bits of a controller are set (using controller numbers 0 through 31), the lower 7 bits are automatically set to 0. The corresponding controller number for the lower 7 bits may then be used to further modulate the controller value.

It is possible that the underlying synthesizer does not support a specific controller message. In order to verify that a call to controlChange was successful, use getController.

Annotations
@Override
controlChangePerNoteback to summary
public void controlChangePerNote(int noteNumber, int controller, int value)
createModelConnectionsback to summary
private ModelConnectionBlock[] createModelConnections(ModelIdentifier sid, int[] destination, int[] range)
findFreeVoiceback to summary
private int findFreeVoice(int x)
getChannelPressureback to summary
public int getChannelPressure()

Implements javax.sound.midi.MidiChannel.getChannelPressure.

Doc from javax.sound.midi.MidiChannel.getChannelPressure.

Obtains the channel's keyboard pressure.

If the device does not support setting channel pressure, this method always returns 0. Calling setChannelPressure will have no effect then.

Annotations
@Override
getControllerback to summary
public int getController(int controller)

Implements javax.sound.midi.MidiChannel.getController.

Doc from javax.sound.midi.MidiChannel.getController.

Obtains the current value of the specified controller. The return value is represented with 7 bits. For 14-bit controllers, the MSB and LSB controller value needs to be obtained separately. For example, the 14-bit value of the volume controller can be calculated by multiplying the value of controller 7 (0x07, channel volume MSB) with 128 and adding the value of controller 39 (0x27, channel volume LSB).

If the device does not support setting a specific controller, this method returns 0 for that controller. Calling controlChange will have no effect then.

Annotations
@Override
getControlPerNoteback to summary
public int getControlPerNote(int noteNumber, int controller)
getMonoback to summary
public boolean getMono()

Implements javax.sound.midi.MidiChannel.getMono.

Doc from javax.sound.midi.MidiChannel.getMono.

Obtains the current mono/poly mode. Synthesizers that do not allow changing mono/poly mode will always return the same value, regardless of calls to setMono.

Annotations
@Override
getMuteback to summary
public boolean getMute()

Implements javax.sound.midi.MidiChannel.getMute.

Doc from javax.sound.midi.MidiChannel.getMute.

Obtains the current mute state for this channel. If the underlying synthesizer does not support muting this channel, this method always returns false.

Annotations
@Override
getOmniback to summary
public boolean getOmni()

Implements javax.sound.midi.MidiChannel.getOmni.

Doc from javax.sound.midi.MidiChannel.getOmni.

Obtains the current omni mode. Synthesizers that do not allow changing the omni mode will always return the same value, regardless of calls to setOmni.

Annotations
@Override
getPitchBendback to summary
public int getPitchBend()

Implements javax.sound.midi.MidiChannel.getPitchBend.

Doc from javax.sound.midi.MidiChannel.getPitchBend.

Obtains the upward or downward pitch offset for this channel. If the device does not support setting pitch bend, this method always returns 8192. Calling setPitchBend will have no effect then.

Annotations
@Override
getPolyPressureback to summary
public int getPolyPressure(int noteNumber)

Implements javax.sound.midi.MidiChannel.getPolyPressure.

Doc from javax.sound.midi.MidiChannel.getPolyPressure.

Obtains the pressure with which the specified key is being depressed.

If the device does not support setting poly pressure, this method always returns 0. Calling setPolyPressure will have no effect then.

Annotations
@Override
getProgramback to summary
public int getProgram()

Implements javax.sound.midi.MidiChannel.getProgram.

Doc from javax.sound.midi.MidiChannel.getProgram.

Obtains the current program number for this channel.

Annotations
@Override
getSoloback to summary
public boolean getSolo()

Implements javax.sound.midi.MidiChannel.getSolo.

Doc from javax.sound.midi.MidiChannel.getSolo.

Obtains the current solo state for this channel. If the underlying synthesizer does not support solo on this channel, this method always returns false.

Annotations
@Override
initVoiceback to summary
pack-priv void initVoice(SoftVoice voice, SoftPerformer p, int voiceID, int noteNumber, int velocity, int delay, ModelConnectionBlock[] connectionBlocks, ModelChannelMixer channelmixer, boolean releaseTriggered)
localControlback to summary
public boolean localControl(boolean on)

Implements javax.sound.midi.MidiChannel.localControl.

Doc from javax.sound.midi.MidiChannel.localControl.

Turns local control on or off. The default is for local control to be on. The "on" setting means that if a device is capable of both synthesizing sound and transmitting MIDI messages, it will synthesize sound in response to the note-on and note-off messages that it itself transmits. It will also respond to messages received from other transmitting devices. The "off" setting means that the synthesizer will ignore its own transmitted MIDI messages, but not those received from other devices.

It is possible that the underlying synthesizer does not support local control. In order to verify that a call to localControl was successful, check the return value.

Annotations
@Override
mapChannelPressureToDestinationback to summary
public void mapChannelPressureToDestination(int[] destination, int[] range)
mapControlToDestinationback to summary
public void mapControlToDestination(int control, int[] destination, int[] range)
mapPolyPressureToDestinationback to summary
public void mapPolyPressureToDestination(int[] destination, int[] range)
noteOffback to summary
public void noteOff(int noteNumber, int velocity)

Implements javax.sound.midi.MidiChannel.noteOff.

Doc from javax.sound.midi.MidiChannel.noteOff.

Turns the specified note off. The key-up velocity, if not ignored, can be used to affect how quickly the note decays. In any case, the note might not die away instantaneously; its decay rate is determined by the internals of the Instrument. If the Hold Pedal (a controller; see controlChange) is down, the effect of this method is deferred until the pedal is released.

Annotations
@Override
noteOffback to summary
public void noteOff(int noteNumber)

Implements javax.sound.midi.MidiChannel.noteOff.

Doc from javax.sound.midi.MidiChannel.noteOff.

Turns the specified note off.

Annotations
@Override
noteOff_internalback to summary
private void noteOff_internal(int noteNumber, int velocity)
noteOnback to summary
public void noteOn(int noteNumber, int velocity)

Implements javax.sound.midi.MidiChannel.noteOn.

Doc from javax.sound.midi.MidiChannel.noteOn.

Starts the specified note sounding. The key-down velocity usually controls the note's volume and/or brightness. If velocity is zero, this method instead acts like noteOff(int), terminating the note.

Annotations
@Override
noteOnback to summary
pack-priv void noteOn(int noteNumber, int velocity, int delay)
noteOn_internalback to summary
private void noteOn_internal(int noteNumber, int velocity, int delay)
nrpnChangeback to summary
public void nrpnChange(int controller, int value)
playback to summary
public void play(int performerIndex, ModelConnectionBlock[] connectionBlocks)

Implements com.sun.media.sound.ModelDirectedPlayer.play.

Annotations
@Override
programChangeback to summary
public void programChange(int program)

Implements javax.sound.midi.MidiChannel.programChange.

Doc from javax.sound.midi.MidiChannel.programChange.

Changes a program (patch). This selects a specific instrument from the currently selected bank of instruments.

The MIDI specification does not dictate whether notes that are already sounding should switch to the new instrument (timbre) or continue with their original timbre until terminated by a note-off.

The program number is zero-based (expressed from 0 to 127). Note that MIDI hardware displays and literature about MIDI typically use the range 1 to 128 instead.

It is possible that the underlying synthesizer does not support a specific program. In order to verify that a call to programChange was successful, use getProgram.

Annotations
@Override
programChangeback to summary
public void programChange(int bank, int program)

Implements javax.sound.midi.MidiChannel.programChange.

Doc from javax.sound.midi.MidiChannel.programChange.

Changes the program using bank and program (patch) numbers.

It is possible that the underlying synthesizer does not support a specific bank, or program. In order to verify that a call to programChange was successful, use getProgram and getController. Since banks are changed by way of control changes, you can verify the current bank with the following statement:

  int bank = (getController(0) * 128) + getController(32);
Annotations
@Override
resetAllControllersback to summary
public void resetAllControllers()

Implements javax.sound.midi.MidiChannel.resetAllControllers.

Doc from javax.sound.midi.MidiChannel.resetAllControllers.

Resets all the implemented controllers to their default values.

Annotations
@Override
resetAllControllersback to summary
public void resetAllControllers(boolean allControls)
restrict14Bitback to summary
private static int restrict14Bit(int value)
restrict7Bitback to summary
private static int restrict7Bit(int value)
rpnChangeback to summary
public void rpnChange(int controller, int value)
setChannelPressureback to summary
public void setChannelPressure(int pressure)

Implements javax.sound.midi.MidiChannel.setChannelPressure.

Doc from javax.sound.midi.MidiChannel.setChannelPressure.

Reacts to a change in the keyboard pressure. Channel pressure indicates how hard the keyboard player is depressing the entire keyboard. This can be the maximum or average of the per-key pressure-sensor values, as set by setPolyPressure. More commonly, it is a measurement of a single sensor on a device that doesn't implement polyphonic key pressure. Pressure can be used to control various aspects of the sound, as described under setPolyPressure.

It is possible that the underlying synthesizer does not support this MIDI message. In order to verify that setChannelPressure was successful, use getChannelPressure.

Annotations
@Override
setMonoback to summary
public void setMono(boolean on)

Implements javax.sound.midi.MidiChannel.setMono.

Doc from javax.sound.midi.MidiChannel.setMono.

Turns mono mode on or off. In mono mode, the channel synthesizes only one note at a time. In poly mode (identical to mono mode off), the channel can synthesize multiple notes simultaneously. The default is mono off (poly mode on).

"Mono" is short for the word "monophonic," which in this context is opposed to the word "polyphonic" and refers to a single synthesizer voice per MIDI channel. It has nothing to do with how many audio channels there might be (as in "monophonic" versus "stereophonic" recordings).

It is possible that the underlying synthesizer does not support mono mode. In order to verify that a call to setMono was successful, use getMono.

Annotations
@Override
setMuteback to summary
public void setMute(boolean mute)

Implements javax.sound.midi.MidiChannel.setMute.

Doc from javax.sound.midi.MidiChannel.setMute.

Sets the mute state for this channel. A value of true means the channel is to be muted, false means the channel can sound (if other channels are not soloed).

Unlike allSoundOff(), this method applies to only a specific channel, not to all channels. Further, it silences not only currently sounding notes, but also subsequently received notes.

It is possible that the underlying synthesizer does not support muting channels. In order to verify that a call to setMute was successful, use getMute.

Annotations
@Override
setOmniback to summary
public void setOmni(boolean on)

Implements javax.sound.midi.MidiChannel.setOmni.

Doc from javax.sound.midi.MidiChannel.setOmni.

Turns omni mode on or off. In omni mode, the channel responds to messages sent on all channels. When omni is off, the channel responds only to messages sent on its channel number. The default is omni off.

It is possible that the underlying synthesizer does not support omni mode. In order to verify that setOmni was successful, use getOmni.

Annotations
@Override
setPitchBendback to summary
public void setPitchBend(int bend)

Implements javax.sound.midi.MidiChannel.setPitchBend.

Doc from javax.sound.midi.MidiChannel.setPitchBend.

Changes the pitch offset for all notes on this channel. This affects all currently sounding notes as well as subsequent ones. (For pitch bend to cease, the value needs to be reset to the center position.)

The MIDI specification stipulates that pitch bend be a 14-bit value, where zero is maximum downward bend, 16383 is maximum upward bend, and 8192 is the center (no pitch bend). The actual amount of pitch change is not specified; it can be changed by a pitch-bend sensitivity setting. However, the General MIDI specification says that the default range should be two semitones up and down from center.

It is possible that the underlying synthesizer does not support this MIDI message. In order to verify that setPitchBend was successful, use getPitchBend.

Annotations
@Override
setPolyPressureback to summary
public void setPolyPressure(int noteNumber, int pressure)

Implements javax.sound.midi.MidiChannel.setPolyPressure.

Doc from javax.sound.midi.MidiChannel.setPolyPressure.

Reacts to a change in the specified note's key pressure. Polyphonic key pressure allows a keyboard player to press multiple keys simultaneously, each with a different amount of pressure. The pressure, if not ignored, is typically used to vary such features as the volume, brightness, or vibrato of the note.

It is possible that the underlying synthesizer does not support this MIDI message. In order to verify that setPolyPressure was successful, use getPolyPressure.

Annotations
@Override
setSoloback to summary
public void setSolo(boolean soloState)

Implements javax.sound.midi.MidiChannel.setSolo.

Doc from javax.sound.midi.MidiChannel.setSolo.

Sets the solo state for this channel. If solo is true only this channel and other soloed channels will sound. If solo is false then only other soloed channels will sound, unless no channels are soloed, in which case all unmuted channels will sound.

It is possible that the underlying synthesizer does not support solo channels. In order to verify that a call to setSolo was successful, use getSolo.

Annotations
@Override
setSoloMuteback to summary
private void setSoloMute(boolean mute)
tuningChangeback to summary
public void tuningChange(int program)
tuningChangeback to summary
public void tuningChange(int bank, int program)
com.sun.media.sound back to summary

private Class SoftChannel.MidiControlObject

extends Object
implements SoftControl
Class Inheritance
All Implemented Interfaces
com.sun.media.sound.SoftControl

Field Summary

Modifier and TypeField and Description
pack-priv double[]
pack-priv double[]
pack-priv double[]

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public double[]
get(int instance, String name)

Implements com.sun.media.sound.SoftControl.get.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

channel_pressureback to summary
pack-priv double[] channel_pressure
pitchback to summary
pack-priv double[] pitch
poly_pressureback to summary
pack-priv double[] poly_pressure

Constructor Detail

MidiControlObjectback to summary
private MidiControlObject()

Method Detail

getback to summary
public double[] get(int instance, String name)

Implements com.sun.media.sound.SoftControl.get.

Annotations
@Override