Відтворюйте звук до або після завантаження GRUB


14

Я отримав класний звук від захисника Linux або knoppix (або чогось іншого, я не пам'ятаю, який з них), який говорить "ініціювання послідовності запуску", і я хочу використовувати його якомога раніше в процесі завантаження. Якщо сказати, що коли я ввійду, не має великого сенсу, тож найкраще мати його, коли грає GRUB. Чи можна це зробити?


2
Це був купіпікс. :) Пам’ятаю лише тому, що це був мій перший дистрибутив Linux.
Azendale

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

Відповіді:


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 - базу на пів секунди тощо. Встановіть крок 0, щоб відпочити.

Джерело: документація grub, документація команд grub play (та сама сторінка).


Попередній перегляд / тестування мелодії

Якщо ви хочете перевірити мелодію: Встановіть 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

Щоб зробити його виконуваним 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 та File name. Ви будете редагувати файл Grub вручну.


Дякуємо за посилання! (Але, чому б не посилатися безпосередньо до глави 5? Gnu.org/software/grub/manual/grub.html#Configuration )
jpaugh

3
  1. Відредагуйте файл, /etc/default/grubщоб включити наступний рядок (Ось моя настройка init):

    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 під ці мелодії init:

https://gitlab.com/lukasfink1/midi2grub

Для запуску потрібна бібліотека mido. Також зауважте, що команда гри grub play здатна відтворювати лише монофонічні мелодії, тож ваш midis може звучати дивно, якщо їх немає.


Я випадково мав це приватно. Тепер це має працювати.
Лукас Фінк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.