Putar suara sebelum atau sesudah beban GRUB

14

Saya mendapat suara keren dari linux defender atau knoppix (atau yang lainnya, saya tidak ingat yang mana) yang mengatakan "memulai urutan start up" Dan saya ingin menggunakannya sedini mungkin dalam proses boot. Memiliki itu mengatakan bahwa ketika saya login tidak masuk akal, jadi memainkannya ketika GRUB mulai akan lebih baik. Bisakah itu dilakukan?

Ruben
sumber
2
Itu knoppix. :) Saya hanya ingat karena itu adalah distro Linux pertama saya.
Azendale
Peringatan yang adil: ini mungkin akan sangat keras.
Nonny Moose

Jawaban:

9

Menurut manual GRUB, not pertama adalah 'tempo', dan setiap pasangan angka berikut adalah durasi dan nada.

Pitch berada dalam Hz, jadi untuk memainkan not yang terdengar bagus (yang selaras), Anda membutuhkan frekuensi not dalam skala temperamen yang sama dengan barat:

http://pastebin.com/rJY30FmM

Kebetulan, inilah yang saya dapatkan setelah menulis dan menggunakan kode Java yang saya tempel:

GRUB_INIT_TUNE="480 220 1 277 1 330 1 440 1 185 1 220 1 277 1 370 1 294 1 370 1 440 1 587 1 330 1 415 1 494 1 659 1"

Ini memainkan arpeggio 4-note dari A, F # m, D, E.

Adam
sumber
Bagus sekali! +1
Wilf
The tempo adalah jumlah denyut per menit, sehingga 60 berarti 1 beat setiap detik, 120 berarti 2 ketukan setiap detik, dll Dan, durasi diukur dalam ketukan, sehingga dengan tempo 60 dan durasi 2, suara harus bertahan 2 detik.
jpaugh
Itu persis sesuai dengan apa yang Anda harapkan, dan saya telah memverifikasi secara eksperimental, serta dari manual .
jpaugh
7

Bagaimana

Dalam file tersebut /etc/default/grub, atur variabel GRUB_INIT_TUNEke nada yang Anda inginkan.

Contohnya: GRUB_INIT_TUNE="2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6"

Setelah selesai, terapkan perubahan Anda dengan sudo update-grub2.


Lagu yang ada

(Yang saya dapat menemukan)

  • Mario Bros Jamur Powerup :1750 523 1 392 1 523 1 659 1 784 1 1047 1 784 1 415 1 523 1 622 1 831 1 622 1 831 1 1046 1 1244 1 1661 1 1244 1 466 1 587 1 698 1 932 1 1195 1 1397 1 1865 1 1397 1
  • Imperial Death March Star Wars :480 440 4 440 4 440 4 349 3 523 1 440 4 349 3 523 1 440 8 659 4 659 4 659 4 698 3 523 1 415 4 349 3 523 1 440 8
  • nada xiè-jìléi (naik):2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6
  • Lagu Adams (rington-like to me):480 220 1 277 1 330 1 440 1 185 1 220 1 277 1 370 1 294 1 370 1 440 1 587 1 330 1 415 1 494 1 659 1

Lebih banyak dari mereka di sini .


Memahami nada

Sintaksnya adalah: GRUB_INIT_TUNE="tempo [pitch1 duration1] [pitch2 duration2] ..."

Tempo adalah basis untuk semua durasi note. 60 memberikan basis 1 detik, 120 memberi basis setengah detik, dll. Pitch adalah Hz. Tetapkan nada ke 0 untuk menghasilkan istirahat.

Sumber: dokumentasi grub , dokumentasi perintah grub play (halaman yang sama).


Pratinjau / uji nada

Jika Anda ingin menguji nada: Instal soxdan gunakan skrip dari utas ubuntuforum.org (sedikit dimodifikasi oleh saya untuk menghapus peringatan):

grub-playtune

#!/bin/dash

if [ $# -lt 3 ]; then
    echo "Usage: $0 tempo freq dur [freq dur freq dur...]" >&2
    exit 1
fi

tempo=$1; shift

tmpdir=$(mktemp -d)

while [ -n "$*" ]; do
    freq=$1; shift
    dur=$1;  shift
    dur=$(echo "$dur*(60/$tempo)"|bc -l)
    sox -e mu-law -r 8000 -n -t raw - synth $dur sine $freq >>$tmpdir/grubtune.ul 2> /dev/null
done

play -q -c1 -r 8000 $tmpdir/grubtune.ul

rm -r $tmpdir

Untuk membuatnya dapat dieksekusi chmod +x grub-playtune

Gunakan contoh:

grub-playtune 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6

Frekuensi catatan

Skrip berbasis python3 untuk menghitung frekuensi catatan:

nada

#!/bin/bash

python3 -c "print(*(int(0.5 + 440 * 2 ** (note/12)) for note in (${*/%/,})))"

Gunakan contoh:

$ pitch 0        # gives you A_4
440
$ pitch 2        # gives you B_4
494
$ pitch -2       # gives you G_3
392
$ pitch -12 0 12 # gives you A_3, A_4 and A_5
220 440 880

Tabel frekuensi

Satu tersedia di sini . Itu juga dapat dibuat, menggunakan skrip di atas seperti:

$ pitch {-12..0} # A_3 to A_4
220 233 247 262 277 294 311 330 349 370 392 415 440
$ pitch {0..12} # A_4 to A_5
440 466 494 523 554 587 622 659 698 740 784 831 880
$ pitch {12..24} # A_5 to A_6
880 932 988 1047 1109 1175 1245 1319 1397 1480 1568 1661 1760
loxaxs
sumber
3

Anda bertanya, Bisakah itu dilakukan? Jawaban sederhana? Ya, rupanya. Bagaimana itu bisa dilakukan? Anda perlu memasukkan lebih banyak uang ke dalam slot untuk jawaban itu. Hanya lelucon kecilku. Yang terbaik yang bisa saya lakukan adalah ini:

Manual GRUB

Pergi ke bagian 5.1 Penanganan Konfigurasi Sederhana dan cari garis, GRUB_INIT_TUNE. Anda harus mengikuti tautan ke sintaks Putar dan Nama file. Anda akan secara manual mengedit file Grub.

mekanika graham
sumber
Terima kasih untuk tautannya! (Tapi, mengapa tidak menghubungkan langsung ke bab 5? Gnu.org/software/grub/manual/grub.html#Configuration )
jpaugh
3
  1. Edit file /etc/default/grubuntuk menyertakan baris berikut (Ini adalah nada awal saya):

    GRUB_INIT_TUNE = "2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6"

  2. Jalankan sudo update-grub2untuk menerapkan perubahan.

Xiè Jìléi
sumber
0

Saya membuat skrip python yang mengubah file midi ke lagu init ini:

https://gitlab.com/lukasfink1/midi2grub

Perlu perpustakaan mido untuk dijalankan. Perhatikan juga bahwa perintah grub play hanya mampu memainkan melodi monofonik, jadi midis Anda mungkin terdengar aneh jika tidak.

Lukas Fink
sumber
Saya tidak sengaja memilikinya secara pribadi. Sekarang ini seharusnya bekerja.
Lukas Fink