From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/Listing4904.java | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/Listing4904.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/Listing4904.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/Listing4904.java b/Master/Reference Architectures and Patterns/hjp5/examples/Listing4904.java new file mode 100644 index 0000000..7aff2cd --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/Listing4904.java @@ -0,0 +1,51 @@ +/* Listing4904.java */ + +import java.io.*; +import javax.sound.midi.*; + +public class Listing4904 +{ + private static void playMidiFile(String name) + throws Exception + { + //Sequencer und Synthesizer initialisieren + Sequencer sequencer = MidiSystem.getSequencer(); + Transmitter trans = sequencer.getTransmitter(); + Synthesizer synth = MidiSystem.getSynthesizer(); + Receiver rcvr = synth.getReceiver(); + //Beide öffnen und verbinden + sequencer.open(); + synth.open(); + trans.setReceiver(rcvr); + //Sequence lesen und abspielen + Sequence seq = MidiSystem.getSequence(new File(name)); + sequencer.setSequence(seq); + sequencer.setTempoInBPM(145); + sequencer.start(); + while (true) { + try { + Thread.sleep(100); + } catch (Exception e) { + //nothing + } + if (!sequencer.isRunning()) { + break; + } + } + //Sequencer anhalten und Geräte schließen + sequencer.stop(); + sequencer.close(); + synth.close(); + } + + public static void main(String[] args) + { + try { + playMidiFile(args[0]); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + System.exit(0); + } +} \ No newline at end of file -- cgit v1.2.3