что надо сделать, по порядку:

поправить импорт vtx, psg
сделать настройки импорта wav, хрен с ним, что пока криво импортит
экспорт инструмента vt2
переделать плеер, или что-то такое (пример глючит на одном AY, по известной причине)

это минимум, дальше по ходу дела (что-то можно временно запретить для текущего релиза)

докрутить импорт vgm до вменяемого состояния
сделать импорт из snd



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


k> и вот такая просьба: сделай пожалуйста сохранение семплов
k> в вортексном txt формате  - уж больно там удобно ударники
k> делать, а в ручную както лень переносить :) ок?

k> Имхо без накоплений и зацикливаний тоже будет нормально. сделать по
k> умолчанию зацикливание на последнем тике +1 , где в последнем тике +1
k> - пустота

vt2> 7)  максимальная длина сэмпла - 255 (в ZX-плеерах - 64);
но на самом деле - 3f последняя позиция сэмпла, а не 255.

экспорт - как его сделать..

проблема - в том, что у сэмпла есть понятие basenote. видимо, при экспорте её нужно как-то задавать.

формат достаточно простой - txt:

[Sample]
Tne +000_ +00_ E_
Tne +000_ +00_ E_
Tne +000_ +00_ D_
Tne +000_ +00_ D_
Tne +000_ +00_ C_ L
Tne +000_ +00_ C_
Tne +000_ +00_ C_
Tne +000_ +00_ C-


k> было б очень не плохо, если б в поле громкости (да и в остальных тоже)
k> появились две кнопочки - одна прибавить единицу на всём поле, а другая
k> - убавить единицу! а то вот вавы если тихие импортить, то вручную надо
k> подгонять



добавить всякое разное для поддержки MSX и Amstrad. Например, плеер для MSX




что нужно сделать для следующей версии:

импорт вава докрутить до какого-нибудь внятного состояния (диалог с настройками импорта сделать и т.п.)
импорт из vgm (и возможно gym)

соответственно пополнить библиотеку эффектов

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


опять проблемы в импорте psg/vtx, первый сэмпл... надо что-то с этим уже делать; и пропуск для импорта из выбранного канала тоже надо сделать


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

м.б., табличку громкости сделать опциональной?


текущие проблемы импорта из вава:

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

опции импорта из wav:

нормализация гр.огибающей вкл-выкл
пренормализация сигнала (для анализа частоты, вроде-бы точнее)
использовать табличку громкости (как это называется-то..)
определение частоты вкл-выкл
- размер fft
- заносить в тон, в шум, и туда и туда
- ширина полосы анализируемых частот (от n до m, пригодится)



импорт vgm/gym - какие нужны опции

выбор канала: auto/1234 (123tone, 4noise)
импорт только тона(шум) или смешивание

значит четыре батона - выбор канала
и чекбокс mix noise (активен только для каналов 1-3)



надо будет перевести хелп и комменты в плеере на английский


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




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

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




интерполяция для даунсэмплинга и фильтр - чтобы получше звучало проигрывание


импорт из ines .snd - для начала надо его ещё как-то сохранить..



пока в окне пианино такие проблемы:

- c подсветкой, как завёл маусап с лабелов на форму - подсветка по клику не срабатывает (не успевает обновиться, а если делать апдейт - тормоза)


диалог выбора канала для импорта в psg/vtx - A,B,C или Auto (первый звучащий из трёх)
 -- работает, но в этом случае для ABC не идёт пропуск пустых значений!
 
 
неплохо-бы сделать непосредственный ввод номера эффекта

выделение строки по shift, с курсорными клавишами/промотками... т.е. если зажать на строке shift, и потом вниз/вверх - выделится та строка, на которой был курсор; если pgup/down - от той до предыдущей относительно новой..

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


идея такая. по нажатию shift нужно запомнить текущую строку (curYoff)

теперь при любом изменении curYoff (с клавиатуры) нужно пометить все строки от запомненной до новой

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








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

каждые n строк как-то подсвечивать (фон), а то не очень удобно (каждую секунду, например)

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




курсор куда-то не туда переходит при delete блока, если он сам стоял далеко... становится не видно того места, где было удаление






импорт из vgm нужно сделать. раздельно сначала тон, потом шум, а потом придумывать, как их смешивать.



операции undo/redo (пока вообще неясно, как - это напоследок)
желательно запоминать, было-ли хоть какое-то изменение эффекта (добавлялся-ли undo-list), и если было - перед закрытием/new/load предупреждать; а также писать звёздочку в заголовке окна

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


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


совсем потом: сохранение настроек и recent files для банков и эффектов


DB> нужно склеивание двух эффектов с/без наложения





сделать импорт из vgm (чисто данные для sn-ки)
[конвертить не очень понятно как - ведь шум не имеет собственной громкости]

также из gym, тоже только с sn-ки, но с genesis

с gym вообще попроще, там квантование по прерываниям, но и эффекты там не очень-то одноканальные, так что придётся мудрить с vgm


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








возможно, импорт из каких-либо миди-подформатов (одноголосые эффекты для мобил?)

поискать ещё какие-либо эмули с записью дампа регистров, AY или другие простые чипы (msx/cpc/nes/gb)




нужен даунсэмплинг с интерполяцией при рендере эффекта в буфер

идея крутого даунсэмплинга такая:

даунсэмплим только вдвое
для каждого выходного сэмпла берём сумму трёх исходных (текущий и соседи) с весами 1/4,1/2,1/4


собственно, такая-же тема нужна при импорте громкости из wav (а не текущая хрень с накоплением громкости)! это-же тоже даунсэмплинг





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

AS> Сильно чешу репу насчёт импорта эффектов из vgm (sega master system).
 AS> Там три тональника и шум, и все четыре канала имеют свою громкость.
 AS> Эффекты обычно содержат в себе и шум, и тональник - вот думаю, чью-же
 AS> громкость брать-то в этом случае...
это проблема...
видимо, так:
а) если громкость шума меньше 1/2 громкости тональника - шум игнорируем.
б) если громкость шума больше 2 громкостей тональника - тональник игнорируем.
в) иначе TN, громкость = (громкость тональника + громкость шума)/1.4. [Делим не
на 2, а на 1.4, потому что TN тише, чем T, и тише, чем N.]

потом громкость пересчитываем в AY громкость по таблице by Monster/Sage.
