Info Guide
#07
31 мая 2005 |
|
Звук - Дикие идеи для AY трекеров.
Дикие идеи для AY трекеров _________ __ __ ________ ____ __ ___ _ //_ \ |__ __ _______ \ ______ _____ | _____ / _____ _____ // _____ // ._ /_ | ._ /_ ._ /_ ._ /____ ._ |/ /_ | /---| /---| /--| / | / _/_. |_____/ _______/ ______/ _____/ _______ | ==|____//=jf=\_____/=====|______|===|____//=======\______|= ____ __________ //__ _ _____ //___ pr oo tracc kerr _____ ___ _____\ __ ____ _______ \ //_______ Эпиграф: Alone Coder> В журнале/игре нужно редактировать начало каждого музона для полной инициализации. Pawel/Real Software> Как...? Alone Coder> Поставить ноту (хотя бы паузу) и орнамент. Pawel/Real Software> Hикакой заботы о пользователе. Alone Coder> ПРО трекер, однако :) Mast: 1. Hеобходимо сделать несколько режимов Write Data - в смысле, чтобы можно было запомнить много последовательностей типа: 1F0F, AC00, 1F3B и т.д., например, набил в окошке Write Data 1F0F, потом нажал SS+1 - последовательность 1F0F запомнилась на кнопке 1, короче, чтобы не пудрить себе и вам мозги, объясню попроще: нужно сделать,чтобы данные Write Data запоминались подобно запо─ минанию адресов в STS (там это повешено на кнопку А) - например, SS+1,2,3,4,5 - запомнить, CS+1,2,3,4,5 - восстановить. 2. Дополнение к интерфейсу: если режим Write Data включен и там присутствует огибающая, то по кнопке 'L' удаляется не только значение ноты, но и огибающей; если во Write data включен сэмпл, то по 'L' удаляется также и сэмпл; если включен орнамент, также удаляется и орнамент; если включена громкость, удаляется гром─ кость. Если Write Data выключен,то как обычно - по "L" удаляется только нота. 3. Ввести дополнительную опцию: Delete mode - если включена,то по "L" удаляются все значения (ноты, огибающей,орнамента,сэмпла, громкости), если выключена, то как обычно. 4. Сделать возможным запись во Write data команд (в смысле глисс, порт и т.д.). 5. Ввести комманду Vibrate (быстрый глисс вверх-вниз). 6. Hе помешало бы, чтобы паттерны, позиции и номера строк для копирования можно было не только мотать маленькими курсорчиками, т.е. добавить ещё один режим: подводишь стрелку к цифре, нажима─ ешь fire,- вместо цифры появляется маленький курсор,вводишь своё значение. Так будет намного быстрее работать с копированием бло─ ков. 7. Сделать накладку шума для каждого канала отдельно (как в PT2). 8. Транспозиция огибающей. Иван Рощин: 1. Чтобы можно было устанавливать новое значение периода оги─ бающей без перезаписи R13. (Alone Coder: автопересчёт последовательности команд установ─ ки огибающей A/E/C/8 в команды 9xxx, Axxx?) 2. Так же, как есть команды для плавного изменения частоты тона, должны быть аналогичные команды для частоты огибающей, частоты шума и для громкости. Нужна команда "сделать звучание на канале громче или тише на заданную величину". 3. В связи с увеличением числа команд, может возникнуть необ─ ходимость установить на одну ноту несколько команд, и это надо предусмотреть. 4. В Pro Tracker'е можно регулировать глобальную громкость мелодии, а хотелось бы также регулировать громкость отдельно по каждому каналу. 5. Чтобы музыкальные анализаторы были, как в BestView ;) 6. Хорошо если бы можно было загрузить в память несколько мелодий (насколько хватит памяти), и затем переключаться по на─ жатию клавиши от редактирования одной мелодии к другой (напри─ мер, SS+1 - редактируем 1-ю мелодию, нажали SS+2 - редактируем 2-ю и т.п.). Это удобно, когда приходится собирать мелодию из нескольких отдельно написанных кусков. 7. В Pro Tracker'е есть комбинации клавиш SS+W, SS+E - запоми─ нание канала в буфере/восстановление из буфера. Так же можно сделать и запоминание/восстановление целых PATTERN, а также SAMPLE, ORNAMENT. Это будет удобно при редактировании нескольких одновременно находящихся в памяти мелодий (например,взяли SAMPLE из одной мелодии в буфер, перешли к другой мелодии, восстановили из буфера). Miguel: 1. Хотелось бы видеть работу с блоками (особенно в sample and ornament editor'ах). 2. Неплохо было бы сделать поиск с заменой. 3. Также неплохо бы было иметь такую опцию, как save loop, то есть когда надо сохранить не 1 паттерн, а последовательность, также сохраняя и инструменты. Ну, то есть, как отдельный song. Можно также сделать и Copy loop (то есть входишь в positions list, выбираешь loop, нажимаешь SS+E, перемещаешь курсор куда надо и делаешь SS+R. Отсюда вытекает, что помимо копирования можно сделать и перенос loop'a. А отсюда вытекает, что это же можно сделать и в sampleornament editor, а это, в свою очередь, опять ведёт к необходимости делать работу с блоками, как глоба─ льную необходимость, без которой становится всё трудней и труд─ ней. 4. Надо сделать setup для мышки, чтобы можно было сменить скорость передвижения курсора (шаг) и реверс кнопок. (Alone Coder: о нет, только не реверс...) Jeffie: 1. Если войти в decompiler, то выводятся все файлы, которые есть на диске. Если потом зайти в disk menu, то лист диска оста─ ётся от decompiler'а. Надо, чтобы листинг диска каждый раз после входа в disk options перефильтровывался (расширения 'm'), а в decompiler'e перечитывался - чтобы видеть все файлы. (Alone Coder: объединить disk menu и decompiler, добавив кно─ пку "все файлы"?) 2. Чтобы можно было печатать название трэка всеми символами, а то иногда бывает надо '', а его хрен поставишь. Moran: 1. Более 1 канала запоминания в буфер. 2. Горячую клаву для обнуления счетчиков копирования. (Как в DIGITAL STUDIO функция HOME.) 3. Запоминание части канала и выгрузка в любой позиции. 4. Горячую клаву для обмена +/- транспозиции. 5. Огибающую в редакторе сэмплов. 6. Какие-нибудь анализаторы, в пустые места. Alone Coder: 1. PT3 может быть 42-символьным: 63 0100 g c-4 1234.... c-4 1234.... c-4 1234.... 12 3456 7 890 12345678 901 23456789 012 34567890 2p 2p 2p 2p 2p 2p 2p 2p 3chr3chr 40*6=240 +2p*8= 16 =256 2. AY с freq не 50Hz, а 100Hz. 3. AY с freq 1kHz - сэмплы практически цифровые, но как их получить? 4. Использовать хитрость (для турбо не прокатит, точнее, не совсем попадёт) и делать громкость у тихой огибающей выжиданием на высокой частоте огибающей. 5. Хранить дорожки для инструментов, которые группируются в каналы. Дорожки содержат номер сэмплов (для прописывания партий ударников)! Увеличивается ёмкость каналов из расчёта на одинако─ вое удобство редактирования; плюс в мало похожих паттернах/кана─ лах бывают ой как похожие дорожки для многих инструментов! Плюс можно видеть весь паттерн; плюс можно редактировать по принципу драм-машины; плюс затирание каналов друг другом можно выбирать любое (задавать приоритеты). 6. Обычный трекер, но с оверлейной дорожкой (накладывается на любой канал по вкусу). 7. Огибающую и её тип класть в сэмпл, инициализацию туда же. Выигрыш в размере нотного текста. 8. Команда "продолжить играть предпредыдущую ноту" (для эха). 9. Альтернатива: вибрато со старой нотой в "дырках". 10. Хранить мелодию в терминах ступеней аккорда, а аккорды в терминах ступеней гаммы. (Делать это только в транспозиции?) 11. В сэмпле режим autoenv с любым коэффициентом, с подтяжкой частоты сэмпла к частоте огибающей с разливом на +(-)0, +(-)1... по вкусу. 12. Таблицу громкости заменить на простое сложение. 13. Много строк на экране, скроллинг организовавать как в мно─ гозадачных системах: если текущий цикл скроллинга не успел вов─ ремя, то доводим его до конца,а в следующий раз сдвинем уже на 2 строки. Вариант: показывать на экране 32 строки паттерна и запу─ скать цикл перепечатки после перехода на новый паттерн (или на 2-ю половину этого). 14. Параметры ноты (сэмпл,форма вибрато и его глубина,характер изменения громкости и пр.) группировать в микропрограммы пользо─ вателя (с 1-2 параметрами), чтобы в тексте они не занимали много места. Для каждой микропрограммы дать возможность указать понят─ ное название,чтобы можно было легко найти её в списке (перебором цифробукв при нахождении курсора в поле редактирования). Возмож─ ности должны быть широкими - вспоминать предпредыдущий орнамент, ноту, автоматически подстраиваться под используемую громкость, плавно менять вибрато, регулировать приоритеты использования шумов и наложения, подстраивать огибающую под тон и тон под оги─ бающую и т.п. Скорее всего, это проще реализовать через перемен─ ные микропрограмм (область этих переменных должна быть общая для всех микропрограмм, играющих в канале - но дать и доступ к пере─ менным других каналов?). Операции умножения/деления в языке не нужны (?), выражения особенно - выражения можно программировать последовательностью микрокоманд. 15. Команду фазировку тональника, хотя бы без параметра (чтобы огибающая с тоном была хотя бы наполовину предсказуемой)!!! ;Эта программа (она же AYFIX.H в приложении) демонстрирует, ;сколько разных звуков можно получить на одной и той же ;комбинации tone+env, варьируя фазу тональника ;крутите фазу кнопками O,P! ORG #6000 ;обнуляем все регистры AY LD DE,#E00 DEC D CALL OUTAY JR NZ,$-4 LLL HALT LD DE,#7FF CALL OUTAY ;запрещаем тональник LD DE,#800 CALL OUTAY ;запрещаем огибающую ;тишина CALL 8020 ;BREAK RET NC ;регулируем фазу (см.ниже) LD HL,WAIT LD A,#DF IN A,(-2) RRA JR C,$+3 INC (HL) RRA JR C,$+3 DEC (HL) ;показываем фазу на экране LD B,(HL) LD HL,#5800 LD (HL),255 INC L DJNZ $-3 JR Z,$+7 LD (HL),0 INC L JR NZ,$-3 ;обнуляем частоту тональника LD DE,#000 CALL OUTAY LD DE,#100 CALL OUTAY ;теперь счетчик тональника в фиксированном положении ;флаг тональника в одном из 2 положений: "вкл" или "выкл" LD HL,#3C*8 ;период тональника LD D,#0 LD E,L CALL OUTAY ;устанавливаем (мл.) LD D,#1 LD E,H CALL OUTAY ;устанавливаем (ст.) ;делаем задержку для сдвига фазы тональника WAIT=$+1 LD B,1 WAIT0 LD A,8 DEC A JR NZ,$-1 DJNZ WAIT0 ;теперь тональник в выбранной нами фазе F ;но из-за непредсказуемости флага эта фаза может быть F+180° LD DE,#7FE CALL OUTAY ;разрешаем тональник LD DE,#810 CALL OUTAY ;разрешаем огибающую LD DE,#B1E CALL OUTAY ;устанавливаем период огибающей LD DE,#D0E CALL OUTAY ;уст.тип огибающей (E) ;теперь огибающая в начальной фазе. ;слушаем... LD B,3 HALT DJNZ $-1 JR LLL OUTAY LD BC,#FFFD OUT (C),D LD B,#BF OUT (C),E RET PT3 todo list: (всем рекомендую иметь todo листы в своих проектах, при этом программа развивается даже тогда, когда не развивается: вы накапливаете идеи и глюки, вписывая их по одному, т.е. сразу, когда придумаете или заметите, - а потом, засев за код, реализуете сразу несколько предложений из записанных) -под Unreal Speccy +Gluk5.5 (не 6.0!), PT, запущенный с диска A: выбираем диск B (без предварит. инициализации в TR-DOS'е) - disk error -не полностью грузились некоторые .F? BASILMUS.F - аж с v3.31!!! +verify при записи (чтобы не висло и в случае, если диск не читается!) *3xxx с переходом через 0 (на первом же шаге) при сохранении автоматически урезать (Firestarter) +отключабельный автоповтор при вводе чего угодно +кнопку для EXCHANGE +окно файлов побольше +в ptutil убивать лишние треки/сэмплы/орнаменты +в ptutil защититься от сбросов после swap chn со смещ. шума в B +в ptutil прокрутка при проигр-и (и показ процентов) +в ptutil индикаторы, юзаются ли разные фишки плейера, плюс по всем смп/орн - макс.юзанная длина, для этого кнопку сверхбыстрого проигр-я. +в ptutil ПОКАЗЫВАТЬ,сколько % проиграно!!! И возм-сть прокрутки +плейер ptutil по Бульбе +в ptutil перевод сонгов в таблицу ST +ориентируясь на таблицу ST и частоту 1.77 MHz, переобозвать ноты на строй ДО +при загрузке показывать все громкости, сэмплы и орнаменты на нотах? (неудобно потом будет менять циферку орнамента на целом паттерне!) (сделать горячки в канале - показать все цифры, убрать лишние цифры?) +авторазворачивалку сэмплов (убирание левых ноликов-накоплений) +не моргать при прокручивании сэмплов по PgUp/PgDn +показывать ноту в огибающей, если она попала в ноту +при переключении ed melody on/off не прыгать на нач. паттерна +при смене длины паттерна не прыгать в его начало +в плейере frq работать с 3xxx опционально мудро +при нажатии новой ноты (без отпускания старой) играть новую -паттерн длиной <5 неверно скроллируется на следующий РЕШЕНИЕ: при вводе чего-л. перепечатывать весь паттерн +шум копировать с каналом B +сэмпл W /убить стрелку на главном экране +при нажатии enter просчитывать параметры нот с самого верха паттерна - правильное звучание *в редакторе названия сначала устанавливать Caps=off +сохранение без компиляции, в раскрытом виде +спецнота - повтор предыдущей ноты (стоящей до той, которую только что играли) - для эха и чересстрочных треков +хорошо бы и спецорнамент такой? +undo одной ноты (U в поле ноты) +сравнение треков - одинаковые или нет +кнопки сдвига/раздвига всех каналов одновременно (для смены растемповки музона) +копирование всех каналов +транспонирование громкости Сборка и экономия памяти: *если убить сэмпл 0, то в pg4 #1200 (а не #1000) байт свободно (под окошки? или перепечатывать весь экран после закрытия окна?) /убить скроллбар в дисковом меню *ВЕСЬ код (плейер выкинуть) загнать в ниж.память, таблицы в верх.память +ROM ver (уже можно 66 секторов) +рассчитать DIGITS (и короткий синус?) *в компиляторе считать пустышки после того, как пройдут? и в конце паттерна? *m2hrust #1200 байт (для 128k компиляции) Complex Tracker AY+Covox: ##tF Teee+n n-1aov n-2aov n-3aov|c-1iefv c-2iefv c-3iefv c-4iefv 0123456789012345678901234567890123456789012345678901234567890123 6x6 (диезы узкие)? ##t e-1Tn n-1av n-2av n-3av c-1ifv c-2ifv c-3ifv c-4ifv t - tempo F - some filter? noiselevel/distortionform/echo? T - ay env type eee - ay env frq (нотой?) +n - ay noise disp a - ay sample o - ay ornament(?) v - volume s - sample e - effect type f - effect parameter effects: slide/portamento, offset, ... instruments: инструменты делаются на основе сэмпла, на одном сэмпле может быть несколько инструментов. (begin),(len),(loop),#sample begin - linestart point in sample (начинаем играть сэмпл раньше строчки, на которой его нота! так можно реализовать более реальную игру на инструментах, у которых перед пиком звука что-то ещё должно звучать). график изменения громкости и график изменения точного смещения частоты (для вибрато). samples: флажок: "хранить сэмпл в памяти в интерполированном виде?(Y/N)". +t-1+%% ^^^^смещение в полутонах (как нота) defaults: begin, len, loop. AY samples: l (T)(f)(+)t-1+%% (N)(h)(+)n (E)(u)(+)ee (+)v %% - очень точный disp в долях полутона. l - прозрачность (предыдущая нота ВСЕГДА обсчитывается на фоне текущей). f - значение tone (не смещение) - для тихой огибающей и ударника поверх тона (примерно как в pt3'шном орнаменте "-96"). h - значение noise (не смещение) - для тарелочек на любом глобальном смещении шума. u - значение env (не смещение) - для ударника на огибающей и использования огибающей 0.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября