Перейти к публикации
Форум - ComputerCraft
Fingercomp

FFP - плеер аудио для звуковой карты (форматы: PCM, WAV)

Рекомендованные сообщения

Любите музыку? А толку спрашивать. Конечно. До сего момента музыкальные возможности ограничивались кассетным проигрывателем с форматом DFPWM. Он лёгок в использовании и обладает убойной фичей - шумом.

 

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

 

Самое главное: фича, которой я горжусь, - плеер генерирует адское ушное месиво. Если не жалко своих ушей, то следуйте вперёд.

 

А. Где качать

$ hpm oppm:install ffp
$ # или
$ oppm install ffp

Б. Играть PCM-файл сходу

Качаем PCM файл на комп. Запускаем прогу:

$ ffp $path $depth $sample_rate $channels $window_size $window_step $duration
  • $path - путь к PCM-файлу
  • $depth - глубина дискретизации
  • $sample_rate - частота дискретизации
  • $channels - кол-во каналов (опционально, по умолчанию 8; если в конфиге увеличить число каналов, то тут тоже можно)
  • $window_size - размер окна в сэмплах (если без понятия, что это за хрень, пропустите; 1024 по дефолту)
  • $window_step - доля, на которую будет сдвигаться каждое последующее окно при конвертации (чёрт знает, на что это влияет, просто мне захотелось; по умолчанию 1)
  • $duration - сколько секунд трека вам угодно (по умолчанию вот прям весь, если в память влезет)

 

В. Играть сконвертированный PCM-файл

Чистого процессорного времени ест в два раза меньше, чем встроенный конвертер для OC.

На своей линуксовой машинке использовать как в пункте Б, перенаправить выхлоп в выходной файл.

$ lua5.3 ./ffp.lua $path $depth $sample_rate $channels $window_size $window_step $duration > out.smp 

Выходной файл скачать и проигрывать через ffp вот так:

$ ffp --load $path

Г. Играть сконвертированный через конвертер на сверхзвуковой скорости WAV-файл

Пять минут трека (44100 Гц / 16 бит / 1024 сэмпла окно) пункт В конвертит более 20 минут в процессорном времени (в реальности ещё больше). Конвертер на питоне, который также есть, юзает БПФ из NumPy и тот же трек обрабатывал чуть больше минуты реального времени.

 

Зависимости: numpy, scipy и питон 3.

Использование:

$ ./converter.py $path $window_size $channels > out.smp

Ссылка на конвертер: тык.

 

Д. Требования

Музяка: никаких стерео. Только моно, только один канал. Иначе варианты Б и В будут играть полную дичь, вариант Г выдаст недвусмысленную ошибку. Остальное в параметрах вариабельно.

Прога: требует собственно звуковую карту, дохрена рамы и процессор с архитектурой Lua 5.3. Так как у нас юзер-френдли интерфейсы, при отсутствии чего-либо прога крашнется.

 

Е. Пример?

Тык. 32768 Гц, 16 бит, 8 каналов. Какая-то песенка.

 

Ё. Примечание

На большом кол-ве каналов может начаться ад с сетью, если компьютер не только что с завода. Звук заедает, пакеты на сервер и с сервера не идут, кроме звуковых, жесть полная, в общем. Так что осторожнее.

  • Like 7

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

аддон бы в теги, тут не только игроки местные обитают

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×