1 import javax.sound.midi.*;
4 import java.awt.event.*;
7 * A Combo Box where the instrument of the currently active channel can be selected.
9 * @author Einar Pehrson, Michael Andreen
12 public class MooInstrumentList extends JComboBox implements ActionListener {
14 protected int channel;
17 * Creates the instrument list.
18 * @param chan The channel it will operate on.
20 public MooInstrumentList(int chan) {
23 setFont(new Font("Helvetica", Font.PLAIN, 10));
24 addActionListener(this);
28 * Sets the channel that it will operate on.
30 public void setChannel(int chan) {
32 setSelectedIndex(Moosique.getChannel(channel).getProgram());
36 * Sets the instrument on a channel when it's changed in the combobox.
38 public void actionPerformed(ActionEvent e) {
39 JComboBox box = (JComboBox)e.getSource();
40 int instrument = box.getSelectedIndex();
41 Moosique.getChannel(channel).programChange(instrument);
45 * The list with standard midi instruments.
47 public static final String[] instruments = {
48 " 0 Acoustic Grand Piano",
49 " 1 Bright Acoustic Piano",
50 " 2 Electric Grand Piano",
51 " 3 Honky-Tonk Piano",
65 " 17 Percussive Organ",
71 " 23 Tango Accordion",
72 " 24 Acoustic Nylon Guitar",
73 " 25 Acoustic Steel Guitar",
74 " 26 Electric Jazz Guitar",
75 " 27 Electric Clean Guitar",
76 " 28 Electric Muted Guitar",
77 " 29 Overdriven Guitar",
78 " 30 Distortion Guitar",
79 " 31 Guitar Harmonics",
81 " 33 Electric Bass Fingered",
82 " 34 Electric Bass Picked",
92 " 44 Tremolo Strings",
93 " 45 Pizzicato Strings",
94 " 46 Orchestral Harp",
96 " 48 String Ensemble 1",
97 " 49 String Ensemble 2",
98 " 50 Synth Strings 1",
99 " 51 Synth Strings 2",
103 " 55 Orchestral Hit",
128 " 80 Synth Lead 1 Square Wave Lead",
129 " 81 Synth Lead 2 Sawtooth Wave Lead",
130 " 82 Synth Lead 3 Caliope Lead",
131 " 83 Synth Lead 4 Chiff Lead",
132 " 84 Synth Lead 5 Charang",
133 " 85 Synth Lead 6 Solo Synth Voice",
134 " 86 Synth Lead 7 Bright Saw Wave",
135 " 87 Synth Lead 8 Brass and Lead",
136 " 88 Synth Pad 1 Fantasia Pad",
137 " 89 Synth Pad 2 Warm Pad",
138 " 90 Synth Pad 3 Poly Synth Pad",
139 " 91 Synth Pad 4 Space Voice Pad",
140 " 92 Synth Pad 5 Bowed Glass Pad",
141 " 93 Synth Pad 6 Metal Pad",
142 " 94 Synth Pad 7 Halo Pad",
143 " 95 Synth Pad 8 Sweep Pad",
144 " 96 Synth SFX 1 Ice Rain",
145 " 97 Synth SFX 2 Sound Track",
146 " 98 Synth SFX 3 Crystal",
147 " 99 Synth SFX 4 Atmosphere",
148 " 100 Synth SFX 5 Brightness",
149 " 101 Synth SFX 6 Goblin",
150 " 102 Synth SFX 7 Echo Drops",
151 " 103 Synth SFX 8 Star Theme",
167 " 119 Reverse Cymbal",
168 " 120 Guitar Fret Noise",
172 " 124 Telephone Ring",