سؤال

هناك صوت رائع حقا "لعبة" Tonematrix.. وبعد أرغب في إعادة استخدامها كأبراح جافا. لقد حاولت استخدام JFugue.player.play مع الملاحظات الفردية للصوت و Thread.sleep للتوقيت، ولكن النتائج فظيعة.

توقف JFugue عن الاستجابة بعد ال 17 (نعم، حقا، أحسب) player.play و Thread.sleep غير منتظم للغاية لتقديم إيقاع جيد.

ماذا تنصح بدلا من ذلك؟ في الأساس، أبحث عن طريقة بسيطة لتوليد ملاحظات واحدة من الصوت على الطاير. لذلك من المقرر أن يلعب جزء صغير من الثانية قبل الصوت، أحتاج إلى أن أكون قادرا على إلقاء نظرة على البيانات وإخبار مكتبة الصوت التي تلعبها. (ملاحظات متعددة في الوئام من المحتمل.)

هل كانت مفيدة؟

المحلول

تخميني هو أنك نسيت لتشغيل الملاحظات في JFugue، أو هناك خطأ نسيان التوقف عن تشغيل الملاحظات مرة واحدة.

استخدام MIDI هو وسيلة سهلة جدا للقيام بما تتحدث عنه. إليك القليل من HodgePodge من الأساليب المفيدة في حزمة MIDI التي ستبدأ:

Synthesizer synth = MidiSystem.getSynthesizer();
synth.open();
MidiChannel midiChannel = synth.getChannels()[0];
midiChannel.allNotesOff();
currentInstrument = synth.getAvailableInstruments()[index];
System.out.println("Switching instrument to #" + index + ": " + currentInstrument.getName());
synth.loadInstrument(currentInstrument);
midiChannel.programChange(currentInstrument.getPatch().getBank(), currentInstrument.getPatch().getProgram());
midiChannel.noteOn(noteNumber, velocity);
midiChannel.noteOff(noteNumber);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top