📄 dssisynthesizer.java
字号:
{ // TODO Auto-generated method stub return 0; } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#resetAllControllers() */ public void resetAllControllers() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#allNotesOff() */ public void allNotesOff() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#allSoundOff() */ public void allSoundOff() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#localControl(boolean) */ public boolean localControl(boolean on) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#setMono(boolean) */ public void setMono(boolean on) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#getMono() */ public boolean getMono() { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#setOmni(boolean) */ public void setOmni(boolean on) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#getOmni() */ public boolean getOmni() { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#setMute(boolean) */ public void setMute(boolean mute) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#getMute() */ public boolean getMute() { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#setSolo(boolean) */ public void setSolo(boolean solo) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.MidiChannel#getSolo() */ public boolean getSolo() { // TODO Auto-generated method stub return false; } } long sohandle; long handle; private Info info; MidiChannel channels[] = new MidiChannel[16]; // The list of known soundbanks, and the default one. List soundbanks = new ArrayList(); DSSISoundbank defaultSoundbank; /** * Create a DSSI Synthesizer. * * @param info the DSSIInfo for this soft-synth * @param soname the name of the .so file for this DSSI synth * @param index the DSSI index for this soft-synth */ public DSSISynthesizer(Info info, String soname, long index) { super(); this.info = info; sohandle = DSSIMidiDeviceProvider.dlopen_(soname); handle = DSSIMidiDeviceProvider.getDSSIHandle_(sohandle, index); channels[0] = new DSSIMidiChannel(0); defaultSoundbank = new DSSISoundbank("name", "description", "vendor", "version"); soundbanks.add(defaultSoundbank); int i = 0; String name; do { name = getProgramName_(sohandle, i); if (name != null) { defaultSoundbank. add(new DSSIInstrument(defaultSoundbank, new Patch(getProgramBank_(sohandle, i), getProgramProgram_(sohandle, i)), name)); i++; } } while (name != null); } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#getMaxPolyphony() */ public int getMaxPolyphony() { // TODO Auto-generated method stub return 0; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#getLatency() */ public long getLatency() { // DSSI and LADSPA provide no way to determine the latency. // Let's just return 0 for now. return 0; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#getChannels() */ public MidiChannel[] getChannels() { return channels; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#getVoiceStatus() */ public VoiceStatus[] getVoiceStatus() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#isSoundbankSupported(javax.sound.midi.Soundbank) */ public boolean isSoundbankSupported(Soundbank soundbank) { // TODO Auto-generated method stub return false; } /* @see javax.sound.midi.Synthesizer#loadInstrument(javax.sound.midi.Instrument) */ public boolean loadInstrument(Instrument instrument) { // FIXME: perhaps this isn't quite right. It can probably // be in any soundbank. if (instrument.getSoundbank() != defaultSoundbank) throw new IllegalArgumentException ("Synthesizer doesn't support this instrument's soundbank"); Patch patch = instrument.getPatch(); selectProgram_(sohandle, patch.getBank(), patch.getProgram()); return true; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#unloadInstrument(javax.sound.midi.Instrument) */ public void unloadInstrument(Instrument instrument) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument) */ public boolean remapInstrument(Instrument from, Instrument to) { // TODO Auto-generated method stub return false; } /* @see javax.sound.midi.Synthesizer#getDefaultSoundbank() */ public Soundbank getDefaultSoundbank() { return defaultSoundbank; } /* @see javax.sound.midi.Synthesizer#getAvailableInstruments() */ public Instrument[] getAvailableInstruments() { List instruments = new ArrayList(); Iterator itr = soundbanks.iterator(); while (itr.hasNext()) { Soundbank sb = (Soundbank) itr.next(); Instrument ins[] = sb.getInstruments(); for (int i = 0; i < ins.length; i++) instruments.add(ins[i]); } return (Instrument[]) instruments.toArray(new Instrument[instruments.size()]); } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#getLoadedInstruments() */ public Instrument[] getLoadedInstruments() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#loadAllInstruments(javax.sound.midi.Soundbank) */ public boolean loadAllInstruments(Soundbank soundbank) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#unloadAllInstruments(javax.sound.midi.Soundbank) */ public void unloadAllInstruments(Soundbank soundbank) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) */ public boolean loadInstruments(Soundbank soundbank, Patch[] patchList) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.Synthesizer#unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) */ public void unloadInstruments(Soundbank soundbank, Patch[] patchList) { // TODO Auto-generated method stub } /* @see javax.sound.midi.MidiDevice#getDeviceInfo() */ public Info getDeviceInfo() { return info; } /* @see javax.sound.midi.MidiDevice#open() */ public void open() throws MidiUnavailableException { open_(sohandle); } /* @see javax.sound.midi.MidiDevice#close() */ public void close() { close_(sohandle); } /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#isOpen() */ public boolean isOpen() { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#getMicrosecondPosition() */ public long getMicrosecondPosition() { // TODO Auto-generated method stub return 0; } /* @see javax.sound.midi.MidiDevice#getMaxReceivers() */ public int getMaxReceivers() { return 1; } /* @see javax.sound.midi.MidiDevice#getMaxTransmitters() */ public int getMaxTransmitters() { return 0; } /* @see javax.sound.midi.MidiDevice#getReceiver() */ public Receiver getReceiver() throws MidiUnavailableException { return new DSSIReceiver(); } /* @see javax.sound.midi.MidiDevice#getTransmitter() */ public Transmitter getTransmitter() throws MidiUnavailableException { return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -