Давненько я точил зубы на это дело, и вот наконец, можно сказать, свершилось...
Версия от 2012-03-19
Версия от 2012-02-03
Вместо предисловия - цитата... нет, Цитата, я бы даже сказал, Цитатища:
"In practice it is very difficult to produce true equal temperament. There are instruments such as the piano where tuning is not dependent on the performer, but these instruments are a minority. The main problem with equal temperament is that its intervals must sound somewhat unstable, and thus the performer has to learn to suppress the more stable just intervals in favour of equal tempered ones. This is counterintuitive, and in small groups, notably string quartets, just intonation is often approached either by accident or design because it is much easier to find (and hear) a point of stability than a point of arbitrary instability" -- (забыл, кто автор...)
Понятно? :-P
Для начала убедитесь, что в вашей системе установлены пакеты libasound2-dev и libx11-dev. Потом проделайте следующие телодвижения:
bzip2 -d xjiss-2012-02-03.tar.bz2 tar xvf xjiss-2012-02-03.tar cd xjiss make ./xjiss
Если созерцаете вот такую картинку:
то клавку в руки и вперёд!
Ежели не созерцаете, а очень хочется, то пишите письма.
Esc - выйти
Пробел - переключение октав
F2 - включить/выключить запись
ACHTUNG: не держите запись включенной слишком долго -
одна секунда звучания это 192 килобайта,
даже если это просто тишина. You have been warned.
Для примера - полтора часа и гигабайта на диске как не бывало.
Звук пишется в "сыром" виде в файлик jiss.raw в текущем каталоге. При запуске программы этот файлик помножается на нуль. You have been warned 2. Стало быть, если вы хотите сберечь результаты музицирования для потомков, делаем так. Запускаем программу, включаем запись, играем, выключаем запись, ВЫХОДИМ ИЗ ПРОГРАММЫ, ПЕРЕИМЕНОВЫВАЕМ файлик jiss.raw. При следующем запуске этот файл, как уже сказал, перезапишется. Если не включать запись, он просто будет нулевого размера.
Чтобы проиграть записанное, можно воспользоваться, например, проигрывателем mplayer:
mplayer -rawaudio channels=2:rate=48000:samplesize=2:format=1 -demuxer rawaudio jiss.raw
Или же можно импортировать файлик в какой-нить звуковой редактор типа Audacity, который умеет... эээ... импортировать сырые данные. Приведенные ниже примеры в форматах ogg и flac получены как раз этим редактором.
Разумеется, не проблема создать wav-файлик с заголовком, мне просто элементарно в лом :)
1 2 3 4 5 6 7 8 9 0 - = \
D+ R- Mb M+ F+ Lb Sb d+ r- mb m+ f+ do
36/17 20/9 12/5 18/7 45/16 16/5 18/5 72/17 40/9 24/5 36/7 45/8 8/1
q w e r t y u i o p [ ]
Do Re Mi Fa So La Si do re mi fa so
2/1 9/4 5/2 8/3 3/1 10/3 15/4 4/1 9/2 5/1 16/3 6/1
a s d f g h j k l ; '
D+ RE- Mb M+ F+ Lb Sb D+ R- Mb M+
18/17 10/9 6/5 9/7 45/32 8/5 9/5 36/17 20/9 12/5 18/7
z x c v b n m , . /
DO RE MI FA SO LA SI Do Re Mi
1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1 9/4 5/2
В звукоряд не включен диатонический полутон (16/15, ре-бемоль), поскольку этот интервал соблюдается точно только в самой низкой октаве, а дальше получается неточно:
720*(15/16) = 675 720*(15/16)/2 = 337.5
Вместо него включен экзотический 18/17 (обозначен как D+), он в 4-х октавах получается точно:
720*(17/18) = 680 720*(17/18)/2 = 340 720*(17/18)/2/2 = 170 720*(17/18)/2/2/2 = 85
Из "нетрадиционных" интервалов есть еще 9/7, обозначен как M+. Он соблюдается точно в 5-ти октавах:
720*(7/9) = 560 720*(7/9)/2 = 280 720*(7/9)/2/2 = 140 720*(7/9)/2/2/2 = 70 720*(7/9)/2/2/2/2 = 35
Просто аккордик до-мажор:
Скачать
Упражнение в Фа-диез-минор:
Hell On Earth
На фоне постоянного подклАДа в виде занятной и вкусной "обратной" какбы кварты
(интервальный коэффициент 1.32812) D+ - F+ (кнопки 1 и 5) идет мелодия из LA, SI, D+, R-, Mi (кнопки n, m, k, l, и /).
Ну, и плюс ещё кое-что.
Hell On Earth (немного другой вариант)
Миксолидийский До (в сыром виде).
c-mixolid (~2M)
Вальсообразно получилось :) Как проиграть, написано выше.
Панихида по 12РДО
(12TET, равномерно-темперированному недострою) в Фа-минор.
Requiem-for-12tet (raw audio, ~7M)
Requiem-for-12tet (ogg, ~260K)
Requiem-for-12tet (flac, ~2.3M)
Где же вы, диезы, где же вы, бемоли...
нету их, наверна, потерялись.. ,)
Еще незатейливый "попсовый" примерчик
Примерчик (flac, ~350K)
Еще примерчик по поводу тона D+. В ми-бемоль минор оно неплохо вписывается
в качестве малой септимы вместо отсутствующего ре-бемоль:
eb-moll (flac, ~470K)
Примерчик с использованием обоих вариантов тона "ре".
Фраза сочинена не мною. См. тут
Call of Future (flac, ~666K)
Заточено на 48KHz (без всяких там программных передискретизаций), проверялось со звучкой 'Intel Corporation 82801AA AC'97 Audio Controller (rev 02)' в Debian Squeeze.
Если звуковая карта работает на частоте 48kHz, то получается следующий диапазон частот: самая низкая (DO, клавиша 'z') - 66.(6) Hz, самая высокая (so, клавиша ']', включено повышение на октаву) - 800 Hz. "Та самая" Ля получается 444.(4) Hz. А что, симпатичненькое число! )
Кому охота повозиться с тембром, смотрим на строчку /* generate new waveform */ (в файлике main.c в исходничках) и далее до конца цикла. И забудьте про "традиционные" методы синтеза звука (аддитивный, субтрактивный, FM). Тут надо применять метод научного, так сказать, тыка. Сущность сего метода в данном случае состоит в кропотливом подборе нужной формы сигнала. Берёте всякие там прямые, параболы, гиперболы, окружности, эллипсы, синусы, тангенсы, экспоненты etc., комбинируете их всякоразно и смотрите... эээ... слушаете, что получается. Небольшой советик: ничто не мешает использовать для первого и второго полупериода колебания разные функции. Например, можно один из полупериодов просто оставить тишиной - интересные штуки получаются.
Некоторые аккорды не берутся (до-мажор 'i-p-]', например). Не знаю, почему. И это замечено также с LMMS. Скорее всего, так ведёт себя сама клавиатура.
Дата последней модификации: 2014-05-09