Заставьте курсор терминала bash мигать в такт Survivor - «Тигровое око»

3246
0x7c0

Я слушал Survivor - "Eye of the Tiger" и писал некоторую документацию в Vim и заметил, что курсор, не мигающий в такт, начал меня раздражать. Это можно исправить?

Я использую Terminatorи bash.

61
Какая восхитительно ужасная идея, +1 :). terdon 11 лет назад 20
Я подозреваю, что самое сложное - это программно определить, какой «ритм» песни. K.A 11 лет назад 4
Возможно, вам удастся заставить его мигать с основным ударом, но * где-то внутри песни неизбежно произойдут изменения скорости или удержания, которые снова все испортят. techturtle 11 лет назад 0
@techturtle Не обязательно верно. Зависит от того, использовал ли Survivor метроном во время записи. Скорее всего, они сделали, но я не слушаю, чтобы проверить. Tanner Faulkner 11 лет назад 0
`Bpmdetect` Gstreamer использует скользящее окно / скользящее среднее для обнаружения ударов и отправляет события каждый раз, когда обновляет значение AFAIK. Довольно точный. Должно сработать. В основном. Horn OK Please 11 лет назад 0
Мне нужно разъяснение по этому вопросу. @StephenMartin, ты хочешь, чтобы удары были просто монотонным "duh, duh, duh, duh, duh", подразумеваемым в мелодии? Или вы хотите, чтобы это было нерегулярно "DUNT! Дух, Дух, DUNT! Дух, Дух, DUNT! DUN DUN DUUUUUUUUUUH"? Или вы хотите, чтобы pizzicato tympani бился, как в "tztztztztztztztz"? Также нам нужен способ указать интенсивность ударов в «Терминаторе» с переменной яркостью мигания или что-то еще, если вы хотите нерегулярные удары. Horn OK Please 11 лет назад 12
Пока вы работаете над этим, я хочу, чтобы цвет курсора менялся в соответствии с лирикой, когда я играю «Bold As Love» Джими. ott-- 11 лет назад 3
@allquixotic Я вижу, как он мигает каждую половину удара для вступления к Duna Duna Duna, но остается на время для ударов пауэр-аккордов. Затем, когда он ударяет по основному удару, бьет по обычному ударов в минуту, но снова делает паузу во включенной позиции для аккордов. 0x7c0 11 лет назад 2
Можете ли вы предоставить образец "Duna Duna Duna"? Я не знаком с этой частью. Мы думаем об одной песне? Это не какой-то ремикс Eye of the Tiger от парня "numa numa"? Horn OK Please 11 лет назад 0
@ allquixotic Дуна Дуна Дуна Дуна Дуна Дуна Дуна Дуна Дуна Дуна Дуна Дуна ДУН .. ДУН. DUN..DUN ... DUN. DUN..DUN ... DUN..DUN. DUNNNNNNNN. повторение... 0x7c0 11 лет назад 2
@ r.tanner.f Похоже, ты прав. Слушая песню на моем iPod и следуя по адресу http://www.webmetronome.com/, я придумал довольно последовательный 109 ударов в минуту. techturtle 11 лет назад 0
Спасибо за описание "Дуна". Теперь я понимаю. Дуны маленькие, быстрые и тонкие, как маленькие хлопья тунца в корме для кошек. Дуна - действительно подходящий термин. Horn OK Please 11 лет назад 1
Может быть, вещь, которую нужно исправить, это твой музыкальный вкус. Просто говорю' glenn jackman 8 лет назад 0

2 ответа на вопрос

26
Horn OK Please

Check out my Rhythmbox plugin, rbpitch for changing the pitch/tempo/speed of the playing song. I know it's a hack, and you'll have to manually work out the correct tempo to set to get it to flash in sync with your cursor, but for this extremely important and practical task, I thought it would be important to give you a temporary workaround until someone figures out how to work a gstreamer pipeline using the beat detection plugin into bash or whatever virtual terminal you're using.

You know, now that you mention it, doing this wouldn't be all that extremely hard, and I could probably code it up in about a day using SoundTouch's BPMDetect class.

Stop giving me ideas for how to look busy coding while actually wasting time.

Чувак, я рад, что ты подтверждаешь важность этого вопроса. Я опробую ваш обходной путь как временную путаницу, но чувствую, что курсор должен подстраиваться под темп дорожки. Меня не волнует, соответствует ли он только этому треку, так как это единственный трек, которым я владею, и я постоянно слушаю его в цикле. 0x7c0 11 лет назад 11
9
ormaaj
#!/bin/bash trap 'tput cnorm' EXIT states=("$(tput civis)" "$(tput cnorm)") state=0 while :; do printf %s "$" sleep .1 done 

Music synchronization an exercise for reader.