我从 linux Defender 或 knoppix(或其他东西,我不记得是哪个)那里听到一个很酷的声音,上面写着“正在启动启动序列”,我想在启动过程中尽早使用它。据说当我登录时没有多大意义,因此最好在 GRUB 启动时播放。可以做到吗?
lox*_*axs 11
在文件中/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.
(我能找到的那些)
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 1480 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 82000 400 4 0 1 500 4 0 1 600 4 0 1 800 6480 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更多的人在这里。
语法是: GRUB_INIT_TUNE="tempo [pitch1 duration1] [pitch2 duration2] ..."
速度是所有音符持续时间的基础。60 给出一个 1 秒的基数,120 给出一个半秒的基数,等等。音高是赫兹。将音高设置为 0 以产生休止符。
如果您想测试曲调:安装sox并使用该ubuntuforum.org 线程中的脚本(我稍作修改以删除警告):
#!/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
Run Code Online (Sandbox Code Playgroud)
使其可执行 chmod +x grub-playtune
使用示例:
grub-playtune 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6
Run Code Online (Sandbox Code Playgroud)
一个基于 python3 的脚本来计算音符的频率:
#!/bin/bash
python3 -c "print(*(int(0.5 + 440 * 2 ** (note/12)) for note in (${*/%/,})))"
Run Code Online (Sandbox Code Playgroud)
使用示例:
$ 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
Run Code Online (Sandbox Code Playgroud)
一个在这里可用。也可以使用上面的脚本生成它,如下所示:
$ 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
Run Code Online (Sandbox Code Playgroud)
小智 10
根据 GRUB 手册,第一个音符是“速度”,后面的每一对数字是持续时间和音高。
音高以赫兹为单位,所以为了演奏好听的音符(音调一致),你需要西方等律音阶中的音符频率:
顺便说一句,这是我在编写和使用我粘贴的 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"
Run Code Online (Sandbox Code Playgroud)
这会播放 A、F#m、D、E 的 4 音符琶音。
编辑文件/etc/default/grub以包含以下行(这是我的初始化调整):
GRUB_INIT_TUNE =“2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6”
运行sudo update-grub2以应用更改。