PDA

Просмотр полной версии : Консольный кроссплатформенный аудиодвижок OpenDSE


tretdm
24.05.2026, 14:23
Сейчас конец мая, я выпускаюсь из своего колледжа и уже почти закончил работу над своим дипломным проектом.

Тема тут такая: "Разработка модульного кроссплатформенного аудиодвижка на C и C++".

Долбился я над этим месяц и все-таки сделал минимально работоспобный проект.

На скриншотах вот так выглядит его практическая сторона. Основной демонстрационной программой является плеер OpenDSS (да, это отсылка к оригинальному Digital Sound System от Сергея Сапелина), который в свою очередь использует OpenDSE в качестве аудиодвижка.

Аудиодвижок OpenDSE использует две технологии:
WaveOut/WaveIn для Windows NT и 9x;
WASAPI для Windows Vista и выше.
Пока что OpenDSE поддерживает только несжатые WAV-файлы в PCM, при этом поддержка параметров кодирования зависит от установленных драйверов в системе. К счастью, в подавляющем большинстве звуковых карт OpenDSE способен прочитать звук качества CD Audio (но не сами компакт-диски, так как это требует конвертации).

Удивительно, но даже тяжелые WAV-файлы этот аудиодвижок читает без проблем. Потребление оперативной памяти и нагрузка на процессор остаются на самом низком уровне - до 2 МБ ОЗУ в среднем и до 5% нагрузки.

Поддерживаются все версии Windows, начиная с Windows NT 3.1 и Windows 95.

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

Кстати, публичная версия документа будет выложена на моем сервере после защиты.

tretdm
27.05.2026, 09:28
Проект выйдет в свет 1 июня 2026 г.

В этот день будут выложены в открытый доступ:

исходный код программы OpenDSS и двух ключевых библиотек CroconTUI и OpenDSE
бинарные файлы: исполняемые файлы и файлы библиотек для Windows и Linux
Теперь показываю дорожную карту всех трех подпроектов:

июнь 2026

выход публичной версии документа

OpenDSE 0.1.x

поддержка компакт-дисков CD-DA (CD Audio)
поддержка аудиоформатов FLAC и MP3
поддержка внешних источников звука (например, линейный вход)
реализация для DirectSound
исправление известных ошибок

CroconTUI 0.1.0

реализация оконного режима псевдографического интерфейса

OpenDSS 0.1.0

появится перемотка файла

OpenDSS будет опубликован под лицензией GPLv3 и выше, а OpenDSE и CroconTUI - под трехпунктной лицензией BSD.

tretdm
01.06.2026, 14:59
Все готово к первому запуску (https://github.com/tinelix/OpenDSS/releases/tag/0.0.1-alpha)

Исходный код программы и библиотек были выложены в открытый доступ. Вместе с этим я собрал бинарники под любые операционки (почти).

Библиотеки
CroconTUI: https://github.com/CroconTUI (BSD-3)
OpenDSE: https://github.com/tinelix/OpenDSE (BSD-3)

Аудиоплеер OpenDSS
OpenDSS: https://github.com/tinelix/OpenDSS (GPLv3+)

Как работать с исходниками и собрать из них?

Клонируйте репозитории CroconTUI из манифеста (https://github.com/CroconTUI/crocon-manifest) через Repo Launcher (https://github.com/GerritCodeReview/git-repo) и запускайте скрипт в репозитории build. Для остальных проектов достаточно просто воспользоваться Git.

Пробуйте и делитесь впечатлениями!

nsfrolov
01.06.2026, 15:48
Удачи в разработке, будет интересно взглянуть на готовый продукт

tretdm
09.06.2026, 16:03
Следующий релиз всех основных программ OpenDSS, библиотек OpenDSE и CroconTUI под номером 0.0.2 выйдет уже завтра.

Вот список нововведений, сделанные за 8 дней после старта:


добавлена поддержка формата a.out для библиотек;
добавлены полноценные фронтенд-реализации для OSS и PulseAudio;
реализован автопоиск подходящих аудиоинтерфейсов для Windows и Linux, включая устаревшие;
немного улучшен вывод текста в старых версиях Linux.


Часть нововведений перенесена из ветви 0.1.x.

tretdm
10.06.2026, 18:38
Как я и обещал, этот предрелиз под номером 0.0.2 я все же выкатил.

Скачать готовую версию можно по этой ссылке (https://github.com/tinelix/OpenDSS/releases/tag/0.0.2-alpha).

Прошу обратить внимание: для работы приложения необходимо доустановить библиотеки, это можно сделать при помощи скрипта ./install.sh. Вызывайте прямо в терминале.

Обновленная Windows-версия будет, но чуть позже. Выложил. Там изменений совсем немного, в основном я постарался исправить ситуацию в Linux.

tretdm
29.06.2026, 06:26
19 июня дипломный проект засчитан на 5, что я рад такому повороту событий. В целом, выпускной прошел 27 июня с вручением диплома, так что три года обучения в СПО можно считать завершенным.

Постараюсь либо сегодня, либо завтра выпустить этот документ.

nsfrolov
29.06.2026, 10:33
Поздравляю с пятеркой и удачи!

tretdm
30.06.2026, 08:22
Думаю, начальную фазу развития дипломного проекта можно считать завершенным

Остается его доработать и наполнить новым функционалом, чтобы вам было удобнее. Скачать можно на нашем сайте (http://dl.tinelix.ru/docs/2026-06-30/diplom_audiodvizhok.docx).