21

Кастомный чиптюн

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

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

Сделал)) Вот на SoundCloud музыка для главного меню игры. Как вам?

Исходный код музыки (на встроенном языке Sandbasix):

10 // ***********************************

20 // *** SPETROMSX Main Menu Theme ***

30 // *** by Andrey Fomin ***

40 // ***********************************

50 //

60 // 0 - High Arpegio

70 TRACK:0 vol=6 sqr=5 oct=4

80 STEREO min=-8 max=5

90 LFGVOL per=16 min=10 max=15 bynote=true adsr=90,5,100,30

100 ARPEGIO steps=--0--1&2--3-4--5-6--0&3--2-1 shift=16 dur=8 mode=ext

110 DELAY:0 fading=40 time=8 count=2 pan=-5,5

120 // 1 - Mid Bass Arpegio

130 TRACK:1 vol=3 oct=3 sqr=10 adsr=1,30,30,20

140 LFGPAN:1 per=8 min=-12 max=0 bynote=true

150 LFGDUTY:1 per=0.125 min=0 max=8 bynote=false

160 ARPEGIO:1 steps=0-1--0-1-2-0-1-2----0--2 shift=16 dur=24 mode=ext

170 DELAY:1 fading=50 time=8 count=2 pan=10,-5

180 // 2 - Strings

190 TRACK:2 vol=6 oct=3 sqr=12 adsr=90,8,70,50

200 LFGVOL:2 per=16 min=8 max=15 bynote=true adsr=50,8,100,50

210 STEREO:2 min=0 max=12

220 // 3 - Bass

230 TRACK:3 vol=12 oct=1 sqr=4 duty=2 adsr=4,30,30,40

240 LFGPAN:3 per=8 min=-7 max=3 bynote=true

250 ARPEGIO:3 steps=0--0--0--0-0- shift=8 dur=8

260 // 4 - Drums

270 TRACK:4 vol=11

280 // 5 - Solo

290 TRACK:5 vol=3 sqr=10 oct=4 duty=2 adsr=10,50,50,10

300 LFGPAN:5 per=8 min=-10 max=10 bynote=true

310 DELAY:5 fading=75 time=8 count=4 pan=-13,13,-7,7

320 LFGSQR:5 per=8 min=0 max=15 bynote=true

330 //

340 // *** MAIN CHORDS ***

350 SET:A F#maj9| Bmaj9| Amaj9| Emaj9|

360 SET:a F#maj9| Bmaj9| Amaj9| Dmaj9|

370 SET:B Gm9| D#9| Cm11| D#mMaj7|

380 SET:C Am11| D7| Fmaj7| Cmaj7|

390 SET:D Fm9| D#maj9| Fm9| D#maj9|

400 // *** POWER CHORDS ***

410 SET:pA F#5| B5| A5| E5| F#5| B5| A5| D5|

420 SET:pB G5| D#5| C5| D#5| G5| D#5| C5| D#5|

430 SET:pC A5| D5| F5| C5| A5| D5| F5| C5|

440 SET:pD F5| D#5| F5| G5| F5| D#5| F5| G5|

450 // *** DRUMS ***

460 SET:d1 @*-%-%-*-!-$-*-^-%-*-_-*-!-*-%-$-

470 SET:d2 *-%-%-*-!-%-*-!-%*-^-!-*-!-_-%-$-

480 SET:d3 %*--$-*-%!--$*--%-*-$-*-%!-*-$--

490 SET:d4 *---*-!--*-*-^_-^_-!-~_-~_-!-*_-*_-

500 SET:d ?d1 ?d2 ?d1 ?d4 ?d1 ?d2 ?d3 ?d4

510 SET:e1 %*--$-%-!%--$-^-_-%-$--!%-%-$-%-

520 SET:e2 %*-*-$-%-!%--$-~-*-%-$--!%-%-$-%-

530 SET:e3 %*-*-$-%-!%--$-~-*-%-$-*-!%-%-!$-*%-

540 SET:e ?e1 ?e2 ?e1 ?e3

550 //

560 // *** PLAY ***

570 //

590 PLAY:1 ?pA :1

600 PLAY:4 R0.5 ?e1 ?e3 ?e

610 PLAY:0 R0.25 ?a

630 REWIND 1

640 PLAY:0 ?A ?a :2

650 PLAY:1 ?pA

660 PLAY:3 ?pA

670 PLAY:4 ?e ?e

690 REWIND 2

700 PLAY:0 ?B ?B :3

710 PLAY:2 v5 ?B ?B

720 PLAY:3 ?pB

730 PLAY:4 ?d

750 REWIND 3

760 PLAY:0 ?C ?C :4

770 PLAY:1 ?pC

780 PLAY:3 ?pC

790 PLAY:4 ?e ?e

810 REWIND 4

820 PLAY:0 ?D ?D :5

830 PLAY:2 v5 ?D ?D

840 PLAY:3 ?pD

850 PLAY:4 ?d

870 REWIND 5

880 PLAY:2 v5 ?A ?a

890 PLAY:3 ?pA

900 PLAY:5 A#8 F>4 F>4 C#>4 F>8 D#>8 R2 R4 R8 C#>4 R8 G#4 R4 R8 B4 R8 D#4 R4 R8 F

910 LOOP

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

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

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества