Математические функции для основных форм сигналов
Участников: 2
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Математические функции для основных форм сигналов
Добрый вечер, господа!
Музыка и звуки всегда были неотъемлемой частью компьютерных игр, даже в эру зарождения оных, когда в разношёрстных компьютерах музыка ещё воспроизводилась с помощью таких аппаратных средств, как музыкальные чипы, выдававшие характерный электронный звук. Основной метод такого синтеза звука заключался в генерации простого сигнала определённой формы и последующей обработке и модуляции его частоты, громкости и т.п.
Т. к. сейчас я пишу свою музыкальную систему на основе этого метода, мне пришлось изрядно попотеть в поисках подходящих математических функций, с помощью которых можно получить наиболее распространённые формы волн: прямоугольный сигнал, треугольный сигнал, "зубья пилы" и т.д. Некоторые функции упрощены. Я постарался подогнать их все под один период, иными словами, синхронизировать с синусоидой.
Поэтому не могу не поделиться с вами драгоценными находками из мира математики. В этой небольшой программе демонстрируются формы волн и соответствующие им математические функции:
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 - Тут, я думаю, объяснять особо не нужно Функция на FreeBasic: F(x) = sin(x)
PULSE - Пульсирующая волна. Практически ничем не отличается от прямоугольной волны за исключением важной детали: длины полупериодов не равны. То-есть в одном из двух состояний динамик компьютера будет находиться несколько дольше, чем в другом. Функция на FreeBasic: F(x) = sgn(abs(sin(x/2))-0.5). Здесь отношение одного полупериода к другому задаётся числом 0.5, которое целесообразно использовать в пределах от 0 до 1. Эту функцию набросал я сам, поэтому если у вас есть более точные и подходящие функции для этой или других фром волн, делитесь
Удачи!
Ваш Котоёж aka FotonCat.
Музыка и звуки всегда были неотъемлемой частью компьютерных игр, даже в эру зарождения оных, когда в разношёрстных компьютерах музыка ещё воспроизводилась с помощью таких аппаратных средств, как музыкальные чипы, выдававшие характерный электронный звук. Основной метод такого синтеза звука заключался в генерации простого сигнала определённой формы и последующей обработке и модуляции его частоты, громкости и т.п.
Т. к. сейчас я пишу свою музыкальную систему на основе этого метода, мне пришлось изрядно попотеть в поисках подходящих математических функций, с помощью которых можно получить наиболее распространённые формы волн: прямоугольный сигнал, треугольный сигнал, "зубья пилы" и т.д. Некоторые функции упрощены. Я постарался подогнать их все под один период, иными словами, синхронизировать с синусоидой.
Поэтому не могу не поделиться с вами драгоценными находками из мира математики. В этой небольшой программе демонстрируются формы волн и соответствующие им математические функции:
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 - Тут, я думаю, объяснять особо не нужно Функция на FreeBasic: F(x) = sin(x)
PULSE - Пульсирующая волна. Практически ничем не отличается от прямоугольной волны за исключением важной детали: длины полупериодов не равны. То-есть в одном из двух состояний динамик компьютера будет находиться несколько дольше, чем в другом. Функция на FreeBasic: F(x) = sgn(abs(sin(x/2))-0.5). Здесь отношение одного полупериода к другому задаётся числом 0.5, которое целесообразно использовать в пределах от 0 до 1. Эту функцию набросал я сам, поэтому если у вас есть более точные и подходящие функции для этой или других фром волн, делитесь
Удачи!
Ваш Котоёж aka FotonCat.
Re: Математические функции для основных форм сигналов
Котоёж, кинь, пожалуйста, еще раз куда-нибудь файлик waveforms. ссыль уже убита, а когда читал этот пост давно, внимания не обратил.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: Математические функции для основных форм сигналов
Архив с программой теперь доступен по новой ссылке:
http://narod.ru/disk/24440738000/waveforms.zip.html
Спасибо за проявленный интерес!
http://narod.ru/disk/24440738000/waveforms.zip.html
Спасибо за проявленный интерес!
Re: Математические функции для основных форм сигналов
огромное thangs. ща глянем.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|