java.lang.Object | |
↳ | com.sun.media.sound.SoftChannelProxy |
A MidiChannel proxy object used for external access to synthesizer internal channel objects.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Turns off all notes that are currently sounding on this channel.
| |||||||||||
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 . | |||||||||||
Reacts to a change in the specified controller's value.
| |||||||||||
Obtains the channel's keyboard pressure.
| |||||||||||
Obtains the current value of the specified controller.
| |||||||||||
Obtains the current mono/poly mode.
| |||||||||||
Obtains the current mute state for this channel.
| |||||||||||
Obtains the current omni mode.
| |||||||||||
Obtains the upward or downward pitch offset for this channel.
| |||||||||||
Obtains the pressure with which the specified key is being depressed.
| |||||||||||
Obtains the current program number for this channel.
| |||||||||||
Obtains the current solo state for this channel.
| |||||||||||
Turns local control on or off.
| |||||||||||
Turns the specified note off.
| |||||||||||
Turns the specified note off.
| |||||||||||
Starts the specified note sounding.
| |||||||||||
Changes the program using bank and program (patch) numbers.
| |||||||||||
Changes a program (patch).
| |||||||||||
Resets all the implemented controllers to their default values.
| |||||||||||
Reacts to a change in the keyboard pressure.
| |||||||||||
Turns mono mode on or off.
| |||||||||||
Sets the mute state for this channel.
| |||||||||||
Turns omni mode on or off.
| |||||||||||
Changes the pitch offset for all notes on this channel.
| |||||||||||
Reacts to a change in the specified note's key pressure.
| |||||||||||
Sets the solo state for this channel.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
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.
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
.
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
.
controller | the controller number (0 to 127; see the MIDI 1.0 Specification for the interpretation) |
---|---|
value | the value to which the specified controller is changed (0 to 127) |
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.
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.
controller | the number of the controller whose value is desired. The allowed range is 0-127; see the MIDI 1.0 Specification for the interpretation. |
---|
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
.
true
if mono mode is on, otherwise
false
(meaning poly mode is on).Obtains the current mute state for this channel.
If the underlying synthesizer does not support
muting this channel, this method always returns
false
.
true
the channel is muted,
or false
if notObtains the current omni mode.
Synthesizers that do not allow changing the omni mode
will always return the same value, regardless
of calls to setOmni
.
true
if omni mode is on, otherwise
false
(meaning omni mode is off).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.
Obtains the pressure with which the specified key is being depressed.
noteNumber | the MIDI note number, from 0 to 127 (60 = Middle C)
If the device does not support setting poly pressure,
this method always returns 0. Calling
setPolyPressure will have no effect then. |
---|
Obtains the current program number for this channel.
Obtains the current solo state for this channel.
If the underlying synthesizer does not support
solo on this channel, this method always returns
false
.
true
the channel is solo,
or false
if notTurns 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.
on | true to turn local control on, false
to turn local control off |
---|
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.
noteNumber | the MIDI note number, from 0 to 127 (60 = Middle C) |
---|---|
velocity | the speed with which the key was released |
Turns the specified note off.
noteNumber | the MIDI note number, from 0 to 127 (60 = Middle C) |
---|
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.
noteNumber | the MIDI note number, from 0 to 127 (60 = Middle C) |
---|---|
velocity | the speed with which the key was depressed |
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);
bank | the bank number to switch to (0 to 16383) |
---|---|
program | the program (patch) to use in the specified bank (0 to 127) |
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
.
program | the program number to switch to (0 to 127) |
---|
Resets all the implemented controllers to their default values.
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
.
pressure | the pressure with which the keyboard is being depressed, from 0 to 127 (127 = maximum pressure) |
---|
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
.
on | true to turn mono mode on, false to
turn it off (which means turning poly mode on). |
---|
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
.
mute | the new mute state |
---|
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
.
on | true to turn omni mode on, false to
turn it off. |
---|
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
.
bend | the amount of pitch change, as a nonnegative 14-bit value (8192 = no bend) |
---|
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
.
noteNumber | the MIDI note number, from 0 to 127 (60 = Middle C) |
---|---|
pressure | value for the specified key, from 0 to 127 (127 = maximum pressure) |
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
.
soloState | new solo state for the channel |
---|