From d282c570fb1a87da299fc9bc72009ae3a8607f68 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Thu, 11 Apr 2024 11:47:42 -0400 Subject: [PATCH] Add FrenchHornDemo to test sound on the conference (cherry picked from commit 1adcaf46a418866f1cfa540c7e9ea31997edc736) --- .../example/teahouse/tea/FrenchHornDemo.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tea-service/src/main/java/org/example/teahouse/tea/FrenchHornDemo.java diff --git a/tea-service/src/main/java/org/example/teahouse/tea/FrenchHornDemo.java b/tea-service/src/main/java/org/example/teahouse/tea/FrenchHornDemo.java new file mode 100644 index 0000000..25df254 --- /dev/null +++ b/tea-service/src/main/java/org/example/teahouse/tea/FrenchHornDemo.java @@ -0,0 +1,26 @@ +package org.example.teahouse.tea; + +import javax.sound.midi.MidiChannel; +import javax.sound.midi.MidiSystem; +import javax.sound.midi.MidiUnavailableException; +import javax.sound.midi.Synthesizer; + +public class FrenchHornDemo { + public static void main(String[] args) throws MidiUnavailableException, InterruptedException { + Synthesizer synthesizer = MidiSystem.getSynthesizer(); + synthesizer.open(); + MidiChannel channel = synthesizer.getChannels()[0]; + // French Horn is bank #0 preset #60 + channel.programChange(synthesizer.getAvailableInstruments()[60].getPatch().getProgram()); + + // C4 (middle C) + int note = 60; + try { + channel.noteOn(note, 90); + Thread.sleep(1_000); + } + finally { + channel.noteOff(note); + } + } +}