24 ноября 2009 г.

Inner Spring (musicdisk)

Ну вот.

Таки сделал свой первый musicdisk (дай бог не последний).

Плеер наваял на дельфях, OpenGL/DirectX не использовались (вполне хватило и graph32).

В состав диска вошли 15 спектрумовских треков (сделаны в период 1996-1998, кроме трека "Timedrops", датируемого августом 2009-го) и 14 модулей, сварганенных в Impulse Tracker с 2001-го по 2004-й.

Все IT-модули были оптимизированы по размеру (путем удаления неиспользуемых семплов) с помощью чудной программы Magicfish Postmod 1.04, которую можно невозбранно скачать с её родного сайта.

Эмуляцию AY решил пока руками не трогать, взял готовый код из проектов Сергея Бульбы"Vortex Tracker II" (основной код эмуляции и плеера) и "AY Emulator 2.9b5" (процедура паузы и еще что-то, уже не помню). Автору – СПАСИБО!

Ну а IT-модули, само собой, играются BASS'ом.

Скачать (7.8 Мб)
6 комментов

9 марта 2011 г., 17:18:17
Dark Simpson (http://www.darksimpson.com)
6
Спасибо! Дисок шикарен!
А от Timedrops фанатею еще с того момента, как услышал на CC. Из всего, что там представлялось, пожалуй, самый лучший трек (говорю как профессиональный музыкант — 15 лет дирижерского образования за плечами). Я бы присудил ему на CC почетное нулевое место на все века! Да и вообще, ставлю его для себя в один ряд с Stranglehold.
Жаль, тогда я на этот сайт почему-то не наткнулся (хотя и искал).
А вообще, продолжайте творить — отлично получается!
Честно говоря, слегка потерял дар речи. СПАСИБО! Я, правда, не столь высокого мнения о Timedrops (на хабре отписал, почему), но это авторское. К слову, во время тогдашнего CC этого сайта ещё не было - он вообще появился благодаря какому-то комменту на pouet'e, мол на унтергрунде сценерам хостинг халявный раздают, чо вы на народе-то сидите (фигурально говоря :)). Вообще такие комменты мне жить и творить помогают, так что спасибо еще раз, за мной не заржавеет!
10 марта 2010 г., 12:32:29
h13.Bishop
5
А можно зеркальце добавить, а то нигде больше не могу найти. Спасибо.
Можно, почему нет: зеркало.
4 марта 2010 г., 23:54:07
?000??0???00
4
А подскажите пожалуйста, как эту музыку в mp3 перевести?)
Если вкратце, то основные способы описаны здесь. Но если не хочется или нет возможности заморачиваться, могу сваять программку-конвертер. Надо, нет? :)
2 марта 2010 г., 15:59:43
Maxim (http://maximuzzz.blogspot.com/)
3
Очень понравился ваш musicdisk. Слушаю его на репите уже довольно долго.
Спасибо!
Вам спасибо! Рад, что моя старая музыка пришлась Вам по вкусу.
28 декабря 2009 г., 21:19:33
balalaika
2
lolik.
bulba je vilojil davno otdelno player na pascale, beri i usai, bez zamoro4ek :D
Странно :) видать, плохо искал :D
28 ноября 2009 г., 01:15:22
SCRIMERS (http://pouet.net/prod.php?which=53806)
1
Дисочек хороший получился. Мне вот больше интересно, как ты разобрался с кодами проигрывателя вортекса? тяжко было? а то как-то я смотрел там код, не помню чем закончилось..
Спасибо!

А с AY-плеером действительно пришлось изрядно попотеть. Основная сложность была в том, что нужные функции разбросаны по куче модулей, и не зная замысла автора довольно сложно понять, что там к чему. Пришлось побегать по обработчикам кнопок :) В итоге выяснилось, что нужны всего 3 модуля: AY.pas (эмуляция чипа AY/YM, подготовка буферов для waveOut), WaveOutAPI.pas (вывод звука) и trfuncs.pas (парсинг модуля), плюс процедура загрузки и декодирования модуля.

Там в чем суть-то (насколько я понял). Сначала грузится модуль, неважно в каком формате - он после загрузки преобразуется в формат редактора и хранится в объекте VTMP, там всё - паттерны, список позиций, инструменты, орнаменты. После клика по "Play" создается поток воспроизведения (WaveOutAPI.pas), который регулярно вызывает функцию MakeBuffers (AY.pas), заполняющую звуковые буферы годными данными, ну и передает содержимое этих буферов звуковухе. Эта функция в свою очередь вызывает функции парсинга модуля из trfuncs.pas (по сути, построчное воспроизведение с изменением значений громкости/частоты для звука/шума/огибающей в каждом канале) с установкой значений регистров AY (AY.pas). По окончании воспроизведения модуля поток посылает сообщение главной форме, мол, чо дальше-то?

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

Новый комментарий

* – обязательные поля