Воспроизвести звук до или после загрузки GRUB


14

Я получил классный звук от linux defender или knoppix (или чего-то еще, я не помню, какой именно), который говорит «инициализация последовательности запуска», и я хочу использовать его как можно раньше в процессе загрузки. Сказать, что когда я вхожу в систему, не имеет особого смысла, так что лучше играть, когда запускается GRUB. Это можно сделать?


2
Это был knoppix. :) Я помню только потому, что это был мой первый дистрибутив Linux.
Азендейл

Справедливое предупреждение: это, вероятно, будет очень громко.
Нонни Мус

Ответы:


9

Согласно руководству GRUB, первая нота - это «темп», а каждая следующая пара чисел - это длительность и высота тона.

Высота тона указана в Гц, поэтому для того, чтобы играть хорошо звучащие ноты (которые находятся в гармонии), вам понадобятся частоты нот в западной шкале равных темпераментов:

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"

Это играет арпеджио с 4 нотами A, F # m, D, E.


Прекрасно работает! +1
Уилф

Темпа это количество ударов в минуту, так что 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 дает основание в полсекунды и т.д. Установите pitch в 0, чтобы произвести отдых.

Источник: документация по grub, документация по команде grub play (та же страница).


Предварительный просмотр / проверка мелодии

Если вы хотите протестировать мелодию: установите soxи используйте скрипт из этого потока ubuntuforum.org (я немного изменил его, чтобы удалить предупреждения):

личинка-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

Чтобы сделать его исполняемым 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

Таблица частот

Один доступен здесь . Его также можно сгенерировать, используя приведенный выше скрипт следующим образом:

$ 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 Простая обработка конфигурации и найдите строку 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

Я создал скрипт Python, который преобразует MIDI-файлы в эти мелодии инициализации:

https://gitlab.com/lukasfink1/midi2grub

Для запуска нужна библиотека mido. Также обратите внимание, что команда grub play может воспроизводить только монофонические мелодии, поэтому ваш мидис может звучать странно, если это не так.


У меня случайно это было наедине. Теперь это должно работать.
Лукас Финк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.