Автор работы: Пользователь скрыл имя, 10 Марта 2013 в 19:06, научная работа
В теоретической части необходимо дать описание звукового эффекта (см. приложение 1), объяснить его принцип и создать рабочую модель цифрового аудио проигрывателя. Модель эффекта создаётся в пакете Matlab с использованием графического языка Simulink. (См.Методические указания по выполнению домашнего задания по ЦОС “Проектирование графического эквалайзера” и выполненный вариант данного домашнего задания ).
Федеральное государственное
бюджетное образовательное
«Московский государственный
технический университет имени Н.Э. Баумана»
(МГТУ им. Н.Э. Баумана)
Методические указания по выполнению курсовой работы по дисциплине
Цифровая обработка сигналов в информационных системах
ЦИФРОВОЙ ПРОИГРЫВАТЕЛЬ С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ
Составили:
Недашковский В.М.,
Бимурзиев А.С.,
Козинко А.В.,
Порываев С.М.,
Савкин Д.Ю.
Москва, 2013
Содержание
В теоретической части необходимо дать описание звукового эффекта (см. приложение 1), объяснить его принцип и создать рабочую модель цифрового аудио проигрывателя. Модель эффекта создаётся в пакете Matlab с использованием графического языка Simulink. (См.Методические указания по выполнению домашнего задания по ЦОС “Проектирование графического эквалайзера” и выполненный вариант данного домашнего задания ).
В практической части необходимо разработать
и отладить программу цифрового
аудио проигрывателя с
Замечание. Приложения,
ипользующие GTK+, QT и GStreamer могут быть скомпилированы
и запущены на большинстве операционных
систем.
Ниже приводится список базовых функций, которые необходимо реализовать в программе цифрового аудио проигрывателя, а также список дополнительных функций, которые превращают проигрыватель с базовыми функциями в готовый для использования продукт и которые могут быть реализованы по желанию студента.
Базовые функции:
Дополнительные функции:
Номер варианта (ИУ3-61: номер студента
в журнале, |
Звуковой эффект N |
Количество полос | |
1 |
Echo |
1 |
6 |
2 |
Delay |
2 |
6 |
3 |
Detonation |
3 |
6 |
4 |
Flanger |
4 |
6 |
5 |
Faser |
5 |
6 |
6 |
Compressor |
6 |
6 |
7 |
Reverb |
7 |
6 |
8 |
Expander |
8 |
6 |
9 |
Chorus |
9 |
6 |
10 |
Vibrato |
10 |
6 |
11 |
Echo |
1 |
8 |
12 |
Delay |
2 |
8 |
13 |
Detonation |
3 |
8 |
14 |
Flanger |
4 |
8 |
15 |
Faser |
5 |
8 |
16 |
Compressor |
6 |
8 |
17 |
Reverb |
7 |
8 |
18 |
Expander |
8 |
8 |
19 |
Chorus |
9 |
8 |
20 |
Vibrato |
10 |
8 |
21 |
Echo |
1 |
10 |
22 |
Delay |
2 |
10 |
23 |
Detonation |
3 |
10 |
24 |
Flanger |
4 |
10 |
25 |
Faser |
5 |
10 |
26 |
Compressor |
6 |
10 |
27 |
Reverb |
7 |
10 |
28 |
Expander |
8 |
10 |
29 |
Chorus |
9 |
10 |
30 |
Vibrato |
10 |
10 |
31 |
Echo |
1 |
7 |
32 |
Delay |
2 |
7 |
33 |
Detonation |
3 |
7 |
34 |
Flanger |
4 |
7 |
35 |
Faser |
5 |
7 |
36 |
Compressor |
6 |
7 |
37 |
Reverb |
7 |
7 |
38 |
Expander |
8 |
7 |
39 |
Chorus |
9 |
7 |
40 |
Vibrato |
10 |
7 |
Поскольку задание не предполагает
необходимость низкоуровнего
В данной курсовой работе рекомендуется использовать один из следующих мультимедийных фреймворков: DirectShow, Gstreamer, CoreAudio.
Перед выбором фреймворка следует ознакомится с его возможностями и убедиться, что с его использованием можно реализовать нужный эффект.
Доступность фреймворков на разных платформах:
Windows |
Mac OS X |
Linux | |
GStreamer |
+ |
+ |
+ |
DirectShow |
+ |
- |
- |
CoreAudio |
- |
+ |
- |
Большая часть документации по фреймворкам Gstreamer и CoreAudio недоступна на русском языке, поэтому студентам, имеющим проблемы с чтением англоязычной документации рекомендуется использовать мультимедийный фреймворк DirectShow.
GStreamer — мультимедийный фреймворк, написаный на языке C и использующий систему типов GObject. Разрабатывается Red Hat и сообществом freedesktop.org. Используется в различных плеерах, редакторах, программах для создания конференций и портативных устройствах. Имеет множество привязок к другим языкам (C++, Python...). Используется в большинстве *nix-систем. Работает на системах Linux, Mac OS X, Windows.
Является свободным
Простой пример структуры конвеера для воспроизведения файла формата audio mpeg layer 3:
Каждый элемент имеет выход(
Конвеер, изображенный на схеме, можно запустить без использования языков программирования. Для этого существует консольная утилита gst-launch. Тот же конвеер будет выглядеть так:
gst-launch filesrc location=”/path/to/file/song.
Этот же конвейер реализуем на языке
C:
#include <stdio.h>
#include <gst/gst.h>
// Путь к файлу
#define DEFAULT_FILE “/path/to/file/sing.mp3”
int main(int argc, char *argv[ ]) {
// Инициализация фреймворка
gst_init(&argc,&argv);
// Объявление всех элементов, конвеера
и основного цикла
GstElement *pipeline, *filesrc, *decoder,*sink;
GMainLoop *loop;
// Создаём элементы конвейера
pipeline = gst_pipeline_new("my_pipe");
filesrc = gst_element_factory_make("
decoder = gst_element_factory_make("mad"
sink = gst_element_factory_make("
// Передаём элементу filesrc параметр location
g_object_set(G_OBJECT(filesrc)
// Добавляем элементы в конвейер
gst_bin_add_many(GST_BIN(
// Соединяем элементы последовательно
gst_element_link_many(filesrc,
//После создания конвеера включаем его.
gst_element_set_state(
loop = g_main_loop_new(NULL,FALSE);
//Запускаем основной цикл
g_main_loop_run(loop);
}
Для создания различных эффектов используются специальные плагины (программные модули). Для создания большинства мультимедийных приложений достаточно встроенных плагинов, некоторые эффекты реалезуемы через элементы, другие - через пайпы.
Плагины в среде gstreamer делятся на 3 группы: good, bad и ugly (хороший, плохой, злой). В первую группу входят свободные кодеки,большинство способов ввода и вывода и некоторые эффекты. В bad входят большинство плагинов для работы с сетью и проприетарными (закрытыми) технологиями (dts). В ugly входят проприетарные и нестабильные кодеки.
Описание всех элементов и плагинов можно найти на сайте сообщества (на английском):
Core Audio — низкоуровневый интерфейс для работы с мультимедия, используемый на устройствах под MAC OS X и iOS.
Документация по CoreAudio (на английском):
DirectShow — мультимедийный фреймворк, разработанный компанией Miscrosoft. Общий принцип работы похож на принцип работы фреймворка Gstreamer.
Для захвата, преобразования и воспроизведения мультимедия используются блоки, называемые фильтрами.
Для визуального представления
последовательностей фильтрров
может быть использована свободная
утилита graph-studio-next ( ht
Например, схема воспроизведения произвольного аудио файла с использованием стандартных элементов утилиты graph-studio-next будет выглядеть следующим образом:
Ниже приводятся ссылки на документацию фреймворка DirectShow, утилиту graph-studio-next и примеры использования фреймворка:
Ниже приводится пример графического интерфейса (GTK+, GStreamer):
Информация о работе Цифровой прогрыватель с графическим интерфейсом