Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Но чаще она обращается к хранящимся в ней «банкам данных» образцов звучания настоящих инструментов. (Возможно комбинирование этих двух способов)«Чаще»? Нету такого нигде, имхо. Впрочем, как и
смоделировать звучание инструмента совокупностью нескольких FM (частотных) генераторовВ большинстве современных карт синтезаторы используются исключительно полностью софтовые уж много-много лет. Вообще, думаю, что в обычных картах во всех. Хотя, может остались какие-то эксклюзивные исключения.
Звуковая карта может служить музыкальным синтезатором, способном воспроизводить звучания до 128-ми различных музыкальных инструментов. Качество и принцип имитации инструментов зависит от вашей звуковой карты.и типа есть два варианта: либо она генерирует их частотным генератором, либо использует какие-то там «банки данных» находящиеся на ней. Да, было такое кое-где, но сейчас на деле карты вообще этим не занимаются, всё генерируется софтом вне её. Например, описываемый в статье javax.sound.midi использует программный синтезатор встроенный в JRE, емнип.
И хоть уже 2014-ый год, но звуковые платы по прежнему предоставляют эту возможностьВы почему-то настойчиво игнорируете то что я написал выше. Не знают в 2014 году карты ни о каком миди. Ваши звуки из примеров генерируются программным синтезатором. Вы сами проверьте экземпляр какого класса реализующего Synthesizer получается этим вашим кодом:
Synthesizer synth = MidiSystem.getSynthesizer();Synthesizer — это java интерфейс.Именно потому я и написал:
экземпляр какого класса реализующего Synthesizer
ссылку на информацию, каким образом java api само синтезирует midi звучаниеТаким же образом, как весь остальной софт. У меня нет подробной информации как устроен синтезатор именно в JRE, изучение исходников в помощь, например.
Но в любом случае — даже программно можно прямо из java загружать готовые семплы SoundFont и воспроизводить, не синтезируя.Да, можно, но до звуковой карты они не доходят. И всего что написано мной выше это не отменяет.
Не вижу связи javax.sound.midi.Synthesizer с com.sun.media.sound.SoftSynthesizer.А я не вижу что тут непонятного и с чем именно вы спорите. Я же ссылку на исходник даже дал. Прямо таки вот вообще никакой связи не видите? Меж тем связь тут самая прямая — класс
com.sun.media.sound.SoftSynthesizer имплементирует javax.sound.midi.Synthesizer. И этот же самый com.sun.media.sound.SoftSynthesizer возвращается вашим же кодомSynthesizer synth = MidiSystem.getSynthesizer();Но существует и другой вид компьютерного звука — синтезированный (MIDI)
Воспроизведение MIDI звуков на языке JAVA