FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Математические функции для основных форм сигналов

Участников: 2

Перейти вниз

Математические функции для основных форм сигналов Empty Математические функции для основных форм сигналов

Сообщение  Котоёж Вс Янв 03, 2010 11:36 pm

Добрый вечер, господа!

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

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

Поэтому не могу не поделиться с вами драгоценными находками из мира математики. В этой небольшой программе демонстрируются формы волн и соответствующие им математические функции:

Waveforms (50 KB)

TRIANGLE - Треугольная форма волны. Функция на FreeBasic: F(x) = (2/pi)*asin(sin(x))
SAWTOOTH - "Зубья Пилы" Функция на FreeBasic: F(x) = -2*(frac(x/(pi*2))-0.5)
SQUARE - Прямоугольная форма волны. Функция на FreeBasic: F(x) = sgn(sin(x))
SINE - Тут, я думаю, объяснять особо не нужно Smile Функция на FreeBasic: F(x) = sin(x)
PULSE - Пульсирующая волна. Практически ничем не отличается от прямоугольной волны за исключением важной детали: длины полупериодов не равны. То-есть в одном из двух состояний динамик компьютера будет находиться несколько дольше, чем в другом. Функция на FreeBasic: F(x) = sgn(abs(sin(x/2))-0.5). Здесь отношение одного полупериода к другому задаётся числом 0.5, которое целесообразно использовать в пределах от 0 до 1. Эту функцию набросал я сам, поэтому если у вас есть более точные и подходящие функции для этой или других фром волн, делитесь Smile

Удачи!
Ваш Котоёж aka FotonCat. Very Happy
Котоёж
Котоёж

Сообщения : 15
Дата регистрации : 2008-12-21
Возраст : 34
Откуда : Россия, Томск

http://fotoncat.heliohost.org/

Вернуться к началу Перейти вниз

Математические функции для основных форм сигналов Empty Re: Математические функции для основных форм сигналов

Сообщение  electrik Сб Июл 10, 2010 11:18 am

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

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Вернуться к началу Перейти вниз

Математические функции для основных форм сигналов Empty Re: Математические функции для основных форм сигналов

Сообщение  Котоёж Пт Сен 03, 2010 4:50 pm

Архив с программой теперь доступен по новой ссылке:
http://narod.ru/disk/24440738000/waveforms.zip.html
Спасибо за проявленный интерес!
Котоёж
Котоёж

Сообщения : 15
Дата регистрации : 2008-12-21
Возраст : 34
Откуда : Россия, Томск

http://fotoncat.heliohost.org/

Вернуться к началу Перейти вниз

Математические функции для основных форм сигналов Empty Re: Математические функции для основных форм сигналов

Сообщение  electrik Пт Сен 03, 2010 9:37 pm

огромное thangs. ща глянем.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения