Софтинки    

  Калькулятор ~ 
  Калькулятор-2 ~ 
  Калькулятор-3 ~ 
  Web-сервер ~ 
  Weeby ~ 
  Кука ~ 
  PAM-SSRA ~ 
  Dozer ~ 
  JI Synth ~ 
  JI Synth 2 ~ 
  httpfw ~ 
  nanoNET ~ 
  kurare ~ 
  edsm ~ 
  edsm-2 ~ 
  One more webd ~ 
  avr8-edsm ~ 
/Разное/Софтинки/JI Synth

Just Intonation Synthesizer
(Синтезатор с чистым строем)

Давненько я точил зубы на это дело, и вот наконец, можно сказать, свершилось...

Версия от 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

Если созерцаете вот такую картинку:

xjiss-scale

то клавку в руки и вперёд!

Ежели не созерцаете, а очень хочется, то пишите письма.

Кнопочки

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


/Разное/Софтинки/JI Synth

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

Valid HTML 4.0 Strict Valid CSS!