МУЗЫКАЛЬНЫЙ ЗВУКОГЕНЕРИРУЮЩИЙ ИНСТРУМЕНТ И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ
MUSICAL SOUND GENERATION INSTRUMENT AND COMPUTER READABLE MEDIUM

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Эта заявка притязает на приоритет заявок, на патент Японии № 2011-084222, поданной 6 апреля 2011, и № 2011-185697, поданной 29 августа 2011, полное содержание которых включено в настоящий документ по ссылке.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Область техники, к которой относится изобретение
Варианты воплощения, описанные здесь, относятся к музыкальному звукогенерирующему инструменту и машиночитаемому носителю, в котором музыкальные звуковые данные, генерируемые путем нажатия клавиш, и сохраненные аудиоданные взаимодействуют друг с другом.
Описание предшествующего уровня техники
Функция, обычно называемая "автоматическим аккомпанементом", хорошо известна в электронных музыкальных инструментах. Согласно типичной функции автоматического аккомпанемента, данные паттерна автоматического аккомпанемента заданной песни (музыкального произведения) сохранены, а музыкальные звуки, составляющие автоматический аккомпанемент, генерируются по мере того, как сохраненные данные последовательно считываются в заданном темпе. Исполнитель играет заданную часть (как правило, мелодию), нажимая клавиши согласно распределению временных интервалов, заданному в песне, при этом слушая автоматический аккомпанемент, посредством чего генерируются все музыкальные звуки песни.
Паттерн автоматического аккомпанемента конфигурируется так, чтобы музыкальные звуки, соответствующие заданным аккордам, генерировались согласно распределению временных интервалов генерации звука заданной последовательности аккомпанемента. Паттерн автоматического аккомпанемента может включать в себя облигатные звуки контрапункта и ритмические звуки.
Такой автоматический аккомпанемент генерирует звуки таким же образом, что и музыкальные звуки, которые генерируются, когда исполнитель манипулирует клавишами. В частности, событие включения воспроизведения ноты включает в себя отправку тона и высоты тона в секцию источника звука согласно распределению временных интервалов генерации звука, указанных последовательностью автоматического аккомпанемента, и секция источника звука читает данные формы волны, то есть читает данные указанного тона со скоростью, соответствующей указанной высоте тона, из постоянного запоминающего устройства (ROM), которое хранит данные формы волны, посредством чего выводятся музыкальные звуковые данные формы волны указанного тона и высоты тона.
В электронном музыкальном инструменте, имеющем такую функцию автоматического аккомпанемента, исполнитель не обязательно искусен в исполнении песни; он или она могут не суметь нажимать клавиши согласно правильному распределению временных интервалов или могут нажимать неверные клавиши. Заявки на патент Японии (JP-A) 2000-206965 и 2007-114539 раскрывают электронные музыкальные инструменты, которые даже в таком случае предотвращают событие, когда только автоматический аккомпанемент независимо идет вперед, путем регулировки чтения данных паттерна автоматического аккомпанемента.
С другой стороны был предложен электронный музыкальный инструмент, который может воспроизводить и музыкальные звуковые данные формы волны, генерируемые секцией источника звука, и аудио данные, принятые из другого аудио устройства, такого как аудио плеер, или аудио данные, полученные путем дискретизации по времени аудиосигнала, принятого микрофоном, и т.п.
Например, можно представить устройство, которое воспроизводит такие аудиоданные как автоматический аккомпанемент и воспроизводит как звуки мелодии музыкальные звуковые данные формы волны, которые генерируются секцией источника звука на основании манипуляций клавишами исполнителем. Так как аудио данные считываются с фиксированной частотой дискретизации, это устройство имеет проблему, состоящую в трудности управления чтением аудио данных так, чтобы это соответствовало игре исполнителя, когда он или она не может нажимать клавиши согласно правильному распределению временных интервалов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задача настоящего изобретения состоит в обеспечении музыкального звукогенерирующего инструмента и машиночитаемого носителя, которые позволяют считывать аудиоданные должным образом согласно манипуляциям клавишами исполнителем, когда аудио данные воспроизводятся как автоматический аккомпанемент. Согласно одному или более иллюстративным аспектам настоящего изобретения обеспечивается музыкальный звукогенерирующий инструмент. Музыкальный звукогенерирующий инструмент содержит: накопитель, сконфигурированный для хранения в нем данных песни и аудио данных, при этом (а) данные песни включают в себя высоту тонов и информацию о времени, указывающую распределение временных интервалов генерации музыкальных звуков песни, и (б) аудио данные являются данными аккомпанемента для песни данных песни; генератор музыкальных звуковых данных, сконфигурированный для генерирования музыкальных звуковых данных заданных музыкальных звуков на основании манипуляций множеством звукоизвлекающих элементов; и проигрыватель аудио данных, сконфигурированный считывать и воспроизводить аудио данные согласно информации о прошедшем времени, полученной с помощью информации о времени, содержащейся в данных песни. Проигрыватель аудио данных содержит: блок оценки манипулирования, сконфигурированный определять, совпадает ли по времени распределение временных интервалов манипулирования одним из звукоизвлекающих элементов с распределением временных интервалов генерации звука данных песни; и контроллер проигрывателя, сконфигурированный (а) изменять положение чтения аудио данных с точки пересечения нуля, соответствующей распределению временных интервалов манипулирования, на точку пересечения нуля, соответствующую распределению временных интервалов генерации звука, и затем (б) считывать и воспроизводить аудиоданные, когда блок оценки манипулирования определяет, что распределение временных интервалов манипулирования не совпадает по времени с распределением временных интервалов генерации звука.
Согласно одному или более иллюстративным аспектам настоящего изобретения обеспечен постоянный машиночитаемый носитель данных, хранящий программу для управления блоком управления музыкального звукогенерирующего инструмента, который включает в себя: (I) накопитель, сконфигурированный хранить в нем данные песни и аудио данные, при этом (а) данные песни включают в себя высоту тона и информацию о времени, указывающую распределение временных интервалов генерации музыкальных звуков песни, и (б) аудио данные являются данными аккомпанемента для песни данных песни; и (II) генератор музыкальных звуковых данных, сконфигурированный генерировать музыкальные звуковые данные заданных музыкальных звуков на основании манипулирования множеством звукоизвлекающих элементов, и программа управляет блоком управления для выполнения функций: (а) определения, совпадает ли по времени распределение временных интервалов манипулирования одним из звукоизвлекающих элементов с распределением временных интервалов генерации звука данных песни; (б) изменения положения чтения аудио данных с точки пересечения нуля, соответствующей распределению временных интервалов манипулирования, на точку пересечения нуля, соответствующую распределению временных интервалов генерации звука; и (в) считывания и воспроизведения аудио данных, когда определено, что распределение временных интервалов манипулирования не совпадает по времени с распределением временных интервалов генерации звука.
Другие аспекты и преимущества настоящего изобретения будут очевидны из следующего описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 показывает внешний вид электронного музыкального инструмента согласно варианту воплощения настоящего изобретения;
фиг. 2 является блок-схемой, показывающей конфигурацию электронного музыкального инструмента согласно варианту воплощения;
фиг. 3 показывает иллюстративную взаимосвязь между данными песни и распределением временных интервалов нажатия клавиш, когда аккомпанемент выполняется согласно варианту воплощения;
фиг. 4 показывает другую иллюстративную взаимосвязь между данными песни и распределением временных интервалов нажатия клавиш, когда аккомпанемент выполняется согласно варианту воплощения;
фиг. 5 показывает другую иллюстративную взаимосвязь между данными песни и распределением временных интервалов нажатия клавиш, когда аккомпанемент выполняется согласно варианту воплощения;
фиг. 6A показывает иллюстративную структуру данных песни согласно варианту воплощения;
фиг. 6B показывает иллюстративную группу регистров для хранения данных, которые устанавливаются в процессе обработки;
фиг. 7A является блок-схемой последовательности операций иллюстративного основного процесса, который выполняется в электронном музыкальном инструменте согласно варианту воплощения;
фиг. 7B является блок-схемой последовательности операций иллюстративного процесса прерывания по таймеру согласно варианту воплощения;
фиг. 8 является блок-схемой последовательности операций, показывающей детали иллюстративного клавиатурного процесса согласно варианту воплощения;
фиг. 9 является блок-схемой последовательности операций иллюстративного обучающего клавиатурного процесса согласно варианту воплощения;
фиг. 10 является блок-схемой последовательности операций иллюстративного песенного процесса согласно варианту воплощения;
фиг. 11 является блок-схемой последовательности операций иллюстративного процесса начала песни согласно варианту воплощения;
фиг. 12 является блок-схемой последовательности операций иллюстративного процесса воспроизведения музыкальных звуков песни согласно варианту воплощения;
фиг. 13 является блок-схемой последовательности операций иллюстративного процесса поиска точек цикла согласно варианту воплощения;
фиг. 14 изображает пример обнаружения точек цикла согласно варианту воплощения;
фиг. 15 является блок-схемой последовательности операций иллюстративного процесса аудио воспроизведения песни согласно варианту воплощения;
фиг. 16A и 16B являются блок-схемами последовательности операций иллюстративных процессов аудио воспроизведения песни согласно варианту воплощения;
фиг. 17 является блок-схемой последовательности операций иллюстративного процесса генерации звука источника звука согласно варианту воплощения;
фиг. 18 показывает иллюстративную взаимосвязь между распределением временных интервалов нажатия клавиши (включением воспроизведения ноты)/отпусканием клавиши (выключением воспроизведения ноты) данных песни и аудиоданными в варианте воплощения;
фиг. 19 показывает иллюстративную взаимосвязь, аналогичную иллюстративной взаимосвязи фиг. 18, в случае, когда исполнитель делает преждевременное нажатие;
фиг. 20 показывает иллюстративную структуру данных песни согласно другому варианту воплощения изобретения; и
фиг. 21 является блок-схемой последовательности операций иллюстративного процесса поиска точек цикла согласно другому варианту воплощения.
ПОДРОБНОЕ ОПИСАНИЕ
Далее будет описан вариант воплощения настоящего изобретения со ссылкой на прилагаемые чертежи. На фиг. 1 показан внешний вид электронного музыкального инструмента 10 согласно варианту воплощения. Как показано на фиг. 1, электронный музыкальный инструмент 10 согласно варианту воплощения оснащен клавиатурой 11. Переключатели 12, 13 и т.д. для указания тона, запуска или остановки аккомпанемента, основанного на аудио данных (см. ниже), и служащие для других целей, и блок 15 индикации для отображения различных видов информации (например, тона или части партитуры), относящейся к песне, которая будет исполняться, расположены позади клавиатуры 11. Электронный музыкальный инструмент 10 согласно варианту воплощения имеет, например, 61 клавишу (C2-C7).
Фиг. 2 является блок-схемой, показывающей конфигурацию электронного музыкального инструмента 10 согласно варианту воплощения изобретения. Как показано на фиг. 2, электронный музыкальный инструмент 10 согласно варианту воплощения оснащен центральным процессором (CPU) 21, постоянным запоминающим устройством (ROM) 22, оперативным запоминающим устройством (RAM) 23, аудио системой 24, клавиатурой 11, входным интерфейсом (I/F) 14, блоком 15 индикации и группой 16 переключателей, включающей вышеупомянутые переключатели 11 и 12.
CPU 21 управляет всем электронным музыкальным инструментом 10 и выполняет различные виды обработки, такие как обнаружение нажатий клавиш клавиатуры 11 или манипулирование переключателем группы 16 переключателей, управление аудио системой 24 в соответствии с манипулированием клавишами или переключателями и аккомпанементом, который основан на аудиоданных.
В ROM 22 хранятся программы различных процессов, выполняемых CPU 21, например процесса, который выполняется в ответ на манипулирование переключателем, генерации музыкального звука в ответ на нажатие клавиши клавиатуры 11, и аккомпанемента, который выполняется согласно аудио данным. ROM 22 имеет область данных форм волн, в которой хранятся данные форм волн для генерации музыкальных звуков различных тонов фортепиано, скрипки, гитары, трубы, кларнета и т.д., область данных песен, в которой хранятся данные песен, включающие данные клавиш, которые необходимо нажимать, и распределение временных интервалов нажатий, и область аудио данных, в которой хранятся аудио данные. В RAM 23 хранятся программы, которые считываются из ROM 22, и данные, которые генерируются во время обработки. RAM 23 также имеет область аудио данных для хранения аудио данных, которые приняты от другого аудио устройства 30 через входной I/F 14. Аудио данные являются, например, данными PCM, полученными посредством дискретизации по времени с заданной частотой дискретизации, значения данных сохраняются последовательно, начиная с начального адреса области аудио данных.
Входной I/F 14 может быть соединен с другим аудио устройством 30 и может принимать аудио данные от другого аудио устройства 30. Аудио данные сохраняются в области аудио данных RAM 23 с помощью CPU 21. Аудио данные увязываются с прошедшим временем, измеренным относительно данных, сохраненных в головном адресе.
Аудио система 24 оснащена секцией 26 источника звука, аудио схемой 27, динамиками 28 и проигрывателем 29 аудио данных. При приеме, например, информации, относящейся к нажатию клавиши или информации, относящейся к паттерну автоматического аккомпанемента, от CPU 12, секция 26 источника звука считывает заданные данные формы волны из области данных форм волн ROM 22, генерирует и выводит данные музыкальных звуков с заданной высотой тона. Секция 26 источника звука может выводить данные формы волны (в частности, данные формы волны, имеющие тон ударного инструмента, такого как малый барабан, большой барабан или тарелки) как они есть как музыкальные звуковые данные. Проигрыватель 29 аудио данных считывает аудио данные, сохраненные в области аудио данных, в соответствии с частотой дискретизации или прошедшими временами, которые основаны на информации о времени, содержащейся в данных песни. Как описано ниже, проигрыватель 29 аудио данных может принять две точки цикла (время начальной точки цикла и время конечной точки цикла) и выполнять воспроизведение цикла аудио данных между этими двумя точками цикла. Аудио схема 27 комбинирует музыкальные звуковые данные и аудио данные, а D/A преобразовывает и усиливает комбинированные данные. Результирующий аудио сигнал выводится из динамиков 28.
0
1
1
2
2
2
2
2
2
2
Фиг. 3-5 показывают иллюстративную взаимосвязь между данными песни и распределением временных интервалов нажатий клавиши, когда аккомпанемент выполняется согласно варианту воплощения. Как показано на фиг. 3, в данных песни для регулярного распределения временных интервалов необходимо нажать клавишу (клавиша нажата) после первой паузы (продолжительностью t), необходимо убрать палец с этой клавиши по прошествии времени t(1), и необходимо нажать следующую клавишу на время t(2) через время t(1). В фактических манипуляциях 320 нажатия клавиш, нажатие первой клавиши и отпускание первой клавиши выполнены правильно. Однако тогда как следующая клавиша должна быть нажата во время T (обозначенное символом 322) после промежутка продолжительностью t(1) с момента отпускания первой клавиши, на самом деле следующая клавиша нажата во время T' (обозначенное символом 321) после промежутка продолжительностью t' (обозначенного символом 310) (t'<t(1)). Таким образом, следующая клавиша нажата раньше на T-T' (=t(1)-t'). Поэтому с этого момента времени и далее необходимо совершать чтение данных песни с опережением на T-T' (обозначено символом 311).
2
2
2
2
Также в примере фиг. 4 в фактических манипуляциях 420 нажатия клавиш нажатие первой клавиши и отпускание первой клавиши выполнены правильно. Однако, в примере фиг. 4 следующая клавиша не нажимается (обозначено символом 410) даже после промежутка продолжительностью t(1) после отпускания первой клавиши. Например, предположим, что как показано на фиг. 5, следующая клавиша нажата во время T'' (обозначенное символом 521) после промежутка продолжительностью t'' (>t(1)) с момента отпускания первой клавиши. В этом случае нажатие следующей клавиши задержано на t''-t(1). Поэтому с этого момента времени и далее необходимо задержать чтение данных песни на t''-t(1) (обозначено символом 512). В период 511 данные, имеющие новый адрес аудио данных, не могут считываться.
Как описано ниже, поскольку в варианте воплощения генерирование музыкальных звуков путем нажатия клавиш выполняется секцией 26 источника звука, аккомпанемент осуществляется путем генерирования аудио данных. Поэтому, как показано на фиг. 3 или 5, если нажатие клавиши произведено раньше или позже, необходимо корректировать считывание аудио данных. В варианте воплощения это выполняется с помощью способа, который будет описан ниже.
Фиг. 6A показывает иллюстративную структуру данных песни согласно варианту воплощения. Фиг. 6B показывает иллюстративную группу 610 регистров для хранения данных, которые задаются в процессе обработки. Как показано на фиг. 6A, данные 600 песни включают в себя записи 601, 603, 605 и т.д. о временах, указывающих продолжительности времени, записи 602 и т.д. о событиях включения воспроизведения ноты, каждая из которых включает в себя высоту тона нажимаемой клавиши, и записи 604 и т.д. о событиях выключения воспроизведения ноты, каждая из которых включает в себя высоту тона клавиши, с которой необходимо убрать палец.
0
0
1
2
Первая запись 601 о времени содержит продолжительность времени t до первого нажатия клавиши. Продолжительность времени t соответствует продолжительности вступления песни. Продолжительности времени t, содержащиеся в записи о времени между предыдущим событием включения воспроизведения ноты и последующим событием выключения воспроизведения ноты, указывают продолжительность нажатия клавиши. Продолжительности времени t, содержащиеся в записи о времени между предыдущим событием выключения воспроизведения ноты и последующим событием включения воспроизведения ноты, указывают продолжительность времени от отпускания некоторой клавиши до нажатия следующей клавиши.
1
2
Как показано на фиг. 6B, группа регистров 610, которая обеспечена в RAM 23, имеет регистр прошедшего времени, регистр информации о времени, регистр информации о текущей высоте тона, регистр информации о следующей высоте тона, регистр прошедшего времени песни, флаг правильной клавиши, регистр состояния и флаг воспроизведения цикла. Регистр прошедшего времени хранит время, прошедшее между песенными процессами. Регистр информации о времени хранит период времени ∆t (=t+t) между событиями включения воспроизведения нот. Регистр информации о текущей высоте тона и регистр информации о следующей высоте тона хранят информацию о высоте тона, которая содержится в записи соответствующего события включения воспроизведения ноты. Регистр прошедшего времени песни хранит время, прошедшее с начала песни. Регистр состояния хранит статус воспроизведения электронного музыкального инструмента 10.
Процессы, которые выполняются в электронном музыкальном инструменте 10 согласно варианту воплощения, будут описаны ниже. Фиг. 7A является блок-схемой последовательности операций иллюстративного основного процесса, который выполняется в электронном музыкальном инструменте 10 согласно варианту воплощения. Фиг. 7B является блок-схемой последовательности операций иллюстративного процесса прерывания по таймеру согласно варианту воплощения. В процессе прерывания по таймеру, в то время как выполняется основной процесс фиг. 7A, число и в счетчике прошедшего времени и в счетчике прошедшего времени песни, которые являются прерывающими счетчиками, увеличивается каждый заданный период времени (этапы 711 и 712). В процессе прерывания по таймеру каждый счетчик может быть остановлен в соответствии с инструкцией от CPU 21.
Как показано на фиг. 7A, при включении питания электронного музыкального инструмента 10, на этапе 701 CPU 21 электронного музыкального инструмента 10 выполняет процесс инициализации, который включает в себя удаление данных, хранившихся в RAM 23, и вывод изображения на экран в блоке индикации 15. На этапе 702 CPU 21 выполняет процесс переключения, то есть обнаруживает манипуляции, если таковые имеются, выполняемые на соответствующих переключателях группы 16 переключателей, и выполняет обработку, соответствующую обнаруженному манипулированию переключателем.
Например, на этапе 702 (процесс переключения) детектируется манипулирование переключателем, указывающим тон, переключателем для указания данных песни для аккомпанемента или переключателем воспроизведения песни. Например, если переключатель воспроизведения песни включен, CPU 21 сохраняет заданное значение в регистре состояния группы 610 регистров. Если переключатель воспроизведения песни выключен, CPU 21 сохраняет значение, указывающее выключенное состояние воспроизведения песни, в регистре состояния.
После завершения этапа 702 (процесс переключения) CPU 21 выполняет клавиатурный процесс на этапе 703. Фиг. 8 является блок-схемой последовательности операций, показывающей детали иллюстративного клавиатурного процесса согласно варианту воплощения. В клавиатурном процессе на этапе 801 CPU 21 сканирует клавиши клавиатуры 11. Событие (событие включения воспроизведения ноты или событие выключения воспроизведения ноты) как результат сканирования клавиш временно сохраняется в RAM 23. На этапе 802 CPU 21 определяет, имело ли место новое событие для некоторой клавиши, путем обращения к результату сканирования клавиш, сохраненному в RAM 23. Если результат определения этапа 802 положителен, на этапе 803 CPU 21 определяет, находится ли статус воспроизведения в состоянии "идет воспроизведение песни" путем обращения к регистру состояния.
Если результат определения этапа 803 положителен, на этапе 804 CPU 21 выполняет обучающий клавиатурный процесс. С другой стороны, если результат определения этапа 803 отрицателен, CPU 21 выполняет обычный клавиатурный процесс на этапе 805. На этапе 805 CPU 21 определяет, является ли клавишное событие включением воспроизведения ноты (нажатие клавиши) или выключением воспроизведения ноты (отпускание клавиши). Если клавишное событие является включением воспроизведения ноты, CPU 21 генерирует событие включения воспроизведения ноты, включающее в себя информацию о высоте тона нажатой клавиши, и выводит ее в секцию 26 источника звука. Если клавишное событие является выключением воспроизведения ноты, CPU 21 генерирует событие выключения воспроизведения ноты, включающее в себя информацию о высоте тона отпущенной клавиши, и выводит ее в секцию 26 источника звука.
Далее будет описан обучающий клавиатурный процесс (этап 804). Фиг. 9 является блок-схемой последовательности операций иллюстративного обучающего клавиатурного процесса согласно варианту воплощения. Как показано на фиг. 9, на этапе 901 CPU 21 определяет, является ли клавишное событие новым включением воспроизведения ноты. Если результат определения этапа 901 является положительным, на этапе 902 CPU 21 генерирует событие включения воспроизведения ноты, включающее в себя информацию о высоте тона нажатой клавиши, и выводит ее в секцию 26 источника звука. Если результат определения этапа 901 отрицателен, на этапе 903 CPU 21 генерирует событие выключения воспроизведения ноты, включающее в себя информацию о высоте тона отпущенной клавиши, и выводит ее в секцию 26 источника звука. Затем обучающий клавиатурный процесс завершается.
После выполнения этапа 902 на этапе 904 CPU 21 определяет, совпадает ли по времени высота тона новой клавиши включения воспроизведения ноты с высотой тона, которая сохранена в регистре информации о следующей высоте тона. Если результат определения этапа 904 отрицателен, обучающий клавиатурный процесс завершается. Если результат определения этапа 904 положителен, на этапе 905 CPU 21 устанавливает флаг правильной клавиши из группы регистров 610, равным "1". Флаг правильной клавиши устанавливается равным "1", если клавиша, которая была нажата исполнителем, совпадает по времени с клавишей, которая должна быть нажата следующей.
На этапе 906 CPU 21 определяет, находятся ли аудио данные как данные аккомпанемента в состоянии воспроизведения цикла. Это может быть выполнено путем определения, равен ли "1" флаг воспроизведения цикла группы 610 регистров. Если результат определения этапа 906 отрицателен, на этапе 907 CPU 21 определяет сдвинутое время начальной точки для преждевременного нажатия. Если результат определения этапа 906 положителен, на этапе 908 CPU 21 определяет сдвинутое время начальной точки для запоздавшего нажатия. Сдвинутое время начальной точки является точкой пересечения нуля заданной фазы (например, изменение значения данных от отрицательного к положительному), которая находится ближе всего к распределению временных интервалов нажатия клавиши со стороны будущего на временной последовательности.
После завершения этапа 703 (клавиатурный процесс) CPU 21 выполняет песенный процесс на этапе 704. Фиг. 10 является блок-схемой последовательности операций иллюстративного песенного процесса согласно варианту воплощения. Как показано на фиг. 10, на этапе 1001 CPU 21 определяет, находится ли статус воспроизведения в состоянии "идет воспроизведение песни" путем обращения к регистру состояния. Если результат определения этапа 1001 отрицателен, на этапе 1002 CPU 21 определяет, находится ли статус воспроизведения в состоянии "начало песни" путем обращения к регистру состояния. Если результат определения этапа 1002 отрицателен, песенный процесс завершается. Если результат определения этапа 1002 положителен, на этапе 1003 CPU 21 выполняет процесс начала песни.
0
0
Фиг. 11 является блок-схемой последовательности операций иллюстративного процесса начала песни согласно варианту воплощения. Как показано на фиг. 11, на этапе 1101 CPU 21 получает продолжительность времени t из головной записи данных песни, которые сохранены в ROM 22. Продолжительность t сохраняется в регистре информации о времени группы 610 регистров как информация о начальном времени ∆t. На этапе 1102 CPU 21 получает событие включения воспроизведения ноты из записи в следующем адресе и сохраняет в регистре информации о текущей высоте тона информацию о высоте тона, содержащуюся в полученном событии включения воспроизведения ноты. На этапе 1103 CPU 21 получает событие включения воспроизведения ноты из следующей записи и сохраняет в регистре информации о следующей высоте тона информацию о высоте тона, содержащуюся в полученном событии следующего включения воспроизведения ноты.
На этапе 1104 CPU 21 разрешает работу счетчика прошедшего времени песни процесса прерывания по таймеру и начинает измерение прошедшего времени песни. На этапе 1105 CPU 21 дает команду проигрывателю 29 аудио данных начать воспроизведение аудио данных. На этапе 1106 CPU 21 сохраняет информацию, указывающую состояние "идет воспроизведение песни" в регистре состояния в качестве статуса воспроизведения.
1
2
1
2
Если результат определения этапа 1001 положителен, на этапе 1004 CPU 21 выполняет процесс воспроизведения музыкальных звуков песни. Фиг. 12 является блок-схемой последовательности операций иллюстративного процесса воспроизведения музыкальных звуков песни согласно варианту воплощения. Как показано на фиг. 12, на этапе 1201 CPU 21 получает значение регистра прошедшего времени. На этапе 1202 CPU 21 определяет, вычислять ли информацию о времени ∆t. Если результат определения этапа 1202 положителен, на этапе 1203 CPU 21 суммирует продолжительность времени t, которая содержится в записи рядом с записью о событии включения воспроизведения ноты для клавиши, нажатой в этот раз, и продолжительность времени t, содержащуюся в записи рядом с записью о событии выключения воспроизведения ноты для той же самой клавиши, и сохраняет значения суммы t+t в регистре информации о времени как информацию о времени ∆t. На этапе 1202 определяется, что период времени ∆t должен быть вычислен, если значения регистра информации о текущей высоте тона и регистра информации о следующей высоте тона были изменены.
На этапе 1204 CPU 21 вычитает прошедшее время из периода времени ∆t. Этапы 1201-1204 служат для определения, достигло ли время, прошедшее с момента времени предыдущего нажатия клавиши (включения воспроизведения ноты), периода времени ∆t и времени следующего нажатия клавиши (включения воспроизведения ноты). Если на этапе 1205 путем обращения к результату этапа 1204 определено, что прошел период времени ∆t со времени предыдущего нажатия клавиши (этап 1205: да), то это означает, что клавиша, которая должна быть нажата следующей, еще не была нажата, хотя время для этого уже пришло. Поэтому если результат определения этапа 1205 положителен, на этапе 1206 CPU 21 выполняет процесс поиска точек цикла.
Фиг. 13 является блок-схемой последовательности операций иллюстративного процесса поиска точек цикла согласно варианту воплощения. Как показано на фиг. 13, на этапе 1301 CPU 21 вычисляет период цикла, который является периодом требуемой высоты тона, на основании информации о текущей высоте тона, хранящейся в регистре информации о текущей высоте тона. Этот период цикла задает основной период цикла аудио данных. На этапе 1302 CPU 21 ищет аудио данные для точки пересечения нуля путем возвращения назад в прошлое от текущего адреса воспроизведения. На этапе 1303 CPU 21 вычисляет средний период между точками пересечения нуля. CPU 21 ищет точки пересечения нуля, имеющие одинаковую фазу. То есть, если точка пересечения нуля, которая найдена первой, является возрастающей точкой пересечения нуля (значение данных изменяется от отрицательного к положительному), то после этого необходимо искать только возрастающие точки пересечения нуля.
На этапе 1304 CPU 21 определяет, находится ли абсолютное значение разности между периодом цикла и средним периодом в пределах допустимого диапазона (то есть меньше, чем заданное пороговое значение). Если результат определения этапа 1304 отрицателен, на этапе 1302 CPU 21 осуществляет поиск аудио данных для следующей точки пересечения нуля путем возвращения еще дальше назад в прошлое на временной последовательности. С другой стороны, если результат определения этапа 1304 положителен, на этапе 1305 CPU 21 сохраняет информацию, указывающую самую последнюю найденную точку пересечения нуля, которая имела абсолютное значение разности в пределах допустимого диапазона, в RAM 23 в качестве начальной точки цикла между точками цикла аудио данных (другой точкой цикла является конец цикла). В варианте воплощения время, соответствующее самой последней найденной точке пересечения нуля (время начальной точки цикла), сохраняется как информация, указывающая начальную точку цикла. Как описано ниже, в варианте воплощения каждый участок регулярного распределения временных интервалов нажатия клавиши совпадает по времени с точкой пересечения нуля заданной фазы (фазы возрастания, изменение значения данных от отрицательного к положительному). Поэтому конечная точка цикла является точкой, соответствующей регулярному распределению временных интервалов нажатия клавиши. Поэтому в варианте воплощения время, соответствующее регулярному распределению временных интервалов нажатия клавиши (время конечной точки цикла), сохраняется в качестве информации, указывающей конечную точку цикла.
Затем, на этапе 1306 CPU 21 устанавливает флаг воспроизведения цикла группы 610 регистров равным "2". Флаг воспроизведения цикла указывает состояние воспроизведения цикла аудио данных. Флаг воспроизведения цикла, равный "2", означает состояние начала воспроизведения цикла. С другой стороны, флаг воспроизведения цикла, равный "1", означает состояние воспроизведения цикла, а флаг воспроизведения цикла, равный "0", означает состояние, в котором не выполняется никакое воспроизведение цикла.
Фиг. 14 изображает пример обнаружения точек цикла согласно варианту воплощения. На фиг. 14 символ 1401 указывает распределение временных интервалов выключения воспроизведения ноты (отпускания клавиши), а символ 1402 указывает правильное распределение временных интервалов следующего включения воспроизведения ноты (нажатия клавиши). Период времени от включения воспроизведения ноты некоторой клавишей до следующего включения воспроизведения ноты равен ∆t (обозначен символом 1400). Символ 1410 обозначает аудио данные для аккомпанемента. Высота тона клавиши, которая уже была нажата, и с которой уже был убран палец, (обозначенная символом 1401) является A4 (=440 Гц), а ее период цикла равен приблизительно 2,27 миллисекунды.
Как видно из фиг. 14, если нажатие клавиши не выполнено фактически при правильном распределении 1402 временных интервалов следующего включения воспроизведения ноты, CPU 21 измеряет периоды между точками пересечения нуля (одинаковой фазы) аудио данных. В первой обработке пара точек пересечения нуля определяется путем возвращения назад в прошлое на временной последовательности от правильного распределения 1420 временных интервалов следующего включения воспроизведения ноты, и средний период формы 1411 волны между этими точками пересечения нуля составляет 2,22 миллисекунды. Например, в варианте воплощения, если пороговое значение для высоты тона A4 составляет 0,01 миллисекунды, то результат определения этапа 1304 (см. фиг. 13) становится отрицательным, потому что |2,27-2,22| больше или равно пороговому значению. На следующем этапе 1302 CPU 21 возвращается еще дальше назад во временной последовательности, посредством чего определяются в общей сложности две пары точек пересечения нуля.
Вычисленный средний период этих двух форм 1411 и 1412 волны между определенными точками пересечения нуля равен 2,245 миллисекундам. Процесс снова возвращается к этапу 1302, потому что |2,27-2,245| все еще больше или равно пороговому значению. На этапе 1302 CPU 21 возвращается еще дальше назад во временной последовательности, посредством чего определяются в общей сложности три пары точек пересечения нуля. Вычисленный средний период этих трех форм 1411-1413 волны между определенными точками пересечения нуля равен 2,263 миллисекундам. Процесс снова возвращается к этапу 1302, потому что |2,27-2,263| все еще больше или равно пороговому значению.
На этапе 1302 CPU 21 возвращается еще дальше назад во временной последовательности, посредством чего определяются в общей сложности четыре пары точек пересечения нуля. Вычисленный средний период этих четырех форм 1411-1414 волны между определенными точками пересечения нуля равен 2,27 миллисекундам. Результат определения этапа 1304 становится положительным, потому что |2,27-2,27| меньше, чем пороговое значение. Период времени 1420, состоящий из этих четырех форм 1411-1414 волны, является периодом времени цикла и его начальная точка 1422 и конечная точка 1421 являются точками цикла. В варианте воплощения начальная точка 1422 и конечная точка 1421 соответствуют времени начальной точки цикла и времени конечной точки цикла соответственно.
Таким образом, получен период времени, имеющий формы волн, средний период которых соответствует высоте тона генерируемого музыкального звука, и эти формы волн в этот период времени неоднократно считываются, посредством чего может выводиться комфортный для исполнителя звук аккомпанемента.
После завершения этапа 1004 (процесс воспроизведения музыкальных звуков песни) CPU 21 выполняет процесс аудио воспроизведения песни на этапе 1005. Фиг. 15 и фиг. 16A и 16B являются блок-схемами последовательности операций иллюстративного процесса аудио воспроизведения песни. Как показано на фиг. 15, на этапе 1501 CPU 21 определяет, равен ли флаг воспроизведения цикла "2". Флаг воспроизведения цикла, равный "2", означает состояние начала воспроизведения цикла. Если результат определения этапа 1501 положителен, процесс переходит к этапу 1611, показанному на фиг. 16B. Если результат определения этапа 1501 отрицателен, на этапе 1502 CPU 21 определяет, равен ли флаг воспроизведения цикла "1". Флаг воспроизведения цикла, равный "1", означает состояние воспроизведения цикла. Если результат определения этапа 1502 положителен, процесс переходит к этапу 1601, показанному на фиг. 16A.
Если результат определения этапа 1502 отрицателен, то есть если флаг воспроизведения цикла равен "0" (воспроизведение цикла не выполняется), на этапе 1503 CPU 21 определяет, равен ли флаг правильной клавиши "1". Если результат определения этапа 1503 отрицателен, процесс аудио воспроизведения песни завершается. Если результат определения этапа 1503 положителен, то это означает, что исполнитель нажал требуемую клавишу раньше ее регулярного распределения временных интервалов нажатия (преждевременное нажатие). В этом случае на этапе 1504 CPU 21 определяет, было ли достигнуто сдвинутое время начальной точки путем обращения к счетчику прошедшего времени. Если результат определения этапа 1504 отрицателен, процесс аудио воспроизведения песни завершен.
Сдвинутое время начальной точки является точкой пересечения нуля, которая находится ближе всего к распределению временных интервалов нажатия клавиши со стороны будущего на временной последовательности. Поэтому в варианте воплощения, точка соединения аудио данных может быть сглажена путем обнаружения точек пересечения нуля. Если результат определения этапа 1504 положителен, на этапе 1505 CPU 21 сбрасывает флаг правильной клавиши к значению, равному "0". На этапе 1506 CPU 21 обновляет прошедшее время песни в соответствии со сдвинутым временем конечной точки. То есть аудио данные могут воспроизводиться так, чтобы иметь гладкую точку соединения и быть скорректированными к преждевременному нажатию исполнителем путем приравнивания сдвинутого времени начальной точки с регулярным распределением временных интервалов нажатия клавиши (которое соответствует сдвинутому времени конечной точки согласно варианту воплощения), которая должна быть нажата следующей. Затем, на этапах 1507-1509 CPU 21 обновляет текущую информацию о высоте тона, информацию о времени ∆t и информацию о следующей высоте тона, соответственно, путем обращения к данным песни.
Далее будет описан процесс, который выполняется, если результат определения этапа 1502 положителен. Если результат определения этапа 1502 положителен, то это означает, что воспроизведение цикла уже началось. В этом случае, на этапе 1601 CPU 21 определяет, равен ли флаг правильной клавиши "1". Если результат определения этапа 1601 отрицателен, процесс аудио воспроизведения песни завершается.
Если результат определения этапа 1601 положителен, то это означает, что исполнитель нажал надлежащую клавишу позже регулярного распределения временных интервалов нажатия клавиши (запоздавшее нажатие). Если результат определения этапа 1601 положителен, на этапе 1602 CPU 21 определяет, было ли достигнуто сдвинутое время начальной точки путем обращения к счетчику прошедшего времени. Если результат определения этапа 1602 отрицателен, процесс аудио воспроизведения песни завершается. Если результат определения этапа 1602 положителен, на этапе 1603 CPU 21 сбрасывает флаг воспроизведения цикла к значению, равному "0". Затем выполняются этапы 1505-1509.
Далее будет описан процесс, который выполняется, если результат определения этапа 1501 положителен. Если результат определения этапа 1501 положителен, на этапе 1611 CPU 21 выдает проигрывателю 29 аудио данных порции информации, указывающие эти две точки цикла (время начальной точки цикла и время конечной точки цикла), которые были установлены на этапе 1305, показанном на фиг. 13. На этапе 1612 CPU 21 останавливает счетчик прошедшего времени песни процесса прерывания по таймеру. На этапе 1613 CPU 21 останавливает счетчик прошедшего времени. Выполнение этапов 1612 и 1613 обусловлено тем, что во время воспроизведения цикла аудио данные воспроизводятся в цикле между временем начальной точки цикла и временем конечной точки цикла, и данные песни дальше не считываются. На этапе 1614 CPU 21 устанавливает флаг воспроизведения цикла, равным "1". Затем процесс 1005 аудио воспроизведения песни завершается.
После завершения песенного процесса (этап 704), CPU 21 выполняет процесс генерации звука источника звука на этапе 705. Фиг. 17 является блок-схемой последовательности операций иллюстративного процесса генерации звука источника звука согласно варианту воплощения. В процессе генерации звука источника звука, показанном на фиг. 17, этапы 1701-1712 выполняются проигрывателем 29 аудио данных в соответствии с инструкциями от CPU 21 и принятыми порциями информации. Этап 1713 выполняется секцией 26 источника звука.
Как показано на фиг. 17, на этапе 1701 проигрыватель 29 аудио данных определяет, равен ли флаг воспроизведения цикла "1". Если результат определения этапа 1701 отрицателен, аудио данные считываются обычным образом. То есть на этапе 1702 проигрыватель 29 аудио данных определяет, было ли достигнуто время чтения данных, которое определяется частотой дискретизации. Если результат определения этапа 1702 положителен, на этапе 1703 проигрыватель 29 аудио данных считывает часть аудио данных на основании адреса чтения данных для аудио данных. На этапе 1704 проигрыватель 29 аудио данных выводит считанные данные в аудио схему 27. На этапе 1705 проигрыватель 29 аудио данных увеличивает адрес чтения данных области аудио данных.
Если результат определения этапа 1701 положителен, на этапе 1706 проигрыватель 29 аудио данных определяет, достиг ли адрес чтения данных для аудио данных значения, соответствующего времени конечной точки цикла. Если результат определения этапа 1706 положителен, на этапе 1707 проигрыватель 29 аудио данных изменяет адрес чтения данных на значение, соответствующее времени начальной точки цикла.
На этапе 1708 проигрыватель 29 аудио данных определяет, было ли достигнуто время чтения данных, которое определяется частотой дискретизации. Если результат определения этапа 1708 положителен, на этапе 1709 проигрыватель 29 аудио данных считывает часть аудио данных на основании адреса чтения данных для аудио данных. На этапе 1710 проигрыватель 29 аудио данных умножает считанные данные на огибающую, которая затухает со временем. На этапе 1711 проигрыватель 29 аудио данных выводит умноженные данные на аудио схему 27. На этапе 1712 проигрыватель 29 аудио данных увеличивает адрес чтения данных области аудио данных.
Когда обычное воспроизведение аудио данных или воспроизведение цикла аудио данных было выполнено вышеописанным способом, на этапе 1713 секция 26 источника звука выполняет процесс генерации звука по музыкальным данным. Естественно, этапы 1701-1712 и этап 1713 могут выполняться параллельно. На этапе 1713 (процесс генерации звука по музыкальным данным), если было принято событие включения воспроизведения ноты от CPU 21, секция 26 источника звука считывает данные формы волны, имеющие тон, который соответствует событию включения воспроизведения ноты, с частотой, которая соответствует событию включения воспроизведения ноты, умножает считанные данные формы волны на заданную огибающую, и выводит умноженные данные на аудио схему 27. Приняв событие выключения воспроизведения ноты, секция 26 источника звука выключает звуковой сигнал данных, имеющих высоту тона, которая соответствует событию выключения воспроизведения ноты.
После завершения процесса генерации звука источника звука (этап 705) CPU 21 выполняет другие процессы (например, вывод на экран изображения в блоке 15 индикации) на этапе 706. Затем основной процесс возвращается к этапу 702.
Фиг. 18 показывает иллюстративную взаимосвязь между распределениями временных интервалов нажатия клавиши (включением воспроизведения ноты)/отпускания клавиши (выключением воспроизведения ноты) данных песни и аудио данных в варианте воплощения. Фиг. 19 показывает аналогичную иллюстративную взаимосвязь в случае, когда исполнитель делает преждевременное нажатие. Как показано на фиг. 18, в варианте воплощения распределение временных интервалов нажатия клавиш данных 1800 песни устанавливаются заранее для синхронизации с точками пересечения нуля (обозначенный символами 1811-1813) заданной фазы (в этом примере, значение данных изменяется от отрицательного к положительному) аудио данных 1810. В этом примере форма 1821 волны между нажатием клавиши (обозначенным символом 1811) при первом регулярном распределении временных интервалов нажатия клавиши и нажатием клавиши (обозначенным символом 1812) при следующем регулярном распределении временных интервалов нажатия клавиши разграничена точками пересечения нуля, имеющими одинаковую фазу. Аналогично, форма 1822 волны между следующей парой нажатий клавиш (обозначенных символами 1812 и 1813) при соответствующих регулярных участках распределения временных интервалов нажатия клавиш ограничена точками пересечения нуля, имеющими одинаковую фазу. Хотя в варианте воплощения каждый участок регулярного распределения временных интервалов нажатия клавиши установлен так, чтобы совпадать по времени с точкой пересечения нуля заданной фазы аудио данных, изобретение не ограничивается таким случаем.
В примере фиг. 19 исполнитель делает первое нажатие клавиши (обозначенное символом 1911) раньше регулярного распределения временных интервалов. В этом случае, в аудио данных ищется ближайшая к распределению временных интервалов нажатия клавиши исполнителя точка пересечения нуля (обозначенная символом 1931) со стороны будущего на временной последовательности. И форма 1941 волны между нажатием клавиши (обозначенным символом 1811 на фиг. 18) при первом регулярном распределении временных интервалов нажатия клавиши и нажатием клавиши (обозначенным символом 1812 на фиг. 18) при следующем регулярном распределении временных интервалов нажатия клавиши соединяется с формой волны перед найденной таким образом точкой пересечения нуля. На фиг. 19 форма 1941 волны между двумя участками 1931 и 1912 распределения временных интервалов такая же, как форма 1821 волны, показанная на фиг. 18, и форма 1942 волны между двумя участками 1912 и 1913 распределения временных интервалов такая же, как форма 1822 волны, показанная на фиг. 18.
Как описано выше в варианте воплощения, если исполнитель делает преждевременное нажатие, то в аудио данных ищется точка пересечения нуля, которая является ближайшей к распределению временных интервалов нажатия клавиши исполнителем со стороны будущего на временной последовательности, и аудио данные, значения которых начинаются с нуля и которые соответствуют регулярным распределением временных интервалов нажатия клавиш, соединяются с формой волны перед найденной таким образом точкой пересечения нуля и затем воспроизводятся. Поэтому даже если нажатие клавиши было сделано раньше регулярного распределения временных интервалов нажатия клавиши, аудио данные считываются так, чтобы быть в соответствии с преждевременным нажатием клавиши. Точка соединения является гладкой, и, следовательно, не генерируется никакой неприятный шум.
Если исполнитель не нажимает клавишу в течение некоторых участков регулярного распределения временных интервалов нажатия клавиши, как описано выше в отношении фиг. 14, аудио данные воспроизводятся в цикле между временем начальной точки цикла (1422) и временем конечной точки цикла (1421), пока нажатие клавиши отсутствует. Если исполнитель затем нажимает требуемую клавишу, адрес чтения аудиоданных переключается с адреса сдвинутого времени начальной точки, которое является самым близким к распределению временных интервалов нажатия клавиши со стороны будущего на временной последовательности, на адрес сдвинутого времени конечной точки, которое является временем, соответствующим регулярному распределению временных интервалов нажатия клавиши. Поэтому, как и в случае преждевременного нажатия клавиши, аудио данные считываются так, чтобы быть в соответствии с запоздавшим нажатием клавиши. Точка соединения является гладкой, и, следовательно, не генерируется никакой неприятный шум.
Хотя в варианте воплощения аудио данные конфигурируются так, чтобы каждый участок регулярного распределения временных интервалов нажатия клавиши совпадал по времени с точкой пересечения нуля заданной фазы, изобретение не ограничивается таким случаем. Там, где аудио данные не сконфигурированы таким образом, точка пересечения нуля заданной фазы, которая является ближайшей к регулярному распределению временных интервалов нажатия требуемой клавиши со стороны будущего на временной последовательности, может использоваться в качестве сдвинутого времени конечной точки.
Если в варианте воплощения определено, что клавиша была нажата раньше ее распределения временных интервалов генерации звука, заданного в данных песни, CPU 21 находит в аудио данных первую точку пересечения нуля заданной фазы, которая является ближайшей к распределению временных интервалов нажатия клавиши в одном направлении на временной последовательности. Затем CPU 21 находит вторую точку пересечения нуля заданной фазы, которая является ближайшей в одном направлении на временной последовательности к регулярному распределению временных интервалов генерации звука данных песни, соответствующих манипуляции нажатия клавиш. CPU 21 выводит информацию о первой точке пересечения нуля и информацию о второй точки пересечения нуля на проигрыватель 29 аудио данных. Проигрыватель 29 аудио данных вызывает скачок адреса считывания аудио данных с адреса первой точки пересечения нуля на адрес второй точки пересечения нуля, а затем продолжается обычное считывание аудио данных.
С помощью этой меры, даже если происходит преждевременное нажатие клавиши, могут воспроизводиться аудио данные, соответствующие регулярному распределению временных интервалов генерации звука (распределению временных интервалов нажатия клавиши), посредством чего может быть предотвращено возникновение отклонения между нажатием клавиши исполнителем и воспроизводимыми аудио данными. Так как считываются аудиоданные, полученные путем соединения точек пересечения нуля, имеющих одинаковую фазу, может быть предотвращено генерирование шума в точке соединения аудио данных.
Когда в варианте воплощения совершается скачок адреса чтения аудиоданных с адреса первой точки пересечения нуля на адрес второй точки пересечения нуля, CPU 21 обновляет прошедшее время на время, основанное на регулярном распределении временных интервалов генерации звука, а проигрыватель 29 аудио данных считывает аудиоданные согласно обновленному прошедшему времени. Таким образом, даже если исполнитель делает преждевременное нажатие клавиши, прошедшее время может быть должным образом скорректировано.
В варианте воплощения CPU 21 находит первую точку пересечения нуля, которая является ближайшей к распределению временных интервалов нажатия клавиши со стороны будущего на временной последовательности, и находит вторую точку пересечения нуля, которая является ближайшей к регулярному распределению временных интервалов генерации звука, соответствующему нажатию клавиши, со стороны будущего на временной последовательности. Нахождение в качестве первой точки пересечения нуля точки пересечения нуля, которая является ближайшей к распределению временных интервалов нажатия клавиши со стороны будущего на временной последовательности, позволяет осуществить надлежащий переход от первой точки пересечения нуля ко второй точке пересечения нуля, принимая во внимание время обработки.
В частности, в варианте воплощения каждый участок распределения временных интервалов генерации звука (распределение временных интервалов нажатия клавиши) данных песни соответствует точке пересечения нуля, имеющей заданную фазу аудио данных. CPU 21 обнаруживает вторую точку пересечения нуля заданной фазы, которая соответствует регулярному распределению временных интервалов генерации звука (распределению временных интервалов нажатия клавиши). Это позволяет легко обнаружить второе распределение временных интервалов нажатия клавиши.
Изобретение не ограничивается вышеупомянутым вариантом воплощения. Например, в варианте воплощения определяется множество форм волн, чей средний период приблизительно равен периоду цикла, который вычисляется на основании информации о высоте тона (текущей информации о высоте тона) генерируемого музыкального звука. Однако изобретение ограничивается таким случаем. Например, если данные песни связаны с названиями аккордов, средний период форм волн аудио данных может сравниваться с периодом цикла, который вычисляется на основании основного тона аккорда, который соответствует генерируемому музыкальному звуку.
Фиг. 20 показывает иллюстративную структуру данных песни согласно другому варианту воплощения изобретения. Как показано на фиг. 20, в этом варианте воплощения обеспечены записи частей аккордовой информации 2002, 2012 и т.д. так, чтобы соотноситься с записями 2001, 2011 и т.д. событий включения воспроизведения нот данных 2000 песни, соответственно. Каждая часть аккордовой информации включает в себя информацию, указывающую основной тон, например CM7, Cm7, Am7, D7 и т.п.
Фиг. 21 является блок-схемой последовательности операций иллюстративного процесса поиска точки цикла согласно этому варианту воплощения. Как показано на фиг. 21, на этапе 2101 CPU 21 получает из данных песни аккордовую информацию, которая согласуется с информацией о текущей высоте тона в регистре информации о текущей высоте тона. На этапе 2102 CPU 21 вычисляет период цикла, который является периодом основного тона, содержащегося в полученной аккордовой информации. Например, если основной тон аккордовой информации A, как в случае AM7, Am7 и т.п., период вычисляется на основании высоты тона A3 (220 Гц) и равен 4,5454 миллисекунды. В этом варианте воплощения период цикла вычисляется на основании относительно низкой высоты тона, принимая во внимание октавы.
Этапы 2103 и 2104 являются такими же, как этапы 1302 и 1303, показанные на фиг. 13. На этапе 2105 CPU 21 определяет, находится ли абсолютное значение разности между периодом цикла и средним периодом, умноженным на n (n=1, 2, 4) в пределах допустимого диапазона (то есть меньше заданного порогового значения). На этапе 2105 учитывается вероятность, что требуемый музыкальный звук аудио данных на одну или две октавы выше, чем основной тон.
Если результат определения этапа 2105 отрицателен, CPU 21 осуществляет поиск аудио данных для следующей точки пересечения нуля путем возвращения еще дальше назад в прошлое на временной последовательности. С другой стороны, если результат определения этапа 2105 положителен, на этапе 2106 CPU 21 сохраняет информацию, указывающую самую последнюю найденную точку пересечения нуля, которая имела абсолютное значение разности в пределах допустимого диапазона, в RAM 23 в качестве начальной точки цикла между точками цикла аудио данных. На этапе 2107 CPU 21 устанавливает флаг воспроизведения цикла, равным "2".
Хотя настоящее изобретение было показано и описано со ссылкой на его некоторые иллюстративные варианты воплощения, специалистам в области техники будет понятно, что в него могут быть внесены различные изменения в форме и деталях, не отступая от духа и объема изобретения, как это определено в прилагаемой формуле изобретения. Поэтому целью является охват в прилагаемой формуле изобретения всех таких изменений и модификаций как попадающих в объем и истинный дух настоящего изобретения.