PDA

Просмотр полной версии : Таблицы огибающих.



Robus
10.01.2013, 21:50
Привет всем ... Давно бьюсь и не могу понять какие огибающие для каких нот и в соответствии с каким редактором должны быть. Итак, ковыряясь в ненте я нашёл только одну таблицу для ST. Вот она ...



C- 0F,1E,3C,78,F0
C# 0E,1C,38,70,E0
D- 1B,36,6C,DA
D# 19,32,65,CA
E- 0C,18,30,60,C0
F- 0B,16,2C,5A,B8
F# 15,2A,54,A8
G- 0A,14,28,50,A0
G# 13,26,4C,98
A- 09,12,24,48,90
A# 11,21,42,84
B- 08,10,20,40,80


У меня есть четыре основные таблицы тонов:
1. PT
2. ST ..... OK
3. REAL
4. ASM

Для ST таблица есть и она совпадает с реальностью, а вот остальные я не могу получить ... Помогите кто знает больше ?

psb
11.01.2013, 01:38
могу ошибаться, но таблицы для огибающих получаются из таблицы тонов путем деления периода на константу.

Robus
11.01.2013, 17:22
могу ошибаться, но таблицы для огибающих получаются из таблицы тонов путем деления периода на константу.
Ооооо ... Я вот то же пошёл по этому пути с самого начала ... Самое ужасное, что нет точки опоры для проверки, ведь не факт что автор музыки правильно прописал руками огибающую. Вообщем из таблицы точно не получается. Я не смог найти ни одну октаву где я мог бы получить чёткое соответствие с огибающей. Не могу с этим разобраться, вроде по документации на АУ чётко написана формула, разница частоты между тоном и огибающей ровно в 16 раз, но, блин, куча треков используют значения огибающей не точно, причём сильно не точно, разница может достигать до 3-4 единиц в огибающей, но придраться в таком треке к фальши не возможно, вроде всё красиво. Вот поэтому я и создал эту тему, что бы разобраться как делать правильно.

Titus
11.01.2013, 17:53
Ооооо ... Я вот то же пошёл по этому пути с самого начала ... Самое ужасное, что нет точки опоры для проверки, ведь не факт что автор музыки правильно прописал руками огибающую. Вообщем из таблицы точно не получается. Я не смог найти ни одну октаву где я мог бы получить чёткое соответствие с огибающей. Не могу с этим разобраться, вроде по документации на АУ чётко написана формула, разница частоты между тоном и огибающей ровно в 16 раз, но, блин, куча треков используют значения огибающей не точно, причём сильно не точно, разница может достигать до 3-4 единиц в огибающей, но придраться в таком треке к фальши не возможно, вроде всё красиво. Вот поэтому я и создал эту тему, что бы разобраться как делать правильно.

А что тут не понятного? Тон нужной частоты аппроксимируется с доступной точностью как генератором тона, так и генератором огибающей. У генератора огибающей разрядность значительно меньше, поэтому точность тона огибающей, задаваемого ей, будет с большими погрешностями. Музыканты ориентируются на слух, нравится им это или нет. Если разница в частотах между тоном и огибающей большая, будет быстрое заметное биение. Если малая, то будет плавное биение. Кому как больше нравится и подходит.

psb
11.01.2013, 18:31
вроде по документации на АУ чётко написана формула, разница частоты между тоном и огибающей ровно в 16 раз
именно. но опять же, в протрекере и вортексе есть опция autoenv, которая сама рассчитывает частоты, так вот там еще задается делитель, типа, 1:1, 2:1 и т.д. (много их, и все четко звучат).

а погрешность в округлении будет всегда, думаю, к ближ. целому округлять надо.

Titus
11.01.2013, 18:39
У меня вот в этом плейере (http://zxaaa.untergrund.net/get.php?f=DEMO4/ptanalyz.zip), вернее графичексом анализаторе, был алгоритм вычисления ноты по частоте огибающей. Причем, достаточно точный. Так же и с частотой тональных генераторов. Загружаешь ему любую музыку, а он на индикаторе показывает, какая нота на огибающей, какая на тоне. Залезь, посмотри.

Robus
15.01.2013, 19:15
именно. но опять же, в протрекере и вортексе есть опция autoenv, которая сама рассчитывает частоты, так вот там еще задается делитель, типа, 1:1, 2:1 и т.д. (много их, и все четко звучат).
Да ... Я это видел, но оказывается не чётко. Или где-то закралась ошибка. Рассмотрим простую ситуацию. Вот таблица тонов из SoundTracker'а:
C- 0EF8 077C 03BE 01DF 00EF 0077 003B 001D
C# 0E10 0708 0384 01C2 00E1 0070 0038 001C
D- 0D60 06B0 0358 01AC 00D6 006B 0035 001A
D# 0C80 0640 0320 0190 00C8 0064 0032 0019
E- 0BD8 05EC 02F6 017B 00BD 005E 002F 0017
F- 0B28 0594 02CA 0165 00B2 0059 002C 0016
F# 0A88 0544 02A2 0151 00A8 0054 002A 0015
G- 09F0 04F8 027C 013E 009F 004F 0027 0013
G# 0960 04B0 0258 012C 0096 004B 0025 0012
A- 08E0 0470 0238 011C 008E 0047 0023 0011
A# 0858 042C 0216 010A 0085 0042 0021 0010
B- 07E0 03FD 01F8 00FC 007E 003F 001F 000F
Каждое значение делим на 16, следуя инструкции из документации на АУ и получаем такую таблицу:
C- 00F0 0078 003C 001E 000F 0007 0004 0002
C# 00E1 0070 0038 001C 000E 0007 0004 0002
D- 00D6 006B 0036 001B 000D 0007 0003 0002
D# 00C8 0064 0032 0019 000C 0006 0003 0002
E- 00BE 005F 002F 0018 000C 0006 0003 0001
F- 00B2 0059 002D 0016 000B 0006 0003 0001
F# 00A8 0054 002A 0015 000A 0005 0003 0001
G- 009F 0050 0028 0014 000A 0005 0002 0001
G# 0096 004B 0026 0013 0009 0005 0002 0001
A- 008E 0047 0024 0012 0009 0004 0002 0001
A# 0086 0043 0021 0011 0008 0004 0002 0001
B- 007E 0040 0020 0010 0008 0004 0002 0001
Эта таблица расходится с таблицей которой пользуются все:
C- 1E,3C,78,F0
C# 1C,38,70,E0
D- 1B,36,6C,DA
D# 19,32,65,CA
E- 18,30,60,C0
F- 16,2C,5A,B8
F# 15,2A,54,A8
G- 14,28,50,A0
G# 13,26,4C,98
A- 12,24,48,90
A# 11,21,42,84
B- 10,20,40,80

??? Где ошибка ???

psb
15.01.2013, 20:13
всё это похоже на неточный расчет и всё (в вортексте, например, автоогибающая генерит значения точно из твоей 2й таблицы).

а что будет, если делить ровно на 16? очень сомневаюсь, что будет фальшь;) скорей наоборот.

Robus
15.01.2013, 21:30
всё это похоже на неточный расчет и всё
Вот ... Почему я и завёл этот разговор. Я неоднократно помню, что раньше музыканты постоянно жаловались, что таблица тонов не совпадает с огибающей и слышны биения. Как сейчас помню, как Dreamer, говорил - "протрекер хороший редактор, но огибающая там плохая и я слышу лажу, а вот в ASM огибающая очень классная". Склонен верить Dreamer'у.


(в вортексте, например, автоогибающая генерит значения точно из твоей 2й таблицы).

а что будет, если делить ровно на 16? очень сомневаюсь, что будет фальшь;) скорей наоборот.
Из второй таблицы по счёту из трёх приведённых ? Эта таблица точное деление на 16-ть из первой таблицы с округлением, однако ошибка составлет в некоторых местах до двух единиц. И эта таблица плохая, она расходится и слышен фальшь, а точнее биение и сильное. Однако если поставить значение из таблицы огибающих от SoundTracker'а, всё красиво. Парадокс.

Как бы там ни было, я увидел, что есть четыре редактора:
1. PT
2. ST
3. REAL
4. ASM
Каждый из которых имеет свою таблицу тонов, и авторы композиций использовали какие-то значения для огибающих. Вот я и хочу классифицировать. На примере музыки Сендецкого и Dreamer'а я вижу что огибающие в ASM они использовали одни и те же, но собрать соответствие для всех нот из всех мелодий для меня очень сложно. Мало того, Dreamer постоянно в огибающе прописывал просто свою партию, а все тоны(ноты) треков имеют смещение то ли в мажор, то ли в минор, в зависимости от мелодии. Я уже молчу про кучу эффектов. Всё это сильно усложняет в выявлении истины.

Но то, что музыканты из 90-ых не использовали точное деление на 16, это гарантия.

Вообще я подозреваю ещё один подвох. Таблицы для четырёх редакторов я взял у Бульбы из редактора. Нужно попробовать выдрать из настоящего SoundTracker'а его таблицу и сравнить ...

siril
17.01.2013, 11:35
Эта таблица расходится с таблицей которой пользуются все:
C- 1E,3C,78,F0
C# 1C,38,70,E0
D- 1B,36,6C,DA
D# 19,32,65,CA
E- 18,30,60,C0
F- 16,2C,5A,B8
F# 15,2A,54,A8
G- 14,28,50,A0
G# 13,26,4C,98
A- 12,24,48,90
A# 11,21,42,84
B- 10,20,40,80
??? Где ошибка ???

Ошибка в том моменте, когда ты решил, что будто есть "таблица, которой пользуются все". =)

Кто такие "все"? И как именно они ей "пользуются"? =)

Есть простая формула по расчёту частоты звука от периода тона и частоты чипа: F = CLK/(16*k). Где CLK - это частота чипа, а k - период тона.

В эту же формулу можно подставить вместо периода тона период огибающей*10h. И всё, никаких "таблиц" быть не может.

В VortexTrackerImproved огибающая хранится и вовсе как нота.

Единственный вопрос - это алгоритм округления при делении периода тона на 16.

А "музыканты 90-х" как и многие современные - подбирали значения "на слух" - чтобы получить интересный/приятный уху эффект, не всегда являющийся следствием применения периода огибающей с минимальной погрешностью.

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