Membuat bash terminal cursor flash ke irama Survivor - "eye of the tiger"

61

Saya sedang mendengarkan Survivor - "Eye of the Tiger" dan menulis beberapa dokumentasi di Vim dan memperhatikan bahwa kursor yang tidak berkedip dengan irama mulai mengganggu saya. Bisakah ini diperbaiki?

Saya menggunakan Terminatordan bash.

0x7c0
sumber
20
Gagasan yang sangat mengerikan, +1 :).
terdon
4
Apa yang paling sulit saya curigai secara program menentukan apa "beat" dari lagu tersebut.
KA
12
Saya perlu klarifikasi tentang pertanyaan ini. @StephenMartin, apakah Anda ingin ketukan menjadi hanya monoton "ya, duh, duh, duh, duh" tersirat dalam melodi? Atau Anda ingin menjadi "DUNT! Duh, duh, DUNT! Tidak teratur, duh DUNT! Dun dun duuuuuuuuuuh"? Atau Anda ingin ketukan pizzicato tympani seperti pada "tztztztztztztztz"? Juga, kita perlu cara untuk menunjukkan intensitas ketukan Terminatordengan kecerahan kedipan variabel atau sesuatu jika Anda menginginkan ketukan tidak teratur.
allquixotic
3
Sementara Anda melakukannya, saya ingin warna kursor berubah sesuai dengan lirik ketika saya bermain Jimi's Bold As Love.
ott--
2
@ allquixotic Saya melihatnya berkedip setiap setengah beat untuk duna duna intro duna, tetapi tetap untuk hit power chord. Kemudian ketika memukul beat utama memukul pada bpm biasa tetapi sekali lagi berhenti di posisi aktif untuk power chords.
0x7c0

Jawaban:

26

Lihat plugin Rhythmbox saya, rbpitch untuk mengubah nada / tempo / kecepatan lagu yang diputar. Saya tahu ini peretasan, dan Anda harus secara manual menentukan tempo yang tepat untuk mengatur agar flash disinkronkan dengan kursor Anda, tetapi untuk tugas yang sangat penting dan praktis ini, saya pikir akan penting untuk memberi Anda solusi sementara sampai seseorang mengetahui cara bekerja pipa gstreamer menggunakan plugin deteksi ketukan ke bashatau terminal virtual apa pun yang Anda gunakan.

Anda tahu, sekarang setelah Anda menyebutkannya, melakukan ini tidak akan terlalu sulit, dan saya mungkin bisa mengkodekannya dalam waktu sekitar satu hari menggunakan kelas BPMDetect SoundTouch.

Berhentilah memberi saya ide-ide untuk bagaimana terlihat sibuk mengkode sementara sebenarnya membuang-buang waktu.

allquixotic
sumber
11
Kawan, saya senang Anda tahu pentingnya pertanyaan ini. Saya akan mencoba solusi Anda sebagai kesalahan sementara tetapi merasa bahwa kursor harus menyesuaikan dengan tempo trek. Saya tidak peduli apakah itu hanya cocok untuk trek yang satu ini karena itu satu-satunya trek yang saya miliki dan saya mendengarkannya terus-menerus dalam satu lingkaran.
0x7c0
9
#!/bin/bash
trap 'tput cnorm' EXIT
states=("$(tput civis)" "$(tput cnorm)")
state=0
while :; do
    printf %s "${states[state=!state]}"
    sleep .1
done

Sinkronisasi musik adalah latihan untuk pembaca.

ormaaj
sumber