PDA

Просмотр полной версии : Mason-AY II ... Music editor ...



Robus
25.08.2009, 23:21
???

Vitamin
25.08.2009, 23:31
Информацию о форматах (BIM, MAI, RPK, MAY, MAO) для справочника можно?;)

Robus
26.08.2009, 01:05
Информацию о форматах (BIM, MAI, RPK, MAY, MAO) для справочника можно?
Конечно можно, но не сейчас ... Там структура очень проста, главное, - расписать компрессию. Я уже доделаю первую нормальную версию и выложу полное описание.

----------------------------

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

Link: http://entire.nm.ru/downloads/MasonAySetup.exe

newart
26.08.2009, 02:37
Особено интересует ваше мнение о комбинациях кнопок.
Должны быть полностью настраиваемы, как шрифты и цвета.
Звук очень старнный, вместо шума песок (звуковуха встроенная intel что то там).

Vitamin
26.08.2009, 08:44
На чем написана программа? Планируется ли кросс-платформенная версия?

Robus
26.08.2009, 09:12
Должны быть полностью настраиваемы, как шрифты и цвета.
Всё сделано для этого ! В Config'е в самом конце сделаю настройку. На данный момент всё отображается по цветовой таблице.

А вот Насчёт шрифтов, - дилема ... Думаю, что я сделаю пару видов шривтотв на выбор, но совершенно любой выбирать не дам. Я хотел, что бы редактор работал на старых видео-картах, и если использовать шрифты высокой точности, то начинаются дикие тормоза. Понятно, что на современных картах вы этого не заметите. Плюс ко всему у меня нет человека, который нарисовал бы мне шрифты.


Звук очень старнный, вместо шума песок (звуковуха встроенная intel что то там).
Тут есть ньюансы. Сейчас включён режим 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'ом, проверял не один раз.

Vitamin
26.08.2009, 10:09
Кросс ПиЦи можно устроить, но кросс-платформенность - нет, там много ассемблера под 386 архитектуру.
А какой в этом потаенный смысл?

Robus
26.08.2009, 13:07
???

Vitamin
26.08.2009, 13:22
Все варианты мега-кросс-платформенности я уже проходил, и видел этих ужасных монстров эмуляции AY на ИФах ... Я такое не хочу.

Твой код кроме тебя никто не сможет поддерживать. Да и ты сам через N лет тоже слету не сможешь.


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
}


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

Robus
26.08.2009, 15:21
Писанина на асме имеет смысл, если производительность нужна любой ценой.
У меня подход - "производительность любой уеной ВСЕГДА" ! Я Coder а не программист ... Для твоего подхода к програмингу у меня есть работа. Там у меня всякие С++, OpenRG, Linux'ы и подобная дребедень ... Speccy у меня вызывает тягу к максимуму ...

key-jee
26.08.2009, 15:27
Холиварьте на тему "кодинг vs програмирование" в ветках флейма или програмирования чтоли. В музыке можно пред получить :wink:

siril
26.08.2009, 15:28
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

и поддержку работы с музыкальным текстом, преобразования на уровне элементарной теории музыки =)

Vitamin
26.08.2009, 15:50
Холиварьте на тему "кодинг vs програмирование" в ветках флейма или програмирования чтоли. В музыке можно пред получить
Это не холивар. Это к вопросу того, что я, например, не могу даже посмотреть что это за редактор.

elf/2
26.08.2009, 15:59
Писанина на асме имеет смысл, если производительность нужна любой ценой.
и то не факт... боюсь что современные процессоры+современные компиляторы сделают среднего программиста на ассемблере

знаю что оффтопик, поэтому ухожу-ухожу

Robus
26.08.2009, 19:10
1) редактор не знает, что таскбар может располагаться слева или справа или сверху. в итоге попадает под него.
Конечно можно будет передвинуть ... Сейчас я это не делал ... Это моя слабость, я не разобрался с динамическим перемещением окна за короткое время, и оставил на потом. Вообщем этого глюка не будет.


2) шрифты глазоломные.
Согласен, особенно на LCD ... Дождись полной версии с возможностью вариации базовых размеров. Сейчас 800х600. Я расчитывал под полноэкранный режим, когда дойду до этого обязательно займусь и шрифтами и размером.


Главный вопрос в следующем: чем будет отличаться от остальных? Какой ген.план развития редактора?
1. Главное - режим Double Sound. Не знаю как его назвать, пусть так называется. В одном канале два. Можно активировать и убирать на ходу. Можно будет получать экзотические звуки на одном канале. Если музыкант поймёт программиста, то можно будет это использовать в демках. Для игр это практически не возможно.
2. Этот же Double Sound раскидывается на второй AY. Получается просто ещё один трек, но более упрощённый. Собственно можно смешивать и Double Sound и второй AY.
3. В результате компиляции вы получите модуль с плеером на 4000 тактов. Музыканту - пофиг, демомейкеру - нет. Мне всегда не пофиг.
4. Каждый паттерн может иметь свою длину линий, в том числе и огибающая. То есть в канале А вы можете поставить четыре паттерна #1 длиной 16 линий, и в канале В один паттерн #2 доиной 64 линии. А можете паттерн #1 играть сразу в АВС.


будет ли поддержка новых табличек -> http://zx.pk.ru/showthread.php?t=10574 (и удобного управления на горячих клавишах =)
Да. уже сейчас они автоматом подгружаются ... В проекте есть каталог TABL, туда можно их сложить ... Но в конце концов их можно будет редактировать, задавать формулы, или частично подвергать вормуле.


работа с огибающей, как с нотой -> http://zx.pk.ru/showthread.php?t=10375
Да, и будет микс вариант и то и другое. Я склоняюсь отображать нотуа после неё ставить +/-ХХХ. Но это пока предварительно.


либо что-то из этого: http://zx.pk.ru/showthread.php?p=155250#post155250
Обещаю прочитать ...


и поддержку работы с музыкальным текстом, преобразования на уровне элементарной теории музыки =)
Тут я не понял ... Партитуру выводить ? Это я категорически против ... Это треккер ... Я могу всё понять, но треккер это не виолончель, тут цифра, практически программа.

Спсибо ...

Vitamin
26.08.2009, 21:28
Зазырил на работе:)

Мысли:
1) гуй- дело наживное :)
2) звук ау какойто непривычный... сильное эхо добавляется
3) многие модули (pt2) играются неправильно
4) почему не SDL? там хотя бы с гуем (рамочки, тягание и проч) возиться не надо
5) жрет память ок.50Мб, процессор- до 10% (проц- ожидаемо, перерисовки все-таки всякие)
6) даешь нормальную кроссплатформенность!!! :)

key-jee
27.08.2009, 06:35
3. В результате компиляции вы получите модуль с плеером на 4000 тактов. Музыканту - пофиг, демомейкеру - нет. Мне всегда не пофиг.


По-моему, трекер нужно писать, чтобы сделать работу более удобной (естественно делать очередной клон протрекера нафиг не нужно). А для более быстрого проигрывания можно придумать и вещи попроще.

Robus
27.08.2009, 11:30
По-моему, трекер нужно писать, чтобы сделать работу более удобной
Ты прав ... Поэтому я и сделал возможность длины каждого паттерна и любой паттерн в любой канал. Поиграй с этим, и увидишь как можно красиво писать басы или миксовать в один канал басов огиабющие для двух патернов. Или поставь подтяжку для ноты, спустись вниз на пару позиций и нажми CTR+ENTER, и увидишь как подтяжка продолжит играть с места в соответствии с положением в треке. Потом отпусти CTR+ENTER и увидишь как курсор вернётся назад в то же место. Меня всегда раздражал протрекер как и вортекстрекер. Они заcтавляли меня касаться мышки или выьирать функционал стрелочкой, а это бесит. Мышь нужна только при выборе файлов, ну или рисовании инструментов. Поэтому я и написал свой первый Mason-AY. В текущей версии я конечно не успел реализовать всех функций. Но на старом Mason-AY, - я практически и начал писать музыку. А насчёт 4000 тактов, поймёшь позже, когда актвирую режим Double Sound.

Хотя, если честно, то я никого не заставляю пользоваться. Собственно, могу новые версии и не выкладывать, пишите на протрекере ...

volton
27.08.2009, 19:20
лично по мне,то мне удобнее писать аля протракер или фасттракер... суть не в этом... редактор находиться еще даже не в альфа 00х версии,но ежели робус его доделает,то будем писать :)
хороший подход аля с64 анд Amiga AHX Tracker... в них тоже такая концепция - позиция одна,а вот у каждого канала имеется свой паттерн...
поверьте это удобно,но сначало ой как непривычно... так что робус не унывай!

Robus
07.10.2009, 12:49
У меня возник вопрос ... Как вы считаете, если я делаю INSERT в список патернов, допустим в позицию 4, и при этом канал(или модуль) циклится также в позицию 4, то стоит прибваить точку цикла на один, или оставить прежним ?

Monster^Sage
07.10.2009, 14:04
Прикольный редактор, концепт продвинутый, респект!

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 )

Robus
07.10.2009, 14:59
транно, что так много проца хавает
Собственно, эмуль звука хавает так мало, что подсчитать сложно ... У меня была идея отображать загрузку именно эмулятора звука, но потом забил на это, глупо показывать 0.001% ! На 466 мГц процессоре, эмулятор звука ест 0.3% !!!

В редакторе остальное кушает отображение. Но ... На 466 отображалка кушает 80%. На моём рабочем компе 1.2 гГц примерно 1-2% ... Но, вообще-то, всё зависит от видяхи ...

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



Прикольный редактор, концепт продвинутый, респект
Спасибо ... Приятно ... Ты первый с этого форма кому понравился редактор.

---------- Post added at 13:59 ---------- Previous post was at 13:50 ----------

Да ... И ещё есть вопрос, где бы надыбать описание формата VTX ???

Vitamin
07.10.2009, 15:56
Да ... И ещё есть вопрос, где бы надыбать описание формата VTX ???
http://zxdocs.fatal.ru/formats/formats.php?file=VTX&type=html

Robus
01.07.2013, 19:07
Не прошло и сто лет ... Решил таки добавить поддержку этого формата и был чуток удивлён ...

http://zxdocs.fatal.ru/formats/forma...=VTX&type=html
Берём модуль SHOCK5 (http://zxtunes.com/downloads.php?id=2091) в нём согласно документации размер распакованного блока 134400(00020D00H). Распаковал, в надежде увидеть там "ZX Spectrum Sound Tracker 1.xx", но вижу множество повторяющихся байт.

Случаем не разложенная ли это музыка на OUT'ы ?
Этот формат имеет отношение Vortex Tracker'у ?

Hacker VBI
01.07.2013, 19:15
Robus, плиз, выложи свежую версию хотя-бы здесь. Её сложно найти.
И посмотри почту, есть вопрос к тебе по плакату ;)

Vitamin
01.07.2013, 19:28
А какая фраза в упомянутой документации навела на мысль, что внутри должен быть скомпилированный модуль от sound tracker'a?

Robus
01.07.2013, 19:57
А какая фраза в упомянутой документации навела на мысль, что внутри должен быть скомпилированный модуль от sound tracker'a?
Да ... Не доглядел ... Я почему-то свято верил что VTX это Vortex Tracker ... Ссори ... С VTX'ом вопрос закрыт ...

---------- Post added at 18:47 ---------- Previous post was at 18:44 ----------


Robus, плиз, выложи свежую версию хотя-бы здесь. Её сложно найти.
Я постоянно обновлённую версию выкладываю вот сюда - 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'а ...

key-jee
01.07.2013, 21:08
Некоторые модули PT3, определяются как содержимое таблицы нот от ASM, но звучат явно не корректно. Поэтому Если с таким кто-то столкнётся, можно поменять таблицу нот в самом редакторе. Не знаю в чём лажа, возможно расхождение в документации. Нужны чёткие примеры где точно известно какая таблица.
В ранних версиях PT3 номера «дополнительных» табличек не сохранялись, отсюда и лажа.

Vitamin
01.07.2013, 21:10
Да ... Не доглядел ... Я почему-то свято верил что VTX это Vortex Tracker ... Ссори ... С VTX'ом вопрос закрыт ...
Ты не далек от истины. Vortex Project, в рамках которого был разработан данный формат, подразумевал перевод всех спековских музонов в vtx. Но не сложилось, а потом Бульба реинкарнировал проект, создав Vortex Tracker II. В каком-то из мануалов была эта история описана.

alvis
02.07.2013, 01:42
А откуда такая разница при переключении между AY и YM ? Вроде не в одном эмуле/плеере не замечал настолько разительных отличий??? Аж появилось желание найти оригинальный AY для сравнения на реале...

Robus
02.07.2013, 03:48
???

newart
02.07.2013, 06:26
Украина - 100% (YM)
Россия - 50% (YM), 50% (AY)
Канада - 100% (YM)
Италия - 100% (AY)
Испания - 100% (AY)
Англия - 100% (YM)
Франция - 100% (YM)
Польша - 100% (YM)
Австралия - 50% (YM), 50% (AY)
Один большой ЛОЛ!

Где хоть один трек написанный в Масоне, не его автором?

diver
02.07.2013, 12:16
Один большой ЛОЛ!

Где хоть один трек написанный в Масоне, не его автором?

Музыка в oscoss?

Robus
02.07.2013, 14:31
???

newart
02.07.2013, 14:40
Слава, вот скажи, почему ты думаешь, что я буду каждого пользователя просить отправить мне отчёт о написанных треках ?
Ты не будешь. А я могу. :)


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

Плеер вроде бы не быстрее и не короче чем у VT?

---------- Post added at 14:40 ---------- Previous post was at 14:39 ----------

Robus, выставишся в муз. компо на Di:HALT'e?

Дему ведь все равно не делаешь.

Hacker VBI
02.07.2013, 14:57
Robus, давай для масона сайт сделаю.
готовь технические материалы.
вёрстка/домен/хостинг с меня, материалы с тебя.

Robus
02.07.2013, 15:33
???

newart
02.07.2013, 16:19
А ты говоришь, что плеер не быстрый ?
Судя по цифрам получается не сильно быстрее оптимизированого плеера PT3 (не бульбоваской версии). Опция для оптимизации больше, да.

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




Опозорюсь ведь ??? Думаешь стоит ? Когда-то я уже занял 21-ое место =))) Надо пару дней, что бы закончить трек.
Стоит. Ты умеешь удивлять.


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

Тебе нужно хоть раз в жизни выбраться на пати.

psb
02.07.2013, 16:36
Если мне не изменяет память то только PSB, сделал более быстрый плеер
ну, или я забыл, или это был не я:)

я делал буферизацию в страницу для последнего нг гифта, но там ауты занимали ВРОДЕ тыщу тактов... если ниче не напутал... но точно вроде далеко не 168 тактов.

introspec
02.07.2013, 16:55
Все плеера которые я использовал до MASON'а, не давали мне и 10% того, что я хотел получить от скорости.
Большое спасибо за подробный рассказ о плейере - очень интересно!

Hacker VBI
02.07.2013, 17:34
introspec, ты чувствуешь мощу? офигеть.

Vitamin
02.07.2013, 17:50
Robus, а каковы твои оценки общего числа созданных в редакторе треков? Есть подробное описание формата? (я не смотрел пока и в ближайшую неделю не смогу, потому задаю глупые вопросы:) )

introspec
02.07.2013, 17:57
introspec, ты чувствуешь мощу? офигеть.
"Чувствую" - просто не то слово. Я сейчас в этом дерьме по уши! с головой! нрзб...

key-jee
02.07.2013, 18:13
ну, или я забыл, или это был не я:)

я делал буферизацию в страницу для последнего нг гифта, но там ауты занимали ВРОДЕ тыщу тактов... если ниче не напутал... но точно вроде далеко не 168 тактов.
Мне просто интересно, как выглядит чудо-процедура, которая за 168 тактов успевает выполнить 28 операций записи в порты, каждая из которых выполняется не менее 12 тактов.

Robus
02.07.2013, 18:53
Мне просто интересно, как выглядит чудо-процедура, которая за 168 тактов успевает выполнить 28 операций записи в порты, каждая из которых выполняется не менее 12 тактов.
Наврал, напутал, облажался ... В варианте использования возможности буфферизации 657 тактов. В классическом плеере 168*3=504 такта. Я случайно замерял одну процедуру для одного канала. Прошу прощение ... В OSCOSS используется полный фарш как в инструментах, так и в буфферах. Там получается картина 657+3400 тактов в пике.

newart
02.07.2013, 19:08
Там получается картина 657+3400 тактов в пике.
Где-то тут на форуме пролетал плеер с фикс кол-вом тактов ~1000.

introspec
02.07.2013, 19:17
Где-то тут на форуме пролетал плеер с фикс кол-вом тактов ~1000.
Не очень понимаю вот этот упор на скорость. Проигрыватели с полностью предсказуемой времянкой сложнее и нужнее, по-моему. По-моему, нужно больше таких плейеров.

Тот проигрыватель, который уже пролетал (от TmK), насколько я знаю, имеет (имел раньше?) ограничения по исходной музыке. К тому же, несколько идей Robus'a однозначно интересные: например, пре-распаковка.

По-моему, важнее сосредоточиться на по-настоящему важных проблемах человечества. К примеру, тут никто не обсуждает, работает ли хоть один проигрыватель с фикс. кол-вом тактов на скорпионах с задержками. Т.е., работать-то они все будут. Но вот останется ли их фиксированное число тактов - фиксированным?

Robus
02.07.2013, 19:20
"Чувствую" - просто не то слово. Я сейчас в этом дерьме по уши! с головой! нрзб...
Если ты изучаешь плеер, то Карл выкладывал старый-классический вариант плеера без возможности буфферизации ... Буфферизация это маленький набор ассемблерных процедур надстраиваемых над плеером в память ниже 49152. Надо собрать красивый вариант плеера без лишних наворотов. Просто у меня подход что ставить задачу основываясь на том сколько сам по себе ест плеер не есть правильно. Нужно ставить задачу вообщем, и тогда можно сделать оптимальный вариант. Например мне в деме OSCOSS надо:
0. буферы
1. стабильность без скачков вообще, синхронизация относительно первого пикселя в инте.
2. гранулярность 4-ре такта, для создания мултиколоров по горизонтали не стабилизируя плеер
3. быстрый доступ к регистрам, что бы всякие эквалайзеры творить
4. возможность разбивать на куски по каналам, используется в зебра-девочке, между полосками у неё играет музыка, примерно в нижней третьи экрана в зависимости от кранча.
Я постарался сделать плеер таким. Что бы каждый мог разбить на нужные ему куски. Кстати, можно вообще выкинуть какой-нибудь канал, допустим если надо только два канала. Плеер во многом универсален и добавляя эффекты в редакторе не надо менять сам плеер. Его устройство очень просто. Музыка разбита на два этапа. У меня не хранятся орнаменты и ноты вообще. При компиляции анализируются часто используемые ноты после этапа обработки орнаментом и всеми эффектами. По сути это набор нот+орнамент+эффект=готовы тон из таблицы. Этот тон, по частоте использования, кодируется одним байтом и на ходу распаковки может меняться. То есть кодировка может к середине модуля динамически переползти в набор других нот(тонов). Далее уже не этот тон обрабатывается инструментом. Так же происходит с громкостью. Эта универсальность позволяет мне не менять плеер, но добавлять эффекты. Далее данные разбиты на два типа, команда CALL(симуляция) и сами данные. Вот кодировка-то тонов и CALL'ов динамически впихнута в один байт, или в два, если не хватает одного. Допустим ты где-то в модуле использовал дважды кусочек из четырёх нот, в любом канале, на этот кусок будет выполнен CALL(симуляция), проигрыш и возврат. В компиляторе стоят ограничения по CALL в CALL в CALL, и CALL, который сразу вызывает CALL. Прости за кашу в обяснении, просто такова запутанная логика. Что бы плеер не выпрыгивал более чем на NNN тактов, делается предел на количество CALL'ов за один шаг проигрывания. Сейчас по дефолту стоит 8 CALL'ов. Если поставить только два CALL'а, то объём модуля увеличится, а количество тактов уменьшится. Увеличиваться может до в 2 раза. Предел размера модуля 49152 байта, это предел кодировки смещения CALL'а ...

newart
02.07.2013, 19:24
Тот проигрыватель, который уже пролетал (от TmK)
Был еще от CJ.

introspec
02.07.2013, 19:29
Я постарался сделать плеер таким. Что бы каждый мог разбить на нужные ему куски...
Большое спасибо за комментарии, это всё очень полезно. Я сейчас много работаю с точно отмеренным кодом и мне эти соображения очень близки и актуальны. Я пока не решил, какой именно из плейеров буду задействовать; но подглядываю везде, где только могу дотянуться :)

Robus
02.07.2013, 19:37
Тот проигрыватель, который уже пролетал (от TmK)
Вот ... Значит это был не PSB а TmK !!! Про него я и говорил ...


Где-то тут на форуме пролетал плеер с фикс кол-вом тактов ~1000.
Не в этом суть ... TmK делал под свои задачи, я под свои ...

---------- Post added at 18:37 ---------- Previous post was at 18:30 ----------


а каковы твои оценки общего числа созданных в редакторе треков?
Не знаю, но думаю за 10-ок точно есть.

Есть подробное описание формата? (я не смотрел пока и в ближайшую неделю не смогу, потому задаю глупые вопросы )
Документации на формат я не делал. Но он в памяти в распакованном виде занимает примерно 6 мегабайт. В формате много излишеств созданные ради универсальности и совместимости со всеми редакторами которые мне известны. Всётаки 128 паттернов по 999 линий и на два канала много занимают. Сам формат MAY очень не оптимален по размерам, но при сохранении всё пакуется и получаются маленькие файлики.

newart
02.07.2013, 19:45
Я постарался сделать плеер таким. Что бы каждый мог разбить на нужные ему куски. Кстати, можно вообще выкинуть какой-нибудь канал, допустим если надо только два канала. Плеер во многом универсален и добавляя эффекты в редакторе не надо менять сам плеер. Его устройство очень просто.
Всё это перечеркивается не поддержкой основного и станадртного формата на Спектруме - pt3.

Из 5 музыкантов, я не смог ни одного ничего написать в Mason'e.

Robus
02.07.2013, 20:06
???

introspec
02.07.2013, 20:28
Всё демка OSCOSS, написана так что на ходу компиляции меряются в тактах процедуры написанные на ходу. Например у меня есть эффект с головами отражающиеся в воде, для их высвечивания используется процедура рисования секторов [...].
Спасибо, я, кстати, думал там совсем по-другому сделано :)
Я разберусь обязательно. Не факт, что мне подойдёт по стилю, но всегда полезно знать инструментарий такого уровня.

breeze
02.07.2013, 20:38
Статистика независимая, люди не знали, что участвуют в опросе.…

При всём уважении так делать не красиво(я бы даже сказал грубее но воспитание не позволяет), даже microsoft когда устанавливаешь тот же Visual Studio тактично спрашивает «Хотите ли вы принять участие в сборе анонимной статистики?» Шлют они там что-либо или нет я не знаю, но вот Googl'у за то, что он «нечаянно» собирал данные пользователей таки пришлось выплатить около $7 млн. Думаю намёк понятен… :rolleyes:

Теперь второй нюанс, почему программа распространяется в виде инталятора? Она устанавливает какие-то библиотеки? Или что-то правит в реестре? Деинсталировал, запустил в виде отдельной программы, всё запустилось, никаких «библиотек» не понадобилось. Непонятно для чего засирать реестр и устанавливаться в «Program Files»?

Ну и теперь самое главное третий момент. Я конечно понимаю, 21й век, у многих достаточно мощное железо и много памяти…

http://i.imgur.com/Rkzz3KK.png

…но это уже явный перебор. Дуалкор 2,666 сложился как не знаю что.

Hacker VBI
02.07.2013, 21:02
breeze, сверни окно.
грузит интерфейс, не плеер.
У меня сонар со своими вст-ями вообще в 100 загонял, пока не срывался в дроп :)
это инструмент, всё намана

Robus
02.07.2013, 21:23
???

breeze
02.07.2013, 21:49
Нет не устанавливает, но в таком случае придётся копировать более чем один файл. Объяснять что там есть ещё какой-то файлик очень сложно. Сам ЕХЕ работать не будет, к нему обязателен пак графики.

эээ…*ничего не понял. Я имел ввиду, что почему бы просто не выложить zip-архивом? Тот же Unreal Speccy, ZXMAK да и опять же multiArtist, все распространяются в виде архива. Распаковал, запустил.
В чём проблема-то?


Вот потому что 21-ый век, отсюда и проблема. Стандартные настройки включают синхронизацию с лучём видеокарты. Из-за того, что современные драйвера давно забили на такую вещь как обработка прерываний, процедура ожидания луча ест время процессора.

Тпррррррр! Погоди! Тоесть тебе известно об этой проблеме и ты принципиально не хочешь сделать этот функционал отключаемым? Да я знаю, что такое Vsync и так же я знаю, что во всех современных играх не только присутствует опция, но и по умолчанию она отключена.



Можешь параллельно запустить 10 видеофильмов, свободное время высвободится ДРАЙВЕРОМ на фильмы. Mason есть крохи.

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


Что бы отключить режим ожидания луча нужно "CONFIG -> V-Sync".

Спасибо хоть на этом. Но всё-ровно, я бы пересмотрел вариант переделки интерфейса. Во первых если кто-то и сидит на windows98 этих людей явно в меньшинстве. И кроме того сделай масштабируемость интерфейса x2 x3 тупо увеличением пикселей без сглаживания, ибо на разрешении 1920x1080 тыкаться мышкой в малюсеньком окошке это верх издевательства.

Alex Rider
02.07.2013, 21:59
Не очень понимаю вот этот упор на скорость. Проигрыватели с полностью предсказуемой времянкой сложнее и нужнее, по-моему. По-моему, нужно больше таких плейеров.
Рисуем на верхнем бордюре, мультиколорим на экране, рисуем на нижнем бордюре, дальше надо быстро поиграть ноты и halt до следующего фрейма. Почему нет?

Robus
02.07.2013, 22:07
???

introspec
02.07.2013, 22:08
Рисуем на верхнем бордюре, мультиколорим на экране, рисуем на нижнем бордюре, дальше надо быстро поиграть ноты и halt до следующего фрейма. Почему нет?
1. Выравнивание на такт?
2. Которое работает и на скорпионе тоже?
3. А если ещё хочется рисовать вплоть до самой нижней кромки экрана, причём на Пентагоне?
Ну много же есть разных гитик.

Vitamin
02.07.2013, 22:34
Не знаю, но думаю за 10-ок точно есть.
Маловато...


Документации на формат я не делал.
Очень и очень зря. Восстанавливать эту информацию крайне сложно по прошествии времени. Особенно если есть несколько версий формата.


Но он в памяти в распакованном виде занимает примерно 6 мегабайт. В формате много излишеств созданные ради универсальности и совместимости со всеми редакторами которые мне известны. Всётаки 128 паттернов по 999 линий и на два канала много занимают. Сам формат MAY очень не оптимален по размерам, но при сохранении всё пакуется и получаются маленькие файлики.
Похоже на TFM Music Maker. Пофиг сколько оно весит в памяти- не на спеке же его играть, в конце концов. Главное- чтоб были четкие сигнатуры, по которым можно предположить о принадлежности данных формату.

Alex Rider
02.07.2013, 22:51
1. Выравнивание на такт?
2. Которое работает и на скорпионе тоже?
3. А если ещё хочется рисовать вплоть до самой нижней кромки экрана, причём на Пентагоне?
Ну много же есть разных гитик.
Это вот если хочется выравнивания на такт на желтом скорпе при рисовании на нижнем border'е, тогда надо медленный и выровненный плеер :) А если рисовать от верхнего края на пентагоне без скроллов на border'е, то подойдет быстрый невыровненный плеер :) Про вкус и цвет фломастеров спорить смысла нет, я только привел пример когда такой плеер надобен. Кстати, еще один пример - если мультиколора нет, но отрисовка экрана и логика занимают почти весь фрейм (в игрушке, например). Там я бы сэкономил 3к тактов на таком плеере.

introspec
02.07.2013, 22:55
Это вот если хочется выравнивания на такт на желтом скорпе при рисовании на нижнем border'е, тогда надо медленный и выровненный плеер :) А если рисовать от верхнего края на пентагоне без скроллов на border'е, то подойдет быстрый невыровненный плеер :)

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

TSL
03.07.2013, 00:23
люди не знали, что участвуют в опросе
Пожизненный эцих с гвоздями и бан на всех известных ресурсах с попиранием имени на рыночной площади при большом скоплении народа.
Алсо, привет лохам, которые не знают про файрвол.

psb
03.07.2013, 01:08
Не, ну я осознаю, конечно, что человечество как-то раньше выживало и без "ровного" плейера
выживало как могло. нередко при переходе между частями музон подтормаживал на тот самый ~инт (конеш, играть музон можно в конце инта, почему нет? (с) вот потому и нет).

introspec
03.07.2013, 01:15
выживало как могло. нередко при переходе между частями музон подтормаживал на тот самый ~инт (конеш, играть музон можно в конце инта, почему нет? (с) вот потому и нет).
Ну или вот Robus тут упомянул важный момент. Допустим, нужно выровняться на такт не выключая музыки. Ну и как это предлагается делать на практике? При этом, выравнивалка Alone Coder (впрочем, как и любая другая) - от двух до шести фреймов. С включённой музыкой - просто не сработает, а если музыку выключишь - оп-а, а мы теперь вообще не знаем, насколько наше исполнение отстало от музыки. Может на 2 фрейма. Может на шесть. Ну, и много таких нюансов.

psb
03.07.2013, 01:20
Допустим, нужно выровняться на такт не выключая музыки. Ну и как это предлагается делать на практике?
гг:) вот у меня та же была задача, сделал плеер константный:)) а на самом деле все равно где-то промахнулся с выравниванием...

introspec
03.07.2013, 01:25
гг:) вот у меня та же была задача, сделал плеер константный:)) а на самом деле все равно где-то промахнулся с выравниванием...
Так константного плейера недостаточно, нужно же саму выравнивалку под плейер подстраивать. Или там что-то ещё? Ну, да, есть ещё бич всех времён и народов, страшный и ужасный жёлтый скорпион...

psb
03.07.2013, 01:38
я и подстраивал все:) но все равно в спешке облажался...

introspec
03.07.2013, 01:41
я и подстраивал все:) но все равно в спешке облажался...
Очень сочувствую, сам занимаюсь сейчас в точности этим же... :)

Robus
03.07.2013, 02:46
???

TSL
03.07.2013, 07:30
О, какие душевные эмопсто. Аффтар, рефлексируй исчо! :)

introspec
03.07.2013, 09:35
Могу поделиться процедурой, главное что бы плеер ровно играл.
Спасибо, но как раз я это уже сделал, под мои специфические требования (т.е. поддержка вейтовых и невейтовых компьютеров одновременно). Для меня сейчас важнее не конкретный код, а идеи, вроде перечисленных в треде идей для "удобного" проигрывателя работающего с выверенным до такта кодом. Чтобы не понаделать глупостей по дороге.

Hacker VBI
29.07.2013, 15:06
После компиляции получаю бин с музыкой без проигрывателя.
проигрыватель где взять?
и ещё интересует, как получить номер проигрываемого семпла на каналах

Vinnny
30.07.2013, 22:52
куда делся проект?

AAA
30.07.2013, 23:23
куда делся проект?

на месте и музыка под него пишется. И в демо Робуса только она и играет

Vinnny
31.07.2013, 10:10
не вижу ни одной ссылки. всё потёрто. домашняя страница есть?

Дмитрий
31.07.2013, 11:09
не вижу ни одной ссылки. всё потёрто.
Выдается по запросу у автора.

Hacker VBI
31.07.2013, 14:44
Vinnny, прислать? напиши в личку.
плеер достану из свежей демы роба, выложу здесь.

AAA
31.07.2013, 14:47
Массон плеер есть у меня в почте. Мелодии все какие есть и можно давать я ложил недавно на форум паком.

Hacker VBI
31.07.2013, 14:54
Плеер могу выдрать только стримовый.
Лёш, выложь/пришли плеер, а?

AAA
31.07.2013, 14:56
Плеер могу выдрать только стримовый.
Лёш, выложь/пришли плеер, а?

щаз дам ссылку жди

https://disk.yandex.ru/public/?hash=u1ZzTFAvMI1jmVW1HccPyn0x5OmtzBasNHq4j7n1pn8% 3D

Avast отключайте при установке

Немножка мелодий тут
http://zx.pk.ru/showpost.php?p=609200&postcount=907

остальные мелодии я недавно паковал и выкладывал, но не помню кому сюда в тему про ааа пати или в тему про пати ааа или в тему про дихальт или просто вби

Hacker VBI
31.07.2013, 16:17
тот плеер, да не тот. Это редактор, это для Виннни

AAA
31.07.2013, 16:18
тот плеер, да не тот. Это редактор, это для Виннни

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

Vinnny
31.07.2013, 16:53
я не музакер. просто хотел оформить в виде новости на speccy live, чтобы привлечь внимание к проекту, разработке/тестированию. без ссылок это практически нереально.