SPC info '95

SPC info '95

Strogino Programming Company © winter 1995, Moscow, Russia

Предыдущая часть

Часть 3, окончание.


Таблица нот для драйвера, используемого в SSTplay.
Та же таблица, но из Scream Tracker III.

Простое умножение этих констант на 2 дает повышение нот на октаву.

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

Таблица для нового драйвера построена по другому принципу и существенно отличается от двух вышеприведенных:

Значения убывают, а не возрастают, как раньше.

Итак, сам новый драйвер под Covox.

Для оптимизации громкости нужно сгенерировать таблицу длиной 1400 (в восьмеричной системе) слов. Делается это следующим образом:

Програма размером 40 байт генерирует таблицу размером полтора килобайта.

Для повышения скорости микширования каждый байт инструмента нужно преобразовать в слово (конечно, памяти расходуется в 2 раза больше, но что делать, если у процессора ВМ1 нет команды ADDB). Делается это так (качество не страдает нисколько):

Конечно, эту процедуру можно оптимизировать.

Теперь, когда все готово, можно обращаться к подпрограмме проигрывания:

1400 - середина таблицы размером 3000 байт.

Немного о достоинствах подпрограммы:

- выполняется заметно быстрее, чем в SSTplay,

- уровень выходного сигнала существенно выше,

- используются все 8 бит COVOX'а (а не 7, как в SSTplay).

А теперь о недостатках:

- памяти надо в 2 раза больше,

- играть можно только на одной октаве (в SSTplay - на двух).

Стоит обсудить область применения такого драйвера. Организуем по этому поводу небольшую конференцию с  вопросами и ответами.


FAQ

Во-первых, так ли заметно повышение качества?

Заметно, и даже очень. Кроме того, появилась возможность использовать 16-битные инструменты, если есть COVOX16bit. При использовании 16-битных инструментов не нужно корректировать выходной сигнал по таблице, в связи с чем экономится 3000 байт и подпрограмма работает еще быстрее.

Что дает повышение быстородействия?

Теперь вы можете извлекать из COVOX'а звуки на несколько тонов выше, чем раньше. Таким образом, количество октав можно увеличить до 2.5 или даже до трех. К тому же, высокие ноты звучат чище, что очень хорошо заметно на ударных.

Было сказано, что доступна всего одна октава, не так ли?

Известно, что любая октава (кроме суб-контр-октавы) состоит из 12-ти полутонов. Частота ноты ДО во второй октаве ровно в 2 раза выше, чем в первой. Это верно не только для ноты ДО, но и для любой другой. Поэтому достаточно знать, с какой частотой воспроизводить все полутона одной октавы, частоты же нот других октав легко получить умножением или делением базовой частоты на 2, 4, 8 и т.д. При написании мелодии Вам следует оценить, есть ли такие инструменты, партии которых выходят за диапазон одной октавы. Если такие инструменты нашлись, придется хранить в памяти еще и их копии, оцифрованные на октаву выше. Таким образом, некоторые инструменты будут иметь два разных номера (а то и три) для двух (трех) разных октав.

Если использовать пианино на пяти октавах, хватит ли памяти?

Не хватит номеров инструментов, а памяти хватит. И вот почему. Мы уже отмечали, что использовать инструмент на частотах, далеких от исходных (на которых он был оцифрован), не рекомендуется (страдает качество, инструмент становится не похож на себя). Поэтому желательно хранить копии каждого инструмента для всех октав, на которых он используется в композиции (в хороших MOD'ах и S3M'ах так и делается). Допустим, инструмент занимает памяти на одну секунду звучания ноты ДО. Попробуем воспроизводить его в 2 раза быстрее (ДО следующей октавы). Тогда всю длину инструмента мы пройдем всего за полсекунды, а дальше будет звучать неизвестно что. Чтобы исправить это недоразумение, придется длину инструмента увеличить вдвое... А не проще ли оставить ее прежней, но завести еще один инструмент, звучащий на октаву выше, и использовать этот инструмент на низкой октаве? Тогда длина его не превысит длину первого инструмента. Видно, что таким образом оба инструмента займут памяти ровно столько же, сколько иначе занял бы один инструмент.

Когда можно будет увидеть редактор SST-файлов?

Версия редактора SST-betta, созданная для внутреннего пользования, стала доступна через ALTEC и через ALTpro (здесь самое время выразить им благодарность за дисководы, БК11м и распространение FIST-II). Все выпущенные до сих пор мелодии создавались по нашей просьбе REAL corp, PAUL of NGY и собственно нами в этом редакторе. Оценить героические усилия музыкантов поможет знание особенностей редактора: в нем невозможно прослушать мелодию (т.е. после набора каждых N нот нужно записаться на диск, выйти в DOS, запустить SSTplay, загрузить мелодию и только после всего этого начать вслушиваться, где же вы сфальшивили). Разработка новой версии редактора начнется в феврале. Будем признательны всем желающим оказать помощь в написании интерфейса.

Какой драйвер воспроизведения будет в редакторе?

Разумеется, он там будет. Какой точно - пока не решено.

Будет ли редактор работать на БК0010?

Да, будет. Но прослушивание мелодии из самого редактора не гарантируется.

Собираетесь ли вы заниматься чем-либо, кроме SST?

После нашей игры FIST-II мы планируем выпустить полноценную игру Street Fighter для БК11м. Хотелось бы довести до конца двухлетние разработки языка SPCforth, имеющего мало общего со стандартным FORTH'ом и обладающего колоссальными возможностями, быстродействием и неправдоподобно компактного. Время разработки игровых программ на SPCforth (без учета подготовки графики, музыки, лабиринтов...) будет составлять как правило несколько дней. На фронте IBM PC наша деятельность ограничивается сочинением музыки на ST3. Наши мелодии выходят под эмблемой SandS. Планируем написать какое-нибудь DEMO,  но за отсутствие нормальной автоинкрементной адресации пользователи PC  заслуживают хорошенький вирус.

Какую технику вы используете?

Программная часть готовится на двух БК0010 и на одной БК11м. Графика - на DX2-66 16 Mb с использованием сканера и программ COREL draw, COREL paint и 3DS4. Музыка - обычно сразу на БК, но иногда - предварительно на PC (DX-33 с Pro Audio Spectrum 16). Инструменты - все с PC, некоторые оцифрованы самостоятельно для нужд БК. Если в ближайшее время напишем устраивающий нас эмулятор БК на PC, коды тоже будут готовиться там.

Спасибо.

Пожалуйста... Но лучше приходите в ALTEC или ALTpro и покупайте наши программы.


HARD

Alexander Barychev

Как известно, к нашему любимому БК уже давно подключают всякие штучки с других "машинок". Например, в Самаре подключили световой пистолет от DANDY. Также многие люди, не только из Самары, но и из Москвы занимались очень занятным делом: припаивали вместо обычного SpeЦtrum'овского джойстика джойстики от различных игровых приставок, например от той же DANDY.

Вот для тех, кто не знает как это делать, и написана статья.

1. Припаять джойстик от приставки довольно просто, надо лишь иметь маленький паяльник (обязательно уметь им пользоваться), "ФЛЮС НЕЙТРАЛЬНЫЙ" и время.

2. Надо достать джойстик от приставки, желательно такой, чтобы у него хорошо работали все кнопки (я таких не видел!).

3. Разобрать джойстик и посмотреть как он устроен. Обычно встречается следующий вид джойстика: 5 проводов припаиваются к нескольким контактам, дорожки от которой ведут к одной большой коричневой штуке, чипу. Если у вас такой пульт, то все остальный пункты для вас. Может выйти так, что вы найдете джойстик от ATARI 2600, тогда все ваши проблемы решены, просто распаивайте его под БК'шный разъем и играйте на здоровье.

4. Что нужно сделать? Вот что. Сначала отрезать старый провод и найти новый. Он должен иметь количество проводов, равное количеству кнопок + 1. Теоретически, ваша задача состоит в том, чтобы отделить каждую кнопку от остальных и провести от нее два провода: общий и сигнал. Сделать это можно так: аккуратно перерезать дорожки в нужных местах и проделать две дырки толщиной с 1 проводок рядом с местом припайки проводов. Снять в предполагаемом месте припайки с дорожек лак и очень точно припаять на дорожку проводок.

5. Один провод идет напрямую к БК, а вот другой (общий) лучше провести к такому месту, где будут собираться другие такие же, а от него пойдет один +5В.

6. Все.

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

Догадаться какие кнопки за что отвечают очень просто: крестовина за движение ← → ↑ ↓, а кнопки - куда распаяете.

Лучше всего распаивать джойстик под мышь. Вот схема:

Контакты параллельного порта БК.

Остальные кнопки можно распаять по другим контактам, посмотрев в документации на БК.


BYE!

Сохранено с БК и свёрстано для web - Manwe, февраль 2018.

Report Page