Casio - aibolem/00 GitHub Wiki

E:\Users*****\Pictures\Solar Audio\casio

Некоторые модели клавиатур Casio имели ручку со штрих-кодом, которая позволяла загружать музыку на клавиатуру путем сканирования страниц штрих-кодов. В этом документе описывается формат этих штрих-кодов.

Ручка для штрих-кода, получившая название MS-1, входила в комплект следующих клавиатур Casio: VL-Tone VL-5, Casiotone MT-70 и Casiotone 701. Процедура сканирования штрих-кодов для сохранения музыки в памяти клавиатуры называлась MS Memory. . (Сохранение музыки с помощью нажатия клавиш и кнопок клавиатуры называлось ручной памятью .)

У меня нет ни одной из этих клавиатур. Я узнал о формате штрих-кода, прочитав руководства к клавиатуре, изучив программу ввода из компьютерного журнала и проанализировав штрих-коды из видео и изображений в Интернете. В 2014 году читатель прислал мне некоторые дополнительные значения данных и информацию. (См. раздел «Ссылки» в конце этого документа.)

Формат штрих-кода В штрих-коде чередуются черные и белые сегменты. Ручка для штрих-кода работает, излучая инфракрасный свет и определяя, отражается ли он обратно. Белые сегменты должны отражать инфракрасный свет, а черные сегменты не должны отражать инфракрасный свет. Вы даже можете направить инфракрасный свет прямо в ручку, чтобы имитировать штрих-код.

Каждый сегмент штрих-кода, черный или белый, кодирует один бит. Битовое значение 0 кодируется тонким сегментом (0,8 мм). Битовое значение 1 кодируется как широкий сегмент (2,0 мм). Точные размеры сегментов могут немного варьироваться, при условии, что соотношение тонкого и широкого составляет 1:2,5.

Для большей части штрих-кода биты интерпретируются как полубайты (группы по 4 бита), начиная с младшего бита. Последний бит строки является сольным битом. Необязательный концевик представляет собой пары нулевых битов.

Музыкальное произведение кодируется в трех разделах: данные высоты тона, данные длины и данные аккорда. Каждый раздел может состоять из нескольких строк штрих-кода.

Формат строки штрих-кода показан ниже.

image

Нибблы 04 начинают каждую строку штрих-кода.

Номер строки

Первая строка раздела имеет полубайтовый номер строки, равный 0, каждая последующая строка увеличивает номер строки на единицу.

Тип данных

Тип данных nybble присутствует только в первой строке раздела.

8 = данные шага
4 = данные длины
2 = данные хорды

Данные хранятся в парах полубайтов. Поскольку значение полубайта F используется для обозначения конца строки, данные никогда не содержат полубайт F. (Примечание: в примерах штрих-кодов, которые я проанализировал, раздел данных никогда не содержит полубайт F. Однако документ Энди Вуда включает значение типа аккорда F, что предполагает, что второй полубайт в каждой паре может быть F.)

В разделе высоты тона каждая пара полубайтов данных хранит высоту тона, паузу или другое событие.

00 = отдых
01 = возврат 2 (1-е окончание)
1x = C
2x = C# / Db
3x = D
4x = D# / Eb
5x = E
6x = F
7x = F# / Gb
8x = G
9x = G# / Ab
Ax = A
Bx = A# / Bb
Cx = B
D0 = начало аккомпанемента (или начало ритма на VL-5)
E0 = возврат 1 (повторение начала/окончания)

x = октава (4, 5, 6 или 7)

Конечное событие, похоже, не сохраняется в штрих-коде.
В руководстве VL-5 не описываются повторяющиеся события с использованием ручного ввода, поэтому я не знаю, реагирует ли VL-5 на повторяющиеся события в штрих-коде.

В разделе длины каждая пара полубайтов данных хранит продолжительность события в единицах 12 долей такта. Первый полубайт является наименее значимым. Другими словами, десятичное значение длительности равно (второй полубайт)×16 + (первый полубайт).

Помните, что полубайт F не может присутствовать в данных, поэтому некоторые длительности не могут быть сохранены. К счастью, кратные доли, полудоли и третьи доли никогда не попадают в недопустимые значения, а кратные четверти доли лишь изредка попадают в недопустимые значения.

Каждое событие в данных высоты тона имеет соответствующую длительность в данных длины. Ноты и паузы имеют ненулевую длительность. Остальные события (начало аккомпанемента, возврат 1, возврат 2) имеют нулевую длительность.

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

(не принят ВЛ-5)

В разделе аккордов каждая пара полубайтов в данных кодирует аккорд для одного или двух шагов аккорда.

Как поясняется в руководствах, позиции аккордов фиксируются на первой и третьей доле каждого такта.
Если выбран четырехдольный ритм: РАЗ, два, ТРИ, четыре, РАЗ, два, ТРИ, четыре.
При выборе трехдольного ритма: РАЗ, два, ТРИ, РАЗ, два, ТРИ.

Если в данных Pitch сохранены повторы, данные аккорда сохраняются при каждом воспроизведении повторяющегося фрагмента.

1x = C
2x = C# / Db
3x = D
4x = D# / Eb
5x = E
6x = F
7x = F# / Gb
8x = G
9x = G# / Ab
Ax = A
Bx = A# / Bb
Cx = B

x = тип аккорда
0–7 = один шаг
0 = тацет (один шаг)
1 = мажор (один шаг)
2 = минор (один шаг)
3 = септаккорд (один шаг)
4 = минорная септима (один шаг)
5 = мажорная септаккорд (один шаг)
6 = уменьшенный (один шаг)
7 = увеличенный (один шаг)
8-F = два шага
8 = тацет (два шага)
9 = мажор (два шага)
A = минор (два шага)
B = седьмой (два шага ) шаги)
C = минорная септима (две ступени)
D = мажорная септима (две ступени)
E = уменьшенная (две ступени)
F = увеличенная (две ступени)

Значения типа аккорда 9, A, B, C и E были продемонстрированы в примере видео Cielito Lindo. Остальные значения типов аккордов были взяты из документа Энди Вуда.

Конец строки обозначается полубайтом F.

Последний бит строки

Если строк больше, этот бит равен 0.
Если это последняя строка, этот бит равен 1.

Проверьте откусывание

Сохраняйте промежуточную сумму (десятичный модуль 16) всех полубайтов от номера строки до флага конца строки, а также последний бит строки. Когда вы дойдете до проверочного полубайта, не добавляйте его к промежуточной сумме, а проверьте, чтобы убедиться, что промежуточная сумма плюс проверочный полубайт равна нулю по модулю 16 десятичных чисел. Продолжайте добавлять промежуточную сумму для каждой строки в разделе.

Трейлер

Может появиться дополнительный трейлер из одной или нескольких пар нулевых битов.

Вот все значения фрагментов штрих-кода, которые я расшифровал во время анализа: barcode-transcriptions.txt

Вот расшифрованная информация первой фразы Сиелито Линдо (из демонстрационного видео, которое я нашел на YouTube).

данные шага | данные о длине | событие | продолжительность (единицы) | продолжительность (доли) -- | -- | -- | -- | -- Д0 | 00 | начало аккомпанемента | 0 | 0 00 | 09 | отдых | 144 | 12 Е0 | 00 | возврат 1 (повторить запуск) | 0 | 0 15 | 90 | С5 | 9 | 3/4 00 | 30 | отдых | 3 | 1/4 15 | С0 | С5 | 12 | 1 А4 | 61 | А4 | 22 | 1 5/6 00 | 20 | отдых | 2 | 1/6 С4 | С0 | Б4 | 12 | 1 84 | С0 | G4 | 12 | 1 Е0 | 00 | возврат 1 (конец повтора) | 0 | 0 Е0 | 00 | возврат 1 (конец повтора) | 0 | 0 64 | С0 | F4 | 12 | 1 34 | 03 | Д4 | 48 | 4 00 | С0 | отдых | 12 | 1

данные аккорда: 19 8B 19 8B 19 8B 19 8B 19 8B 3C 8B

19 = до мажор (два шага)
8B = септакта соль (два шага)
3C = септакта ре минор (два шага)

Руководства по клавиатуре Casio

Casio VL-Tone VL-5 Инструкция по эксплуатации
Casio Casiotone MT-70 Инструкция по эксплуатации
Casio Casiotone 701 Инструкция по эксплуатации

Музыка по спецификациям из выпуска 4 Your Spectrum (июнь 1984 г.)

Статья о подключении компьютера Spectrum к порту штрих-кода клавиатуры Casio. Значения штрих-кода частично описаны в этой статье, но формат сегмента штрих-кода и алгоритм контрольной суммы не описаны. Включенную программу сложно анализировать, и она создает только однострочные штрих-коды, поэтому формат последнего бита строки и проверочного полубайта не был очевиден.

Штрих-коды Casio (PDF) и электронные письма Энди Г. Вуда

В документе и электронных письмах Энди добавлена ​​следующая информация:

  • Возвращаемое значение 2 (1-е окончание) и другие значения типа аккорда.
  • Точные размеры черно-белых сегментов могут немного различаться, если их относительные размеры одинаковы.
  • Ручка для штрих-кода работает, излучая инфракрасный свет и определяя, отражается ли он обратно. Белые сегменты должны отражать инфракрасный свет, а черные сегменты не должны отражать инфракрасный свет. Вы даже можете направить инфракрасный свет прямо в ручку, чтобы имитировать штрих-код.

Re: Casiotone CT-701 с форума Circuitbenders

В этом посте на сайте, посвященном изгибу цепей, представлены некоторые подробности формата штрих-кода, вероятно, почерпнутые из статьи «Ваш спектр» и анализа некоторых штрих-кодов. Некоторые из опубликованных деталей имеют неправильный порядок байтов, но информация включает в себя ширину сегментов штрих-кода, которую я больше нигде не видел.

Casio VL-Tone VL-5 от аннулирования гарантии

Упоминается, что попытка отсканировать штрих-код аккорда MT-70 на VL-5 приводит к ошибке звука, но VL-5 принимает штрих-коды мелодий из той же партитуры MT-70.

Casio Casiotone MT-70 от аннулирования гарантии

Упоминается, что VL-Tone VL-5, Casiotone MT-70 и Casiotone 701, как известно, имеют устройство считывания штрих-кода.

Видео и изображения

Демонстрация считывателя штрих-кодов Casio MT70 (видео на YouTube, больше недоступно)

Сьелито Линдо. Это основной пример, который я рассмотрел. Я расшифровал все штрих-коды, видимые на видео, и сравнил сохраненные данные с полученными показателями.

500 миль Casio VL-Tone VL-5 коробка Соната

Я расшифровал две или три полные строки штрих-кода с каждого изображения, чтобы подтвердить алгоритм контрольной суммы.

Заголовок Нибблы 04 начинают каждую строку штрих-кода.

Номер строки Первая строка раздела имеет полубайтовый номер строки, равный 0, каждая последующая строка увеличивает номер строки на единицу.

Тип данных Тип данных nybble присутствует только в первой строке раздела.

8 = данные шага 4 = данные длины 2 = данные хорды

Данные Данные хранятся в парах полубайтов. Поскольку значение полубайта F используется для обозначения конца строки, данные никогда не содержат полубайт F. (Примечание: в примерах штрих-кодов, которые я проанализировал, раздел данных никогда не содержит полубайт F. Однако документ Энди Вуда включает значение типа аккорда F, что предполагает, что второй полубайт в каждой паре может быть F.)

Данные о шаге В разделе высоты тона каждая пара полубайтов данных хранит высоту тона, паузу или другое событие.

00 = отдых 01 = возврат 2 (1-е окончание) 1x = C 2x = C# / Db 3x = D 4x = D# / Eb 5x = E 6x = F 7x = F# / Gb 8x = G 9x = G# / Ab Ax = A Bx = A# / Bb Cx = B D0 = начало аккомпанемента (или начало ритма на VL-5) E0 = возврат 1 (повторение начала/окончания)

x = октава (4, 5, 6 или 7)

Конечное событие, похоже, не сохраняется в штрих-коде. В руководстве VL-5 не описываются повторяющиеся события с использованием ручного ввода, поэтому я не знаю, реагирует ли VL-5 на повторяющиеся события в штрих-коде.

Данные о длине В разделе длины каждая пара полубайтов данных хранит продолжительность события в единицах 12 долей такта. Первый полубайт является наименее значимым. Другими словами, десятичное значение длительности равно (второй полубайт)×16 + (первый полубайт).

Помните, что полубайт F не может присутствовать в данных, поэтому некоторые длительности не могут быть сохранены. К счастью, кратные доли, полудоли и третьи доли никогда не попадают в недопустимые значения, а кратные четверти доли лишь изредка попадают в недопустимые значения.

Каждое событие в данных высоты тона имеет соответствующую длительность в данных длины. Ноты и паузы имеют ненулевую длительность. Остальные события (начало аккомпанемента, возврат 1, возврат 2) имеют нулевую длительность.

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

Данные аккорда (не принят ВЛ-5)

В разделе аккордов каждая пара полубайтов в данных кодирует аккорд для одного или двух шагов аккорда.

Как поясняется в руководствах, позиции аккордов фиксируются на первой и третьей доле каждого такта. Если выбран четырехдольный ритм: РАЗ, два, ТРИ, четыре, РАЗ, два, ТРИ, четыре. При выборе трехдольного ритма: РАЗ, два, ТРИ, РАЗ, два, ТРИ.

Если в данных Pitch сохранены повторы, данные аккорда сохраняются при каждом воспроизведении повторяющегося фрагмента.

1x = C 2x = C# / Db 3x = D 4x = D# / Eb 5x = E 6x = F 7x = F# / Gb 8x = G 9x = G# / Ab Ax = A Bx = A# / Bb Cx = B x = тип аккорда 0–7 = один шаг 0 = тацет (один шаг) 1 = мажор (один шаг) 2 = минор (один шаг) 3 = септаккорд (один шаг) 4 = минорная септима (один шаг) 5 = мажорная септаккорд (один шаг) 6 = уменьшенный (один шаг) 7 = увеличенный (один шаг) 8-F = два шага 8 = тацет (два шага) 9 = мажор (два шага) A = минор (два шага) B = седьмой (два шага ) шаги) C = минорная септима (две ступени) D = мажорная септима (две ступени) E = уменьшенная (две ступени) F = увеличенная (две ступени)

Значения типа аккорда 9, A, B, C и E были продемонстрированы в примере видео Cielito Lindo. Остальные значения типов аккордов были взяты из документа Энди Вуда.

Флаг конца строки Конец строки обозначается полубайтом F.

Последний бит строки Если строк больше, этот бит равен 0. Если это последняя строка, этот бит равен 1.

Проверьте откусывание Сохраняйте промежуточную сумму (десятичный модуль 16) всех полубайтов от номера строки до флага конца строки, а также последний бит строки. Когда вы дойдете до проверочного полубайта, не добавляйте его к промежуточной сумме, а проверьте, чтобы убедиться, что промежуточная сумма плюс проверочный полубайт равна нулю по модулю 16 десятичных чисел. Продолжайте добавлять промежуточную сумму для каждой строки в разделе.

Трейлер Может появиться дополнительный трейлер из одной или нескольких пар нулевых битов.

Пример данных Вот все значения фрагментов штрих-кода, которые я расшифровал во время анализа: barcode-transcriptions.txt

Вот расшифрованная информация первой фразы Сиелито Линдо (из демонстрационного видео, которое я нашел на YouTube).

данные шага данные о длине событие продолжительность (единицы) продолжительность (доли) Д0 00 начало аккомпанемента 0 0 00 09 отдых 144 12 Е0 00 возврат 1 (повторить запуск) 0 0 15 90 С5 9 3/4 00 30 отдых 3 1/4 15 С0 С5 12 1 А4 61 А4 22 1 5/6 00 20 отдых 2 1/6 С4 С0 Б4 12 1 84 С0 G4 12 1 Е0 00 возврат 1 (конец повтора) 0 0 Е0 00 возврат 1 (конец повтора) 0 0 64 С0 F4 12 1 34 03 Д4 48 4 00 С0 отдых 12 1

данные аккорда: 19 8B 19 8B 19 8B 19 8B 19 8B 3C 8B

19 = до мажор (два шага) 8B = септакта соль (два шага) 3C = септакта ре минор (два шага)

image

Ссылки Документы Руководства по клавиатуре Casio Casio VL-Tone VL-5 Инструкция по эксплуатации Casio Casiotone MT-70 Инструкция по эксплуатации Casio Casiotone 701 Инструкция по эксплуатации

Музыка по спецификациям из выпуска 4 Your Spectrum (июнь 1984 г.) Статья о подключении компьютера Spectrum к порту штрих-кода клавиатуры Casio. Значения штрих-кода частично описаны в этой статье, но формат сегмента штрих-кода и алгоритм контрольной суммы не описаны. Включенную программу сложно анализировать, и она создает только однострочные штрих-коды, поэтому формат последнего бита строки и проверочного полубайта не был очевиден.

Штрих-коды Casio (PDF) и электронные письма Энди Г. Вуда

В документе и электронных письмах Энди добавлена ​​следующая информация:

Возвращаемое значение 2 (1-е окончание) и другие значения типа аккорда. Точные размеры черно-белых сегментов могут немного различаться, если их относительные размеры одинаковы. Ручка для штрих-кода работает, излучая инфракрасный свет и определяя, отражается ли он обратно. Белые сегменты должны отражать инфракрасный свет, а черные сегменты не должны отражать инфракрасный свет. Вы даже можете направить инфракрасный свет прямо в ручку, чтобы имитировать штрих-код. Re: Casiotone CT-701 с форума Circuitbenders В этом посте на сайте, посвященном изгибу цепей, представлены некоторые подробности формата штрих-кода, вероятно, почерпнутые из статьи «Ваш спектр» и анализа некоторых штрих-кодов. Некоторые из опубликованных деталей имеют неправильный порядок байтов, но информация включает в себя ширину сегментов штрих-кода, которую я больше нигде не видел.

Casio VL-Tone VL-5 от аннулирования гарантии Упоминается, что попытка отсканировать штрих-код аккорда MT-70 на VL-5 приводит к ошибке звука, но VL-5 принимает штрих-коды мелодий из той же партитуры MT-70.

Casio Casiotone MT-70 от аннулирования гарантии Упоминается, что VL-Tone VL-5, Casiotone MT-70 и Casiotone 701, как известно, имеют устройство считывания штрих-кода.

Видео и изображения Демонстрация считывателя штрих-кодов Casio MT70 (видео на YouTube, больше недоступно) Сьелито Линдо. Это основной пример, который я рассмотрел. Я расшифровал все штрих-коды, видимые на видео, и сравнил сохраненные данные с полученными показателями.

500 миль Casio VL-Tone VL-5 коробка Соната

Я расшифровал две или три полные строки штрих-кода с каждого изображения, чтобы подтвердить алгоритм контрольной суммы.

⚠️ **GitHub.com Fallback** ⚠️