LINUX.ORG.RU

taporwave 0.0.3

 , , , ,


2

2

taporwave — это бесплатный генератор случайного изменения скорости воспроизведения, написанный на языке Haskell.

Благодаря постоянному изменению скорости достигается эффект низкокачественного кассетного магнитофона с нестабильным лентопротягом; характерной чертой этого эффекта является «завывание» среднечастотного легато, в особенности партий синтезаторов.

В настоящий момент поддерживается только плеер MPV. Запускать его следует с ключами --input-file=/dev/stdin и --audio-pitch-correction=no. Команды изменения скорости подаются на вход плеера через пайп. Сам taporwave можно запускать с опциональными ключами --minBound и --maxBound, задающими соответственно нижний и верхний предел коэффициента умножения частоты. По умолчанию скорость изменяется в диапазоне от 0.8 до 1.2.

Полный пример использования:

/data/progs/haskell/taporwave/taporwave --minBound 0.9 --maxBound 1.1|mpv --no-video --input-file=/dev/stdin --audio-pitch-correction=no /downloads/sound/misc/Tracker\ music\ playlist\ from\ ~1999-gHQYYh7J1O4.webm

Пример получаемого звучания: оригинальная композиция, она же в обработке taporwave.

Доступна сборка для GNU/Linux-cистем с архитектурой процессора x86_64 (md5: d25f5cfe3790417a3debd5ff6ba46dbd). Пользователи других систем могут собрать программу самостоятельно.

Лицензия: WTFPL.

>>> Репозиторий



Проверено: Shaman007 ()
Последнее исправление: bodqhrohro_promo (всего исправлений: 1)

сделай, чтобы можно было писать произвольные функции ушакаливания. А эту вынеси в либу. Совсем годнота будет.

anonymous
()
Ответ на: комментарий от anonymous

Функцию и так можно сделать плагином-фильтром к MPV. А одними входными командами произвольного ушакаливания не напасёшься. По сути, единственная причина, по которой я сделал эту штуку в таком виде — что изначально она была однострочником на баше. Вот если сделать бойлерплейт-фильтр, всё написание шакалятора к которому сводится к написанию собственно функции — тогда, возможно, имеет смысл. И то, лучше вместо этого сделать мостик к уже обкатанным в этой сфере технологиям, например, LADSPA, чем городить ни с чем не совместимый велосипед.

bodqhrohro_promo
() автор топика

Сознайся, что набирал в редакторе без автоматически расставляемых отступов? :) (так умеет делать emacs)

И может быть скобки заменить на ($)?

minBoundParser :: Parser String
minBoundParser = strOption $
    long "minBound" <>
    metavar "MIN_BOUND" <>
    value "0.8" <>
    help "Lowest value speed can reach"
dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)

А для чего это нужно?

andreyu ★★★★★
()

Ура. Помню тему с тем однострочником. Теперь ждём, когда это прикрутят к каким-нибудь играм

sehellion ★★★★★
()

Офигенно, спасибо!

Deleted
()

Я, конечно, практически ничего не понимаю в музыке, но кто-нибудь может пояснить, зачем это нужно?

достигается эффект низкокачественного кассетного магнитофона

Я бы понял обратный скрипт, который бы пытался восстанавливать звучание исходно испорченной записи.

Но сознательно моделировать низкокачественное (по словам автора) устройство воспроизведения (фактически, портить звук)?

Зачем???

Serge10 ★★★★★
()

генератор случайного изменения скорости воспроизведения
написанный на языке Haskell
поддерживается только плеер MPV

ЗАЧЕМ ЭТО ВСЕ?

pkurg ★★★★
()
Ответ на: комментарий от bodqhrohro_promo

изначально она была однострочником на баше

Была годнота на скриптовом языке шелловой оболочки @ стало ненужно на маргинальном ЯП. Закопал бы сразу, и всё.

Virtuos86 ★★★★★
()

Срочно нужно добавить тег «ненужно».

anonymous
()

Совсем непохоже на настоящий кассетный магнитофон. Да и не самый востребованный эффект.

rst
()

Не, ну не были мафоны такими убитыми. Пример плохой. Уменьши там пределы безобразия

dikiy ★★☆☆☆
()

Не похоже.

Deleted
()
Ответ на: комментарий от dikiy

насчёт мафонов не скажу а вот плеер walkman купленный с рук на развале под конец жизни(достаточно долгой я скажу) регулярно давал петуха со скоростью воспроизведения

anonymous
()
Ответ на: комментарий от nerfur

У хипстеров сейчас модно-с «ностальгировать по времени в котором не был»

А причем тут время-то? Ведь «низкокачественный кассетный магнитофон с нестабильным лентопротягом» - это признак нищеты, а не времени. У людей с нормальными доходами была и тогда нормальная техника.

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

Все равно, что купить сейчас приличную машину и пытаться расшатывать на ней двери, оторвать глушитель, чтобы по ощущениям было похоже на убитую копейку, на которой ездил 30 лет назад ;).

Serge10 ★★★★★
()

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

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от Virtuos86

Я брал бабины, ставил их в «Романтику», протягивал ленту через всю комнату наискасок оборачивая вокруг ручки шкафчика на манер блока, ну и врубал чудо советской техники. Даже развешивать что-то пытался на ленте. Сколько лет тогда было не помню.

Так, кхм, о чем это я... Да, надеюсь, что сабж кому-то нужен бггг.)))

mos ★★☆☆☆
()
Ответ на: комментарий от pkurg

Да я поди постарше тебя буду.

Сильно сомневаюсь...

Odalist ★★★★★
()
Ответ на: комментарий от dave

автоматически расставляемых

отступов? :) Фи, не нужно. Может, редактор ещё и закрывающие скобки расставлять должен, где не нужно?

(так умеет

делать emacs) Почти угадал, Vim.

может быть скобки заменить на ($)

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

bodqhrohro_promo
() автор топика
Ответ на: комментарий от RazrFalcon

Шо ви имеете против минимального размера? Unix way: do one thing and do it well.

bodqhrohro_promo
() автор топика
Ответ на: комментарий от unDEFER

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

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от anonymous

а вот плеер walkman купленный с рук на развале под конец жизни(достаточно долгой я скажу) регулярно давал петуха со скоростью воспроизведения

Полагаю, что это подделка. Волкмены никогда не тянули, даже когда батареи заканчивались, он просто выключался. После советский техники, это был _ШОК

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от anonymous

Предлагаешь карандаш в миксер вставлять? В основном ради экономии батареек, плюс стационарники не всегда тянули плотную плёнку.

bodqhrohro_promo
() автор топика
Ответ на: комментарий от bodqhrohro_promo

А зачем стремиться к качеству?

Хм, странный вопрос. Наверное, для того, чтобы получать удовольствие от качественного звука?

Иначе зачем вообще покупать колонки, например? Мелодию можно и на PC-спикер вывести...

Serge10 ★★★★★
()
Ответ на: комментарий от Serge10

А причем тут время-то? Ведь «низкокачественный кассетный магнитофон с нестабильным лентопротягом» - это признак нищеты, а не времени. У людей с нормальными доходами была и тогда нормальная техника.

У кого-то была. Но вынести такую технику за пределы квартиры ? Из разряда больных на всю голову людей, которых тогда очень быстро и эффективно лечили. Народ ходил с блюющими аппаратами, разобрать слов было невозможно. Мотали кассеты карандашом, штоб батарейки экономить. Самый что не есть признак времени.

lenin386 ★★★★
()
Ответ на: комментарий от bodqhrohro_promo

У этого оператора ($) как раз приоритет наименьший. Во всяком случае, точно меньше, чем у операции (<>). Оператор ($) специально для того и придуман, чтобы не писать скобки на несколько строк.

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

dave ★★★★★
()

это для ностальгирующих наркоманов?

enso ★★★★★
()
Ответ на: комментарий от anonymous

Зачем вручную?

Щтоб батарею экономить. Хотя, какая там экономия, по сравнению с убиванием ленты от этой процедуры, но объяснять это всё равно что стенке.

lenin386 ★★★★
()
Ответ на: комментарий от dikiy

не были мафоны такими убитыми

Смотря какие, бывает и хуже.

Уменьши там пределы безобразия

Для этого ключи и добавил.

bodqhrohro_promo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.