Часто в приложениях желательно использовать какие-то вспомогательные звуковые эффекты, например пикнуть динамиком при ошибке или проиграть мелодию на новое письмо.
Не все знают что в любом компьютере имеющем звуковую карту встроена большая библиотека звуков. Все звуковые платы поддерживают воспроизведение звука по стандарту MIDI (см. ru.wikipedia.org/wiki/MIDI) а это 128 обычных и 40 ударных инструментов.
Что такое MIDI — это стандарт на команды управления синтезатором или другими устройствами воспроизведения звука. Т.е. в .mp3, например, хранится оцифрованный звук а в файлах .mid только ноты которые воспроизводит звуковая карта.
Я опубликовал библиотеку для простого доступа к воспроизведению MIDI-звука:
Исходный код с примером использования а так же скомпилированную библиотеку можно скачать на странице http://code.google.com/p/easy-midi/
Преимущества MIDI: есть в любом компе, содержит 128 обычных и 40 ударных инструментов воспроизводится муз.сопроцессором и не влияет на производительность воспроизводимую музыку можно интерактивно менять (если понимать чем диез от бемоля отличается).
Недостатки: звучание полностью зависит от звуковой карты и на разных компах может отличаться.
Пример простого вызова (играет в отдельном потоке):
Названия нот и обычных инструментов для удобства заданы константами в файле Note.java, названия ударных инструментов в файле Drum.java.
Кроме воспроизведения отдельных нот, с помощью библиотеки можно проигрывать и небольшие музыкальные фрагменты. Пример небольшого риффа
Tools — содержит методы playNote и playDrum для воспроизведения единичных звуков
Ticker — проигрыватель фраз
Phrase — музыкальная фраза, содержит набор аккордов
Chord — аккорд, содержит высоту и длительность нот обычных и ударных инструментов аккорда
Drum — описание ударного инструмента в аккорде
Note — описание обычного инструмента в аккорде
Не все знают что в любом компьютере имеющем звуковую карту встроена большая библиотека звуков. Все звуковые платы поддерживают воспроизведение звука по стандарту MIDI (см. ru.wikipedia.org/wiki/MIDI) а это 128 обычных и 40 ударных инструментов.
Что такое MIDI — это стандарт на команды управления синтезатором или другими устройствами воспроизведения звука. Т.е. в .mp3, например, хранится оцифрованный звук а в файлах .mid только ноты которые воспроизводит звуковая карта.
Я опубликовал библиотеку для простого доступа к воспроизведению MIDI-звука:
Исходный код с примером использования а так же скомпилированную библиотеку можно скачать на странице http://code.google.com/p/easy-midi/
Преимущества MIDI: есть в любом компе, содержит 128 обычных и 40 ударных инструментов воспроизводится муз.сопроцессором и не влияет на производительность воспроизводимую музыку можно интерактивно менять (если понимать чем диез от бемоля отличается).
Недостатки: звучание полностью зависит от звуковой карты и на разных компах может отличаться.
Пример простого вызова (играет в отдельном потоке):
Tools.playNote(Note.p93_7_La, Note.i127_Gunshot,127, 2000);
Tools.playDrum(Drum.d39_Hand_Clap, 127, 2000);
Названия нот и обычных инструментов для удобства заданы константами в файле Note.java, названия ударных инструментов в файле Drum.java.
Кроме воспроизведения отдельных нот, с помощью библиотеки можно проигрывать и небольшие музыкальные фрагменты. Пример небольшого риффа
int bassVoice=Note.i33_Electric_Bass_finger;
Drum hat=new Drum(4, Drum.d42_Closed_Hi_Hat,64);
Drum snare=new Drum(4, Drum.d38_Acoustic_Snare);
Drum bass=new Drum(4, Drum.d35_Acoustic_Bass_Drum);
Phrase p1=new Phrase()
.chord(new Chord(8).drum(hat).drum(bass) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat).drum(snare) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat).drum(bass) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat).drum(bass) .note(8, Note.p28_2_Mi, bassVoice))
.chord(new Chord(8).drum(hat).drum(snare) .note(8, Note.p34_2_La_Diese, bassVoice))
.chord(new Chord(8).drum(hat) .note(8, Note.p35_2_Si, bassVoice))
;
Ticker ti = new Ticker(120, p1);
ti.restart();
Описание классов
Tools — содержит методы playNote и playDrum для воспроизведения единичных звуков
Ticker — проигрыватель фраз
Phrase — музыкальная фраза, содержит набор аккордов
Chord — аккорд, содержит высоту и длительность нот обычных и ударных инструментов аккорда
Drum — описание ударного инструмента в аккорде
Note — описание обычного инструмента в аккорде