???
Вид для печати
???
Информацию о форматах (BIM, MAI, RPK, MAY, MAO) для справочника можно?;)
Конечно можно, но не сейчас ... Там структура очень проста, главное, - расписать компрессию. Я уже доделаю первую нормальную версию и выложу полное описание.
----------------------------
Кто успел до этого момента скачать, перекачивайте заново, я малость ошибся и собрал старую версию ...
Link: http://entire.nm.ru/downloads/MasonAySetup.exe
На чем написана программа? Планируется ли кросс-платформенная версия?
Всё сделано для этого ! В Config'е в самом конце сделаю настройку. На данный момент всё отображается по цветовой таблице.
А вот Насчёт шрифтов, - дилема ... Думаю, что я сделаю пару видов шривтотв на выбор, но совершенно любой выбирать не дам. Я хотел, что бы редактор работал на старых видео-картах, и если использовать шрифты высокой точности, то начинаются дикие тормоза. Понятно, что на современных картах вы этого не заметите. Плюс ко всему у меня нет человека, который нарисовал бы мне шрифты.
Тут есть ньюансы. Сейчас включён режим Wild Sound AY, под мою звуковую карту для Speccy. В следующей версии я сделаю управление этой функцией, пока только галочка (да/нет).
Кстати, учитывайте, что нет управления шумом в колонке трека возле огибающей. Плюс в данный момент поддерживается только два эффекта - 3xxx(slide) и Fxxx(speed). То есть некоторые мелодии могу звучать не корректно.
---------- Post added at 08:12 ---------- Previous post was at 08:02 ----------
Написано всё на, считай что, pascal'е ... Компилируется всё на DELPHI. Но я компилировал первые версии на CURLIX'е под Linux'ом, и старался писать так, что бы не сипользовать наворотов DELPHI. Кросс ПиЦи можно устроить, но кросс-платформенность - нет, там много ассемблера под 386 архитектуру. Но если вопрос возникает лишь в том, что бы запускать редактор под Linux'ом, то я сделал всё, что бы это можно было сделать. В крайнем случае можно под Wine'ом, проверял не один раз.
???
Твой код кроме тебя никто не сможет поддерживать. Да и ты сам через N лет тоже слету не сможешь.
Писанина на асме имеет смысл, если производительность нужна любой ценой. В сложившейся ситуации людей платформами, отличными от win32 гораздо больше, нежели людей, имеющих железо, для которого стоит делать оптимизацию.Код:while (curTick < LastData.Tick) //render cycle
{
if (curTick >= nextSampleTick) //need to store sample
{
const bool isYM(0 != (params.Flags & Sound::PSG_TYPE_YM));
const Sound::Sample result[] = {
GetVolume(ToneBitA & NoiseBitA & VolumeA, isYM),
GetVolume(ToneBitB & NoiseBitB & VolumeB, isYM),
GetVolume(ToneBitC & NoiseBitC & VolumeC, isYM)
};
dst.ApplySample(result, ArraySize(result));
nextSampleTick += ticksPerSample;
}
curTick += 8;//base freq divisor
if (++TimerA >= GetToneA())
{
TimerA = 0;
BitA = ~BitA;
}
if (++TimerB >= GetToneB())
{
TimerB = 0;
BitB = ~BitB;
}
if (++TimerC >= GetToneC())
{
TimerC = 0;
BitC = ~BitC;
}
if (++TimerN >= GetToneN())
{
TimerN = 0;
Noise = (Noise * 2 + 1) ^ (((Noise >> 16) ^ (Noise >> 13)) & 1);
BitN = (Noise & 0x10000) ? ~0 : 0;
}
if (++TimerE >= GetToneE())
{
TimerE = 0;
Envelope += Decay;
if (Envelope & ~unsigned(31))
{
const unsigned envTypeMask = 1 << GetEnv();
if (envTypeMask & ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) |
(1 << 5) | (1 << 6) | (1 << 7) | (1 << 9) | (1 << 15)))
{
Envelope = Decay = 0;
}
else
{
if (envTypeMask & ((1 << 8) | (1 << 12)))
{
Envelope &= 31;
}
else
{
if (envTypeMask & ((1 << 10) | (1 << 14)))
{
Decay = -Decay;
Envelope += Decay;
}
else
{
Envelope = 31;
Decay = 0; //11, 13
}
}
}
}
}//envelope
}
Холиварьте на тему "кодинг vs програмирование" в ветках флейма или програмирования чтоли. В музыке можно пред получить :wink:
1) редактор не знает, что таскбар может располагаться слева или справа или сверху. в итоге попадает под него.
2) шрифты глазоломные.
Главный вопрос в следующем: чем будет отличаться от остальных? Какой ген.план развития редактора?
будет ли поддержка новых табличек -> http://zx.pk.ru/showthread.php?t=10574 (и удобного управления на горячих клавишах =)
работа с огибающей, как с нотой -> http://zx.pk.ru/showthread.php?t=10375
либо что-то из этого: http://zx.pk.ru/showthread.php?p=155250#post155250
и поддержку работы с музыкальным текстом, преобразования на уровне элементарной теории музыки =)
Конечно можно будет передвинуть ... Сейчас я это не делал ... Это моя слабость, я не разобрался с динамическим перемещением окна за короткое время, и оставил на потом. Вообщем этого глюка не будет.
Согласен, особенно на LCD ... Дождись полной версии с возможностью вариации базовых размеров. Сейчас 800х600. Я расчитывал под полноэкранный режим, когда дойду до этого обязательно займусь и шрифтами и размером.
1. Главное - режим Double Sound. Не знаю как его назвать, пусть так называется. В одном канале два. Можно активировать и убирать на ходу. Можно будет получать экзотические звуки на одном канале. Если музыкант поймёт программиста, то можно будет это использовать в демках. Для игр это практически не возможно.
2. Этот же Double Sound раскидывается на второй AY. Получается просто ещё один трек, но более упрощённый. Собственно можно смешивать и Double Sound и второй AY.
3. В результате компиляции вы получите модуль с плеером на 4000 тактов. Музыканту - пофиг, демомейкеру - нет. Мне всегда не пофиг.
4. Каждый паттерн может иметь свою длину линий, в том числе и огибающая. То есть в канале А вы можете поставить четыре паттерна #1 длиной 16 линий, и в канале В один паттерн #2 доиной 64 линии. А можете паттерн #1 играть сразу в АВС.
Да. уже сейчас они автоматом подгружаются ... В проекте есть каталог TABL, туда можно их сложить ... Но в конце концов их можно будет редактировать, задавать формулы, или частично подвергать вормуле.
Да, и будет микс вариант и то и другое. Я склоняюсь отображать нотуа после неё ставить +/-ХХХ. Но это пока предварительно.
Обещаю прочитать ...
Тут я не понял ... Партитуру выводить ? Это я категорически против ... Это треккер ... Я могу всё понять, но треккер это не виолончель, тут цифра, практически программа.
Спсибо ...
Зазырил на работе:)
Мысли:
1) гуй- дело наживное :)
2) звук ау какойто непривычный... сильное эхо добавляется
3) многие модули (pt2) играются неправильно
4) почему не SDL? там хотя бы с гуем (рамочки, тягание и проч) возиться не надо
5) жрет память ок.50Мб, процессор- до 10% (проц- ожидаемо, перерисовки все-таки всякие)
6) даешь нормальную кроссплатформенность!!! :)
Ты прав ... Поэтому я и сделал возможность длины каждого паттерна и любой паттерн в любой канал. Поиграй с этим, и увидишь как можно красиво писать басы или миксовать в один канал басов огиабющие для двух патернов. Или поставь подтяжку для ноты, спустись вниз на пару позиций и нажми CTR+ENTER, и увидишь как подтяжка продолжит играть с места в соответствии с положением в треке. Потом отпусти CTR+ENTER и увидишь как курсор вернётся назад в то же место. Меня всегда раздражал протрекер как и вортекстрекер. Они заcтавляли меня касаться мышки или выьирать функционал стрелочкой, а это бесит. Мышь нужна только при выборе файлов, ну или рисовании инструментов. Поэтому я и написал свой первый Mason-AY. В текущей версии я конечно не успел реализовать всех функций. Но на старом Mason-AY, - я практически и начал писать музыку. А насчёт 4000 тактов, поймёшь позже, когда актвирую режим Double Sound.
Хотя, если честно, то я никого не заставляю пользоваться. Собственно, могу новые версии и не выкладывать, пишите на протрекере ...
лично по мне,то мне удобнее писать аля протракер или фасттракер... суть не в этом... редактор находиться еще даже не в альфа 00х версии,но ежели робус его доделает,то будем писать :)
хороший подход аля с64 анд Amiga AHX Tracker... в них тоже такая концепция - позиция одна,а вот у каждого канала имеется свой паттерн...
поверьте это удобно,но сначало ой как непривычно... так что робус не унывай!
У меня возник вопрос ... Как вы считаете, если я делаю INSERT в список патернов, допустим в позицию 4, и при этом канал(или модуль) циклится также в позицию 4, то стоит прибваить точку цикла на один, или оставить прежним ?
Прикольный редактор, концепт продвинутый, респект!
p.s. Странно, что так много проца хавает и удивило что эмуль на асме. У меня флешевый эмуль в пике кушает 5% всего, а флеш в ~150 раз медленнее нативного кода. Такой же эмуль нативный кушает всего 0.2% процессора.
Вот оптимизированный вариант муз. проца:
Код:n_val = n_sample[uint(n_cnt += n_step) & 131071]
e_val = e_sample[uint(e_cnt += e_step) & 63]
if (e_cnt>e_loop) e_cnt=63
a_res = ((uint(ta_cnt += ta_step) & 1 | ta_mix) & (n_val | na_mix)) * ( va_val + ea_mix*(e_val - va_val) )
b_res = ((uint(tb_cnt += tb_step) & 1 | tb_mix) & (n_val | nb_mix)) * ( vb_val + eb_mix*(e_val - vb_val) )
c_res = ((uint(tc_cnt += tc_step) & 1 | tc_mix) & (n_val | nc_mix)) * ( vc_val + ec_mix*(e_val - vc_val) )
r_sum = ( a_res * k_mix00 + b_res * k_mix01 + c_res * k_mix02 )
l_sum = ( a_res * k_mix10 + b_res * k_mix11 + c_res * k_mix12 )
Собственно, эмуль звука хавает так мало, что подсчитать сложно ... У меня была идея отображать загрузку именно эмулятора звука, но потом забил на это, глупо показывать 0.001% ! На 466 мГц процессоре, эмулятор звука ест 0.3% !!!
В редакторе остальное кушает отображение. Но ... На 466 отображалка кушает 80%. На моём рабочем компе 1.2 гГц примерно 1-2% ... Но, вообще-то, всё зависит от видяхи ...
Однако тут выложена самая первая версия, по ней нельзя мерять ... Я решил более тут не выкладывать новые версии, чтобы "не перебивать популярность протреккера". От чего высылаю только тем, кто обращает за редактором лично. В реальности, последняя версия редактора в сотни раз отличается от первой.
Спасибо ... Приятно ... Ты первый с этого форма кому понравился редактор.
---------- Post added at 13:59 ---------- Previous post was at 13:50 ----------
Да ... И ещё есть вопрос, где бы надыбать описание формата VTX ???
Не прошло и сто лет ... Решил таки добавить поддержку этого формата и был чуток удивлён ...
Берём модуль SHOCK5 в нём согласно документации размер распакованного блока 134400(00020D00H). Распаковал, в надежде увидеть там "ZX Spectrum Sound Tracker 1.xx", но вижу множество повторяющихся байт.
Случаем не разложенная ли это музыка на OUT'ы ?
Этот формат имеет отношение Vortex Tracker'у ?
Robus, плиз, выложи свежую версию хотя-бы здесь. Её сложно найти.
И посмотри почту, есть вопрос к тебе по плакату ;)
А какая фраза в упомянутой документации навела на мысль, что внутри должен быть скомпилированный модуль от sound tracker'a?
Да ... Не доглядел ... Я почему-то свято верил что VTX это Vortex Tracker ... Ссори ... С VTX'ом вопрос закрыт ...
---------- Post added at 18:47 ---------- Previous post was at 18:44 ----------
Я постоянно обновлённую версию выкладываю вот сюда - http://yadi.sk/d/_WDWio8K5qvhu ... Самый первый пост обновляется с ссылками и добавлениями.
---------- Post added at 18:57 ---------- Previous post was at 18:47 ----------
Внимание Некоторые модули PT3, определяются как содержимое таблицы нот от ASM, но звучат явно не корректно. Поэтому Если с таким кто-то столкнётся, можно поменять таблицу нот в самом редакторе. Не знаю в чём лажа, возможно расхождение в документации. Нужны чёткие примеры где точно известно какая таблица.
Внимание В конфигурации есть параметр "SB-Freq. 109375 Hz", использовать только его в текущей версии редактора, остальные ускорят проигрывание х2 и х4 раза без активации фильтров Wild Sound'а. Переходная версия, не доделал нормальный эмулятор возможностей Wild Sound'а ...
А откуда такая разница при переключении между AY и YM ? Вроде не в одном эмуле/плеере не замечал настолько разительных отличий??? Аж появилось желание найти оригинальный AY для сравнения на реале...
???
???
Ты не будешь. А я могу. :)
Не понимаю, что в нем могут найти полезного игроделы, тем более с запада.
Плеер вроде бы не быстрее и не короче чем у VT?
---------- Post added at 14:40 ---------- Previous post was at 14:39 ----------
Robus, выставишся в муз. компо на Di:HALT'e?
Дему ведь все равно не делаешь.
Robus, давай для масона сайт сделаю.
готовь технические материалы.
вёрстка/домен/хостинг с меня, материалы с тебя.
???
Судя по цифрам получается не сильно быстрее оптимизированого плеера PT3 (не бульбоваской версии). Опция для оптимизации больше, да.
Но... кхм, учитывая какие слабенькие по коду нынче буржуи делают игры, не представляю что они буду парится разбивая плеер на какие-то части и т.п.
Стоит. Ты умеешь удивлять.
Одно другое не исключает. Недруги все равно твоё демо увидят же?
А друзья... им будет приятнее увидеть демо на пати, в компании дзурзей, а не на ютубе или окошке собственного эмулятора. Я так полагаю.
Тебе нужно хоть раз в жизни выбраться на пати.