Class MidiIO_JavaSound

java.lang.Object
com.softsynth.jmsl.midi.MidiIO
com.softsynth.jmsl.midi.MidiIO_JavaSound
All Implemented Interfaces:
Editable, MusicDevice

public class MidiIO_JavaSound
extends MidiIO
Uses Sun's JavaSound package to provide MIDI output nad input. MOD 4/14/08 Supports external MIDI devices. MidiIO_JavaSound is now the default JMSL.midi MOD 2015-12-03 adding support for external Midi input devices. No more need for MidiShare.
Author:
Phil Burk and Nick Didkovsky
  • Method Details

    • instance

      public static MidiIO_JavaSound instance()
      Returns:
      singleton instance of this class
    • openDevices

      public boolean openDevices​(int inDevice, int outDevice)
      Specified by:
      openDevices in class MidiIO
    • initFromSoundbank

      public void initFromSoundbank()
      This is called automatically if MidiSystem.getSynthesizer().getDefaultSoundbank() is NULL and a soundban has been successfully loaded from a File or a URL. But you can call this directly after openDevices()
      Parameters:
      sb -
    • getLoadedSoundbankInstruments

      public javax.sound.midi.Instrument[] getLoadedSoundbankInstruments()
    • closeDevices

      public boolean closeDevices()
      Specified by:
      closeDevices in class MidiIO
    • sendMessage

      public void sendMessage​(int status, int data1, int data2)
      Specified by:
      sendMessage in class MidiIO
    • sendMessage

      public void sendMessage​(double timeStamp, int status, int data1, int data2)
      Use EventScheduler because this device does not currently support timestamped output. UPDATE: Gervill supports timestamped output under Windows but not OSX. We will support real timestamped output when both platforms support it
      Specified by:
      sendMessage in class MidiIO
    • getDeviceNames

      public java.lang.String[] getDeviceNames​(boolean inputDevices)
    • getOutputDeviceNames

      public java.lang.String[] getOutputDeviceNames()
      Specified by:
      getOutputDeviceNames in class MidiIO
    • getInputDeviceNames

      public java.lang.String[] getInputDeviceNames()
      Specified by:
      getInputDeviceNames in class MidiIO
    • startListening

      public void startListening()
      Specified by:
      startListening in class MidiIO
    • stopListening

      public void stopListening()
      Specified by:
      stopListening in class MidiIO
    • sysex

      public void sysex​(double timeStamp, byte[] data)
      Not implemented
      Specified by:
      sysex in class MidiIO
    • main

      public static void main​(java.lang.String[] args)
    • synchClocks

      public void synchClocks()
      unimplemented
      Specified by:
      synchClocks in class MidiIO
      See Also:
      MidiIO.synchClocks()
    • getSoundbankFile

      public java.io.File getSoundbankFile()
      Returns:
      Returns the soundbankFile.
    • setSoundbankFile

      public void setSoundbankFile​(java.io.File soundbankFile)
      if the synthesizer's soundbank is null in opendevices() and JMSL.isApplet() is false, try to load a soundbank from this File
      Parameters:
      soundbankFile - The soundbankFile to set.
    • getSoundbankURL

      public java.net.URL getSoundbankURL()
      Returns:
      Returns the soundbankURL.
    • setSoundbankURL

      public void setSoundbankURL​(java.net.URL soundbankURL)
      *If the synthesizer's soundbank is null in opendevices() and JMSL.isApplet() is true, try to load a soundbank from this URL
      Parameters:
      soundbankURL - The soundbankURL to set.