Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Replace default Java Sound Synthesizer with Microsoft GS Wavetable Synth

843802Apr 24 2010
Because of the severe latency of the Java MIDI Sound Synthesizer (>70ms), I would like to try to replace it with the system midi synthesizer which is called Microsoft GS Wavetable Synth on my Windows 7/32 bit system with Sound Max motherboard sound. Does anyone know if this would reduce latency, and if so, specifically how to do this?

My system uses the following to list the Midi providers
private void open() throws MidiUnavailableException {
synth = MidiSystem.getSynthesizer();
MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
MidiDevice.Info msInfo = null;
StringBuilder sb = new StringBuilder();
sb.append("Available MidiDevice are\n");
for (MidiDevice.Info i : infos) {
if (i.toString().contains("Microsoft GS Wavetable Synth")) {
msInfo = i;
sb.append(" *****");
}
sb.append("\t"  +i.toString()+  ": "  +i.getDescription()+  '\n');
}
MidiDevice msDevice = MidiSystem.getMidiDevice(msInfo);
synth.open();

sb.append("synth="  +synth.getDeviceInfo().toString()+  " with default soundbank "  +synth.getDefaultSoundbank().getDescription()+  '\n');
sb.append("max synthesizer latency ="  +synth.getLatency()+  " us\n");
log.info(sb.toString());
channels = synth.getChannels();
channel = channels[PERCUSSION_CHANNEL];
}
and it prints the following
INFO: Available MidiDevice are
        Microsoft MIDI Mapper: Windows MIDI_MAPPER
 *****        Microsoft GS Wavetable Synth: Internal software synthesizer
        Real Time Sequencer: Software sequencer
        Java Sound Synthesizer: Software wavetable synthesizer and receiver
synth=Java Sound Synthesizer with default soundbank Soundbank for use with Java Sound Audio Engine
max synthesizer latency =69660 us
I cannot figure out how to replace the Java Sound Synthesizer with the Microsoft (Roland) synthesizer. I've tried getTransmitter().setReceiver() etc but nothing seems to work.

Comments

SmithJohn45

can you give some " sample data " like this:

with t as (Select 'account01' as account_name, '1990' as year, 'Jan' as month from dual
           Select 'account02' as account_name, '2000' as year, 'Feb' as month from dual
)
select ( your query here ) from t;

the seniors can help after checking the actual results of your query will return.
Help seniors to help yourself...

Stax
SQL> ed
Wrote file afiedt.buf


  1  with t (account_name,year,month,sal) as (
  2   select 'u1','2022','January',150 from dual union all
  3   select 'u1','2022','February',200 from dual union all
  4   select 'u1','2022','March',300 from dual
  5  )
  6  select
  7    t.*
  8   ,sum(sal) over (partition by account_name order by  to_date(month||year,'MonthYYYY','NLS_DATE_LANGUAGE=AMERICAN')) ssal
  9* from t
SQL> /


AC YEAR MONTH           SAL       SSAL
-- ---- -------- ---------- ----------
u1 2022 January         150        150
u1 2022 February        200        350
u1 2022 March           300        650


1 - 2
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on May 22 2010
Added on Apr 24 2010
0 comments
456 views