Пятница, 29.03.2024, 06:37
Вы вошли как Гость | Группа "Гости" | RSS

.
 
 
Главная Регистрация Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 4 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: Nemesis_c  
Форум » Elektropage.ru » Other » GEMS sound driver research (копипаста с соникретро)
GEMS sound driver research
r57shellДата: Воскресенье, 09.08.2015, 07:25 | Сообщение # 91


 
Сообщений: 632
Статус: Offline
 

никак. У меня нет MIDI->gems конвертера.

Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Воскресенье, 09.08.2015, 14:34 | Сообщение # 92


 
Сообщений: 50
Статус: Offline
 

так вроде ж был gems2midi? там по какому принципу происходил выбор инструментов миди?
 
r57shellДата: Понедельник, 10.08.2015, 01:25 | Сообщение # 93


 
Сообщений: 632
Статус: Offline
 

там всем один инструмент был у меня присвоен. толи рояль толи скрипка толи труба - не помню.
примерно так http://www.youtube.com/watch?v=5TGKldU0GdY


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Вторник, 11.08.2015, 14:29 | Сообщение # 94


 
Сообщений: 50
Статус: Offline
 

эх... а я так надеялся. в кратце в общем не особо у меня и выходит. идея то была хорошая :) реализация плохая... посмотрим что один буржуйский товарищ еще посоветует. а то конвертируется не совсем верно... хотя я еще не все инструменты тестировал.

Добавлено (11.08.2015, 14:29)
---------------------------------------------
и все-таки где брать эти значения?
|??ffffffffffffff| - 14-bit frequency channel 3 mode operator 4 (A6, A2)
|
??ffffffffffffff| - 14-bit frequency channel 3 mode operator 3 (AC, A8)
|??ffffffffffffff| - 14-bit frequency channel 3 mode operator 1 (AD, A9)
|??ffffffffffffff| - 14-bit frequency channel 3 mode operator 2 (AE, AA)

|????kkkk| - Operator On ("Key") - bit for each operator in 4,3,2,1 order
|????????|


что-то как-то у меня не так конвертит...

 
r57shellДата: Вторник, 08.09.2015, 08:55 | Сообщение # 95


 
Сообщений: 632
Статус: Offline
 

всё? сдулся? :D Нашел где спросить про MIDI, на эмуленде crazy

Мальчик, девочка... какая в жопу разница..
 
seregaz2004Дата: Суббота, 17.10.2015, 06:05 | Сообщение # 96


 
Сообщений: 3
Статус: Offline
 

чото тут херня какая-то с авторизацией...

это я то сдулся? это ты пропал :) то что я хотел - почти сделал. правда в новой навороченной версии где-то напорол косяков... и найти не могу где, поэтому выложил старую - предидущую версию конвертера. в ней правда нихера никаких наворотов нет. и конвертит фигова с плохой математикой и лупы там недоделаны... ну да фиг с ним. главное что конвертит :) а новый видимо опять разберу до винтика и опять пересоберу... потому что там фигова куча кода из-за целой тонны задумок, что я туда хотел впендюрить, что сам уже не помню где что... плюс еще кой что задумал - просто эпическая идея! но как представлю сколько надо будет форумов перелопатить - становится нехорошо, но все равно эта дополнительная идея просто бомба :)
 
Nemesis_cДата: Суббота, 17.10.2015, 10:29 | Сообщение # 97


 
Сообщений: 1148
Статус: Offline
 

Цитата seregaz2004 ()
чото тут херня какая-то с авторизацией...

до тебя никто не жаловался. в чем проблема?
 
seregaz2004Дата: Суббота, 17.10.2015, 17:56 | Сообщение # 98


 
Сообщений: 3
Статус: Offline
 

не нашел кнопки авторизации. точнее ту мелкую нашел, что наверху - но там нет ввода логина и пароля. только через соц сети. я видимо ранее регистрировался через почту.
 
SeregaZДата: Вторник, 10.11.2015, 18:58 | Сообщение # 99


 
Сообщений: 50
Статус: Offline
 

а все. оказывается не через логин пароль, а через эту U :)

Добавлено (10.11.2015, 18:58)
---------------------------------------------
можно ли как-то узнать частоту сэмплов? основная масса нормально играет на 10653, однако червяку надо примерно 6000, а когда пехота умирает - 8000. в файлах типа sample_0F.sfx есть подозрительный параметр FLAGS =$47 - уж не он ли? хотелось бы проигрывать сэмплы с правильной частотой, иначе гномские какие-то голоса блин...

 
r57shellДата: Пятница, 20.11.2015, 21:16 | Сообщение # 100


 
Сообщений: 632
Статус: Offline
 

в идеале сэмплрейт считается 55555/x где x - одна из циферок (nibble) этих флагов. Но это в идеале, так что учитывай лаги, и можно получше подогнать. Не помню где я это описывал, с удивлением на странице моего описания формата нет этой инфы.

Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Суббота, 21.11.2015, 19:18 | Сообщение # 101


 
Сообщений: 50
Статус: Offline
 

(7670454 / 144) / x

теперь осталось для проигрывания фигня - разобраться коим образом звук PSG рожать :) там правда черт ногу сломит в этих исходниках...
 
r57shellДата: Воскресенье, 22.11.2015, 15:58 | Сообщение # 102


 
Сообщений: 632
Статус: Offline
 

Цитата SeregaZ ()
(7670454 / 144) / x

Не знаю откуда ты эту формулу взял... Там константы вбиты в исходник, они были сделаны из расчёта явно другого.
По моим прикидкам оно соответствует тому что я сказал

Я вообще не знаю что ты мучаешься если есть такая тема:
http://www.youtube.com/watch?v=hDXsRWKaqGw
через которую делается конверсия прям из MIDI в GEMS. Правда я так и не в курсе какие там ограничения.


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Среда, 30.12.2015, 23:56 | Сообщение # 103


 
Сообщений: 50
Статус: Offline
 

ну видимо потому что моя "проигрывательная" часть играет code файлы. правда без gems а напрямую... но звук очень похож. формулу дал буржуй, который знает толк во всем :) по поводу констант - Ti_ писал про константы из документов:
Opcode: Sample Playback Rate
Fields: Default/10.4/8.7/7.3/6.5/5.8/5.2
MIDI equivalent: MIDI Controller #71 = 4/5/6/7/8/9/10
Library routine:
Notes: Reset to default by program change


вот мой недопроигрыватель не проигрывает PSG тип звуков пока-что. с сэмплами и инструментами FM я вроде разобрался. ну еще лупы надо, и паузы перед началом трека.

Добавлено (30.12.2015, 23:02)
---------------------------------------------
а этот gems может как-то воспроизвести эффект "вибрато", или как он там - "слайд"?

в коде файле они идут нота как нота. а вот как бы её заставить звучать чуть чуть по другому? путем использования  pitch $0000?

типа:
duration 10
delay 0
note $37
delay 1
pitch $0001
delay 1
pitch $0000
delay 1
pitch $0001
delay 1
pitch $0000

так?

Добавлено (30.12.2015, 23:54)
---------------------------------------------
http://i73.fastpic.ru/big/2015/1230/aa/304a9fa26c236bd1bc15dfba335acaaa.png

вот параметры колеса в миди. как пересчитать в питч для gems? есть какая-то формула может?

Добавлено (30.12.2015, 23:56)
---------------------------------------------
так-же там бывают отрицательные значения в миди. а для гемс видимо могут быть только положительные. как тут быть? нота - 1 и FFFF - то значение только без минуса?

 
r57shellДата: Четверг, 31.12.2015, 04:08 | Сообщение # 104


 
Сообщений: 632
Статус: Offline
 

всё написано тут
http://elektropage.ru/publ....-1-0-71


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Четверг, 31.12.2015, 06:00 | Сообщение # 105


 
Сообщений: 50
Статус: Offline
 

да я там смотрел... малопонятно :)
$6C Модуляция. Меняет pitch. Имеет параметр 2 байта – величина pitch.  Первый байт – полутон (semitone). Второй байт – дробная часть тона.

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

и как понимать в отношении с мидишным значением питча-wheel? не понимаю я эти документации... а без этой фигни песня не звучит ничерта :( даже инструмент на слух выбрать не могу... это плавание убивает всю возможность определить инструмент. хотя кажется идея мне пришла как инструмент определить :) однако тем не менее как мидишный питч в гемсовский перевести то?

Добавлено (31.12.2015, 04:22)
---------------------------------------------
http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec/wheel.htm
вот даже какая-то статья... ничерта не понимаю, но вроде она.

Добавлено (31.12.2015, 06:00)
---------------------------------------------
с миди не понятно... смотрю команды для процессора и это плавание выглядит примерно так:
A4 2B    
A0 9  
A4 2B
A0 9 
A4 2B
A0 9
A4 2B
A0 9 
A4 2B
A0 A
A4 2B
A0 C
A4 2B
A0 D
A4 2B
A0 10
A4 2B
A0 13
A4 2B

A0 9 "оригинальная нота", а хотя может и не оригинальная - идет первая просто.
A0 A - видимо пошло повышение и видимо на 1 герц чтоль?
как теперь раздуплить как перевести этот 1 герц (или не герц), в питч значения для коде файла?

 
r57shellДата: Четверг, 31.12.2015, 21:34 | Сообщение # 106


 
Сообщений: 632
Статус: Offline
 

в хексе выведи -1, и посмотри как оно выглядит... точно также там. погугли числа с фиксированной точкой, и дополнительный код.
если же тебе не понятно что такое полутон... то это клиника.
По миди там также, только мб другие диапазоны. смотри мой gems to midi, там pitch-и учтены, мб правда не правильно.


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Пятница, 01.01.2016, 21:12 | Сообщение # 107


 
Сообщений: 50
Статус: Offline
 

где там говоришь в стационар твоей клиники принимают?

A4 2B    
A0 9

посмотрел на сию ноту. такой в миди нет.

есть $4B
A4 = 2A
A0 = FE

a $4C уже
A4 = 2B
A0 = 2B

следовательно она уже изначально должна была идти с питчем. если бы code файлы имели для ноты два значения, как они идут для процессора - то черт бы с ним с питчем, тупо duration 1, delay 1, парам1, парам 2, но увы... кое кто сделал значение для ноты в одно число. следовательно придется думать как этот питч родить...

видимо придется брать
A4 = 2A
A0 = FE 
и прибавлять 11, (а потом как плавание начинается - 12, 13 и так далее)

вот собственно вопрос - как это значение 11 перевести в значение питч? как написано в описании xxyy - xx полутон, yy дробное. чтобы $4B превратить в $4C - значение pitch будет $0100? правильно? если правильно, то между $4B и $4C $2B2B - $2AFE = 45. 45 не знай чего... в байте 255. то есть получается pitch $0001 это 1/255 от полутона? если так, то получается 255 / 45 = 5.6 - то есть одна ступенька из 45 до полутона в значениях питч равна $0005, правильно? тогда эти значения 11 это 11 * 5.6 = 61.6 = pitch $003D?

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

Добавлено (01.01.2016, 21:12)
---------------------------------------------
перепроверил эту теорию. вышла фигня. хотя может с инструментом ошибся... и поэтому кажется что не то. хотя вроде этот инструмент.

 
r57shellДата: Пятница, 01.01.2016, 23:26 | Сообщение # 108


 
Сообщений: 632
Статус: Offline
 

Код
channel_0:
delay 0
tempo 130
delay 1
duration 1
patch patch_0B
loop $7F
pitch $0000
note $3A
pitch $0020
note $3A
pitch $0040
note $3A
pitch $0060
note $3A
pitch $0080
note $3A
pitch $00A0
note $3A
pitch $00C0
note $3A
pitch $00E0
note $3A
pitch $0100
loopend

пробуй. должно ровно на один полутон переползать.
если охото прямо менять в течении yдержания, то ставь duration = 9 и убирай все note кроме первой.

Цитата SeregaZ ()
если бы code файлы имели для ноты два значения, как они идут для процессора

о каком процессоре речь? о Z80? там вообще частоты.

Цитата SeregaZ ()
чтобы $4B превратить в $4C - значение pitch будет $0100? правильно?

если $4B это номер ноты то да, правильно

Цитата SeregaZ ()
то есть получается pitch $0001 это 1/255 от полутона?

в байте 0-255 итого 256 значений, значит $0001 это 1/256 от полутона.

Цитата SeregaZ ()
если так, то получается 255 / 45 = 5.6 - то есть одна ступенька из 45 до полутона в значениях питч равна $0005, правильно? тогда эти значения 11 это 11 * 5.6 = 61.6 = pitch $003D?

Это вообще о чём, и что за бред.

Цитата SeregaZ ()
есть $4B
A4 = 2A
A0 = FE

что это такое? В миди если чо там диапазон нот на одну октаву шире всего (насколько я себе помню). Хватит постить хекс цифры без привязки к контексту.


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Суббота, 02.01.2016, 01:06 | Сообщение # 109


 
Сообщений: 50
Статус: Offline
 

по поводу первого бреда:
нота $4B это значения 
A4 = 2A
A0 = FE

нота $4C это значения:
A4 = 2B
A0 = 2B

теперь $2B2B - $2AFE = 45. конечно может эти значения не так расчитываются... но я предположил что так, и получается между нотами 45 этих... единиц или ступенек. а в значениях питч повышение на полутон это 255 (или 256)
тогда выходит одна ступенька из 45 до повышения на полутон в значениях питч будет 255 / 45 = 5.6

то есть согласно моей теории если нужно получить повышение на 1... эээ... ступеньку (не полутон)
A4 = 2A до A4 = 2A
A0 = FE до A0 = FF - питч должен быть pitch $0005 (ну почти pitch $0006)

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

по поводу "вне контекста" приложил что есть:
https://www.dropbox.com/s/yyfzt5qdmgyiapq/test.zip?dl=1
миди файл, демонстрационный ехе с правильным звучанием, и 000 папку для сборщика, где пытался воспроизвести подобный звук. и что-то нифига...

Добавлено (02.01.2016, 00:56)
---------------------------------------------
а хотя стоять! :))))) что-то я припоминаю про завышение октавы в миди... взял да и смеха ради сделал -12 к этой ноте в code файле и вроде как зазвучало :))))))))))) только надо значения пересчитать будет. там то уже будет не 45 ступенек между нотами, а видимо другая цифра уже...

Добавлено (02.01.2016, 01:01)
---------------------------------------------
хотя нет. те-же 45 ступенек... видимо если нота одна и та-же, даже если в разных октавах - видимо имеет одно и то-же количество ступенек.

Добавлено (02.01.2016, 01:06)
---------------------------------------------
$4B в коде файле в архиве надо поменять на $3F - начинает звучать ближе к оригиналу... но все равно чуть чуть не так. где я ошибся в расчетах? может эти "ступеньки" между полутонами рассчитываю не верно? в оригинале, как мне кажется, звучит ярче, чем где я пытался воспроизвести.

 
r57shellДата: Суббота, 02.01.2016, 04:25 | Сообщение # 110


 
Сообщений: 632
Статус: Offline
 

Цитата SeregaZ ()
по поводу первого бреда:
нота $4B это значения 
A4 = 2A
A0 = FE

нота $4C это значения:
A4 = 2B
A0 = 2B

ещё раз повторяю, что это за значения. Конкретно, скажи, что слева, что справа, почему по две строчки.

файл не смотрел. Если слух есть то ты должен иметь возможность определить даёт pitch $1000 в .code повышение на полутон или нет. Если ты согласен, что действительно полутон - то дальше не должно быть никаких проблем.


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Суббота, 02.01.2016, 05:05 | Сообщение # 111


 
Сообщений: 50
Статус: Offline
 

$1000 или ты хотел сказать $0100? со слухом у меня туго... по поводу слайда - там не совсем слайд из четко одной ноты в четко другую - там этот слайд плавает с повышением. как же объяснить то этот эффект? скрипачи так играют или гитаристы - на ладу пальцем чуть чуть создают скольжения в пределах одной ноты.

$4B - цифра ноты из миди файла.

дальше те парные цифры это регистр и его параметр для YM2612. А4 регистр, 2А - значение для этого регистра. почему их двое А4 и А0 - так как нота выставляется двумя регистрами для процессора, то есть мидишную $4B надо гонять через некую процедуру - я не помню где взял, и я понятия не имею как она работает, и конвертировал в свой язык не я - посодействовали. но в итоге эта процедура должна раскладывать $4B на эти два значения $2A и $FE, которые потом посылаем в регистры и тогда процессор понимает какую ноту (или видимо частоту?) от него хотят. 
A4 = 2A
A0 = FE

далее я предположил что считать надо от одной ноты до другой $2B2B - $2AFE = 45, то есть эта разница между нотами в 45 ступенек соответствуют 255 в значениях питч. то есть pitch $0001 получается не сыграет никакой роли, так как чтобы $2AFE превратить в $2AFF - минимальное возможное изменение тона, то понадобиться где-то $0005 (255 / 45 = 5.6). и по этой моей теории чтобы вычислить значение питч надо сначала узнать некую "опорную" ноту как в данном случае была $4B, после получая последующие значения из лога процессора A4 и A0, вычислять разницу между этим значением и опорным и умножать что получилось на этот коэфициент 5.6.

А4 и А0 - это для первого канала процессора. (второй канал А5 и А1, третий А6 и А2, для четвертого надо прибавлять 256 к ним то есть А4+256 и А0+256, и так далее)

но по всей видимости я сделал эти рассчеты не совсем верно, так как в моем случае хоть и звучит похоже - но лишь отдаленно похоже (во вложении, но предварительно надо исправить $4B в коде файле в архиве на $3F). а хотелось бы чтоб звучало как в оригинале 1 в 1. поэтому хотелось бы знать как правильно делать эту математику...
 
r57shellДата: Суббота, 02.01.2016, 22:46 | Сообщение # 112


 
Сообщений: 632
Статус: Offline
 

Цитата SeregaZ ()
$1000 или ты хотел сказать $0100?

Да, опечатался

Цитата SeregaZ ()
со слухом у меня туго...

хреново чо

Цитата SeregaZ ()
дальше те парные цифры это регистр и его параметр для YM2612.

Алилуя, сразу стало ясно о чём речь. Так бы сразу сказал что это регистры.

GEMS делает так: берём ноту, приписываем к ней два нуля, то есть из $4B ты получаешь $4B00
затем прибавляешь к pitch, к примеру $123, получаешь $4B00+$123 получаешь $4C23
если $FF12 получаем $4A12 (переполнение игнорим)
затем старший байт это нота, младший frac, то есть
$4C23 это $4C нота $23 дробная часть (frac)
после чего считаем delta = берём частоту ноты $4C+1 из неё вычитаем частоту $4C
delta = f(note+1)-f(note)
и delta * frac = итоговая_дельта
то есть итоговая частота получася f(note)+итоговая_дельта = f(note)+(f(note+1)-f(note))*frac
всё. остаётся только описать как считать f(note) и как частоту переводить в 13:11 формат регистра частоты ямахи.

ах да ещё там есть ограничения на минимальную и максимальную ноту но это отдельная история


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Суббота, 02.01.2016, 23:51 | Сообщение # 113


 
Сообщений: 50
Статус: Offline
 

единственное что я понял из всего этого - про ограничения :) знаю что верх это 95. если нота в миди выше, то надо сдвигать вниз. впрочем с нововыясненным -12 к мидишной ноте - это в принципе не так уж и часто будет встречаться... ну да не суть.

с питчем же так мне и осталось не понятно :) слишком много цифер... пойду путем, который мне понятен: нужно раздуплить как правильно снимать логи с эмулятора и потом тупо эксперементальным путем смотреть влияние значений питч на итоговые значения для регистра. тогда хоть что-то начну понимать... формулы зло - таблица готовых значений рулит :)
 
r57shellДата: Воскресенье, 03.01.2016, 01:32 | Сообщение # 114


 
Сообщений: 632
Статус: Offline
 

удачи, не сломай ногу.
С новым годом, желаю выжить. :D


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Понедельник, 04.01.2016, 01:40 | Сообщение # 115


 
Сообщений: 50
Статус: Offline
 

аднака! моя теория оказалась отчасти верная :) pitch $0001 до pitch $0005 не сыграл никакой роли. как нота была с одинаковыми параметрами - так она и шла. а вот как влепил pitch $0006 - сразу изменилась :) напомню я тогда расчитывал коэфициент как 5.6, то есть это шаг для питч, при котором будут видны изменения. НО! как выяснилось из тестов - моя процедура по конвертированию ноты из миди в регистровые значения не верная :(

Код
Procedure.i GetOPNNote(Note.i, Pitch.i)
  
  Protected.d FreqHz, CurNote
  Protected.i BlkNum, FNum
  
  CurNote = Note + Pitch / 128
  FreqHz = 440 * Pow(2, (CurNote - 69) / 12)
  
  BlkNum = Note / 12 - 1
  If BlkNum < 0
    BlkNum = 0
  ElseIf BlkNum > 7
    BlkNum = 7
  EndIf

  FNum = Round((144 * FreqHz / 7670454) * Pow(2, 21 - BlkNum), #PB_Round_Nearest)
  If FNum < 0
    FNum = 0
  ElseIf FNum > $7FF
    FNum = $7FF
  EndIf 
    
  ProcedureReturn FNum | (BlkNum * $800)

EndProcedure

FNum = GetOPNNote($10, 0)    ; выставление ноты в регистры
Debug "$A4 = " + Hex(FNum >> 8)
Debug "$A0 = " + Hex(FNum & $FF)


брал $10 ноту и вносил в коде файл, делал ром, делал дамп в GYM, смотрел содержимое этого файла. и вышло что моя процедура раскладывает $10 на:
$A4 = 3
$A0 = 2B

а вот в GYM дампе было другое значение:
$A4 = B
$A0 = 2B

теперь думаю кого начинать пилить :) или того буржуя, что давал изначально ту процедуру в "С", или того кто помогал конвертировать в мой язык :)))))) но все равно доволен, что хоть какие-то концы нашлись :) правда в процессе работы полез рассинхрон зараза... по отдельности дорожки то нормально, а вот все вместе сводишь - начинается... ну один фиг прогресс! так что я доволен :)

Добавлено (03.01.2016, 08:56)
---------------------------------------------
оказалось процедура правильная :) там же обратное на актаву повышать надо. $10 + 12 = $1C, а вот она уже при раскладе через процедуру дает заветные $A4 = B и $A0 = 2B

Добавлено (04.01.2016, 01:40)
---------------------------------------------
рассинхрон худо-бедно победил, но все равно не точно :) питч пока только вручную только для одной ноты для теста сделал. не совсем кароче :) но в целом доволен. надо переходить теперь на следующий шаг, там будем надеяться все будет на автомате производиться. пока три дорожки сделаны из пяти для данного трека. нет лупа, и съедена последняя нота во всех треках :) но все равно прогресс! :)

http://www.emu-land.net/forum/index.php?action=dlattach;topic=73715.0;attach=159838

одно не пойму. там бредятина выходит с инструментом. вроде как в примерах - треках для дюны выставление инструмента выглядит так:
delay 0
patch patch_01

однако если скажем перед вступлением нот мне нужна пауза:
delay 20
delay 0
patch patch_01
в подобном случае начинает играть ахинею. эта пауза не 20 делеев, а больше. и дорожка тупит, другие дорожки уже проиграли этот момент, ушли далеко вперед и только потом вступает эта слоупочная.

в результате вышел из положения добавив условие:
если была пауза в начале трека, то инструмент добавлять несколько по иному:
delay 20
patch patch_01
delay 0
так играет верно по времени, вступает вовремя. но сдается мне это не совсем верно.

вариант 
delay 0
patch patch_01
delay 20
такая-же херня. слоупочит.

 
r57shellДата: Понедельник, 04.01.2016, 20:30 | Сообщение # 116


 
Сообщений: 632
Статус: Offline
 

Цитата r57shell ()
всё написано тут
http://elektropage.ru/publ....-1-0-71

Если находишь несостыковки - сообщай


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Понедельник, 04.01.2016, 22:25 | Сообщение # 117


 
Сообщений: 50
Статус: Offline
 

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

а вот видимо когда идут два делея подряд:
delay 20
delay 0
видимо они складываются: Несколько подряд идущих команд duration воспринимаются как одна команда duration, а биты величины объединяются, первый байт – старшие биты, то есть big-endian.
видимо становится delay 200, если не 2000... значит их ни вкоем случае нельзя рядом использовать. но тогда интересно почему
delay 0
delay 20
аналогичная фигня - тут-же вроде другое значение выйдет :) ну да ладно. временное решение пока есть. так что не горит. пока делаю процедуру по обратному конвертированию из значений двух регистров в ноту и питч. пойду буржуев пинать... а то не понятно мне как там два значения сначала впихнуть в одно значение, а потом распихнуть обратно...

и по поводу питча хотелось бы уточнить как правильно его использовать? там меня два момента волнуют. поясняю:
для инструмента (а так-же по моему и для громкости) - надо обязательно рядом использовать delay 0 (если это в теле трека пошло уже. в шапке трека то пофиг - там между двумя делеями обычно все выставляется) - нужно ли это для команды питч? то есть я стартую ноту и без её остановки через некоторые делей начинаю играть питчем типа:
duration 20
delay 4
note $52
pitch $0005
delay 4
pitch $0010
delay 4
pitch $0020

вот первый момент как он играет в подобном коде?
то есть стартуем ноту без питча, играет 4 делея, потом срабатывает питч, играет 4 делея, новый питч, 4 делея...
или тут работает по другому?
стартуем ноту без питча, играет 8 делеев, питч 05, играет 4 делея, питч 10, 4 делея...

второй момент про тот делей 0 для питча:
duration 20
delay 4
note $52
delay 0
pitch $0005
delay 4
delay 0
pitch $0010
delay 4
delay 0
pitch $0020
то есть в подобном случае, хоть он мне кажется что так должно быть правильней - но тут выходит два делея рядом, а значит опять вылезет та дурацкая незапланированная задержка :)
 
r57shellДата: Вторник, 05.01.2016, 00:27 | Сообщение # 118


 
Сообщений: 632
Статус: Offline
 

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

Питчи работают также как в MIDI, покрути питч колесо во время игры ноты, точно также. Вообще GEMS можно считать "порт" MIDI на сегу.


Мальчик, девочка... какая в жопу разница..
 
SeregaZДата: Вторник, 05.01.2016, 04:04 | Сообщение # 119


 
Сообщений: 50
Статус: Offline
 

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

ну впрочем ладно. разберусь методом тыка :) это не сложно, хоть и не всегда и не совсем технически верно :)
 
Nemesis_cДата: Вторник, 05.01.2016, 16:34 | Сообщение # 120


 
Сообщений: 1148
Статус: Offline
 

как у вас тут интересно... столько букв...  debile
 
Форум » Elektropage.ru » Other » GEMS sound driver research (копипаста с соникретро)
  • Страница 4 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:


Select language:
English
French
German
Portuguese
Chinese
Nemesis_c, r57shell, Smoke, Lipetsk, GoodBye (aka vfiuchcikicshuusrch) & Segaman © 2024
Хостинг от uCoz