Вниз
Скачать: CL | DM;

Немного музыки   Найти похожие ветки 

← →
Dimka Maslov ©   (2016-01-20 11:08) [0]

Имеется, скажем, видео. Такое вот например:
http://www.youtube.com/watch?v=i7wjjTB5qaw

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

Теперь хотелось бы сделать так, что пузыри летали не абы как, а в такт какой-нибудь мелодии.  Вопрос как это лучше сделать? Ответ напрашивается сам: надо взять wav файл с мелодией, прочитать из него данные и на основании этих данных и строить уже функции движения пузырей. Загвоздка в том, что я так и не смог понять толком, что же за информация хранится в файле (функция амплитуды/частоты от времени?) и как она там хранится.

Может кто подскажет?


← →
кгшзх ©   (2016-01-20 11:15) [1]

не все так просто.
даже если из вава вынуть "мелодию" и каждому пузырю приделать еще одну функцию, то будет лажа.
пузырики конечно будут елозить по мелодии, но если все одинаково, то будет некрасиво.


← →
Dimka Maslov ©   (2016-01-20 11:22) [2]

Можно и не одинаково: играясь коэффициентами, но в целом глаз должен видеть движение в такт музыке. Тут вообще возникает огромный простор для творчества, но проблема всё таки в том, что есть данные wav?


← →
pavelnk ©   (2016-01-20 11:50) [3]

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


← →
Dimka Maslov ©   (2016-01-20 11:57) [4]

Как тогда получить из файла значение амплитуды в момент времени?


← →
Inovet ©   (2016-01-20 12:42) [5]

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


← →
Dimka Maslov ©   (2016-01-20 15:17) [6]


> Inovet ©   (20.01.16 12:42) [5]


Т.е. если в файле указано 44 кГц, то на каждую секунду приходится 44000 чисел, каждое из которых есть значение амплитуды в свою 1/44000 секунды?


← →
Inovet ©   (2016-01-20 15:22) [7]

> [6] Dimka Maslov ©   (20.01.16 15:17)

Ну да, только стандартно 44100, 48000 и кратные им, с амплидутой тоже разрядность может быть разная, при том в файле может быть несколько каналов. Параметры единые для всего файла. Это уже формат данных надо смотреть.


← →
Inovet ©   (2016-01-20 15:26) [8]

Ну и всё-таки амплитудой это называть неправильно, это значение в момент времени.


← →
Dimka Maslov ©   (2016-01-20 15:31) [9]

Понятно, спасибо.


← →
megavoid ©   (2016-01-20 15:47) [10]

FFT всё равно придётся же делать, так может лучше сразу? :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
2-1425461509
Asher
2015-03-04 12:31
2017.01.15
Сортировка дат в TStringList


2-1424681725
Эрнест
2015-02-23 11:55
2017.01.15
URLEncodeReservedChars


4-1279862952
Олл
2010-07-23 09:29
2017.01.15
Обмен данными с внешим приложением


3-1310463935
walm
2011-07-12 13:45
2017.01.15
Распределенный запрос


2-1422510042
Смирнов А.И.
2015-01-29 08:40
2017.01.15
Копирование файла




   Наверх