2013-10-27 3 views
0

У меня есть проигрыватель Sequence, в котором я просто открываю(), устанавливаю темп и запускаю Midi-файл, где файл Midi на самом деле является основной частью моего проекта (синтаксический анализ строкового файла в музыка часть)Сменные инструменты в javax sound midi Sequencer

Сейчас во всей сложности моего кода, я не могу понять, как изменить инструмент на голос:

миди файлы могут иметь несколько голосов, которые мой секвенсор принимает как множественные примечания к играть сразу. Поэтому, если у меня есть:

Voice: 1 
notes 
Voice: 2 
more notes 

Тогда мой секвенсор будет воспроизводить эти две части одновременно. Возможно, разделение этих двух, чтобы играть на разных инструментах, невозможно, но, по крайней мере, как мне изменить Инструмент для всей последовательности?

+0

* "Сейчас во всей сложности моего кода .." * Для лучшей помощи рано, опубликовать [SSCCE] (http://sscce.org/). –

ответ

0

«Голоса» означают, сколько полифонии может обрабатывать синтезатор.

Если вы хотите воспроизвести другой синтезатор, проще всего изменить номер канала, предполагая, что у вас разные каналы, назначенные для разных инструментов, которые вы хотите услышать.

http://docs.oracle.com/javase/tutorial/sound/MIDI-synth.html

+0

ах, так что вы говорите, что я должен делать синтезаторы вместе с секвенсором? У меня есть один секвенсор, который я питаю поток, и он играет. Есть канал, который я устанавливаю, но его изменение не очень много. Я предполагаю, что у меня отсутствует большой фрагмент информации, но я начинаю получать полную картину того, как это можно сделать. Итак, как я могу изменить канал на моем секвенсере, чтобы играть на разных инструментах? – ZekeDroid

+0

Здесь большой кусок информации, который должен быть изучен, к сожалению, для тех из нас, кто становится нетерпеливым. (Я считаю себя среди таких.) Разумным местом, как и любой, является чтение учебников по Java. «Канал» является частью стандартного MIDI-сообщения, и любой синтезатор, который у вас есть, может быть настроен на ответ на канал. Если разные синтезаторы настроены на разные каналы, вы можете изменить данные канала в последовательности, чтобы ответить на другой синтезатор. Боюсь, что здесь больше, чем я могу объяснить. –

+0

Нет, нет, вы на самом деле более полезны, чем думаете. Вопрос был жестким в том смысле, что есть много информации, которую я не могу предоставить. Я начинаю разбираться в вещах, и вы на самом деле сказали мне, что именно мне нужно. Я попытаюсь интегрировать синтезатор в свой код. Благодаря! – ZekeDroid

Смежные вопросы