GRUBのロード前またはロード後にサウンドを再生します


14

Linux Defenderまたはknoppix(または他の何か、どれか覚えていない)から「起動シーケンスを開始する」というクールな音が聞こえました。起動プロセスのできるだけ早い段階で使用したいと思います。ログインするとあまり意味がないと言われるので、GRUBの起動時にそれを再生するのが最適です。できますか?


2
それはknoppixでした。:)私が覚えているのは、それが最初のLinuxディストリビューションだったからです。
アゼンデール

公正な警告:これはおそらく非常に大きな音です。
ノニームース

回答:


9

GRUBマニュアルによると、最初の音符は「テンポ」であり、次の各数字のペアはデュレーションとピッチです。

ピッチはHzであるため、きれいに聞こえる(チューニングされている)音を再生するには、西部の平均律の音の周波数が必要です。

http://pastebin.com/rJY30FmM

ちなみに、貼り付けたJavaコードを書いて使用した後に思いついたのは次のとおりです。

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"

これは、A、F#m、D、Eの4音のアルペジオを演奏します。


よく働く!+1
ウィルフ14年

テンポは、毎分拍数、そう手段60 1拍毎秒、120の手段2拍毎秒など、および、ある持続時間はそれほど60のテンポ及び2の持続期間、音と、拍で測定されます2秒間続くはずです。
jpaugh

それはあなたが期待するものと完全に一致し、マニュアルと同様に実験的に検証しました。
jpaugh

7

どうやって

ファイル/etc/default/grubで、変数GRUB_INIT_TUNEを目的のチューニングに設定します。

例えば: GRUB_INIT_TUNE="2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6"

完了したら、で変更を適用しますsudo update-grub2


既存の曲

(見つけられるもの)

それらの詳細はこちら


曲を理解する

構文は次のとおりです。 GRUB_INIT_TUNE="tempo [pitch1 duration1] [pitch2 duration2] ..."

テンポは、すべての音符の長さのベースです。60は1秒ベース、120は0.5秒ベースなどを示します。ピッチはHzです。ピッチを0に設定して休憩を作成します。

ソース:grubのドキュメント、grub playコマンドのドキュメント(同じページ)。


曲のプレビュー/テスト

チューニングをテストする場合:そのubuntuforum.orgスレッドsoxからスクリプトをインストールして使用します(警告を削除するために私が少し変更しました):

グラブプレイチューン

#!/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

実行可能にするには chmod +x grub-playtune

使用例:

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

音の頻度

ノートの頻度を計算するpython3ベースのスクリプト:

ピッチ

#!/bin/bash

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

使用例を次に示します。

$ 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

頻度表

1つはここから入手できます。上記のスクリプトを使用して、次のように生成することもできます。

$ 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

3

あなたは尋ねます、それはできますか?簡単な答えは?はい、どうやら。どうすればできますか?その答えを得るには、より多くのお金をスロットに入れる必要があります。ちょっとした冗談です。私ができる最善のことはこれです:

GRUBマニュアル

セクション5.1 Simple Configuration Handlingに進み、GRUB_INIT_TUNEという行を探します。Playおよびファイル名の構文へのリンクに従う必要があります。Grubファイルを手動で編集します。


リンクをありがとう!(しかし、第5章に直接リンクしないのはなぜですか?gnu.org/software/grub/manual/grub.html#Configuration
jpaugh

3
  1. ファイル/etc/default/grubを編集して、次の行を含めます(ここに私の初期設定を示します)。

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

  2. 実行sudo update-grub2して変更を適用します。


0

私は、midiファイルを次の初期化チューンに変換するPythonスクリプトを作成しました。

https://gitlab.com/lukasfink1/midi2grub

実行するにはmidoライブラリが必要です。また、grub playコマンドはモノフォニックメロディのみを再生できるので、ミディはそうでないと奇妙に聞こえるかもしれません。


私は偶然それを個人的に持っていました。これで動作するはずです。
ルーカスフィンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.