web-dev-qa-db-fra.com

Jouez un son avant ou après le chargement de GRUB

J'ai un son sympa de Linux Defender ou Knoppix (ou autre chose, je ne me rappelle plus lequel) qui dit "lancer la séquence de démarrage". Et je veux l'utiliser dès que possible au démarrage. Le faire dire que lorsque je me connecte n'aura pas beaucoup de sens, donc le faire jouer lorsque GRUB sera le mieux. Cela peut-il être fait?

14
Ruben

Selon le manuel GRUB, la première note est un "tempo" et chaque paire de nombres suivants est la durée et la hauteur.

La hauteur est en Hz, aussi, pour pouvoir jouer des notes agréables (qui sont accordées), vous aurez besoin des fréquences des notes à l'échelle de tempérament égalitaire occidental:

http://Pastebin.com/rJY30FmM

A propos, voici ce que je suis arrivé après avoir écrit et utilisé le code Java que j'ai collé:

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"

Cela joue un arpège de 4 notes de A, F # m, D, E.

8
Adam

Comment

Dans le fichier _/etc/default/grub_, définissez la variable _GRUB_INIT_TUNE_ sur la mélodie souhaitée.

Par exemple: _GRUB_INIT_TUNE="2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6"_

Une fois terminé, appliquez vos modifications avec _Sudo update-grub2_.


Airs existants

(Ceux que j'ai pu trouver)

  • Mario Bros. Mushroom 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_
  • La mort impériale de 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_
  • air de xiè-jìléi (croissant): _2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6_
  • la mélodie d'Adams (rington-like pour moi): _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_

Plusieurs d'entre eux ici .


Comprendre une mélodie

La syntaxe est la suivante: _GRUB_INIT_TUNE="_ tempo [pitch1 duration1] [pitch2 duration2] ... _"_

Le tempo est la base pour toutes les durées de note. 603 donne une base de 1 seconde, 120 une demi-seconde, etc. Définissez la hauteur sur 0 pour obtenir une pause.

Source: le documentation grub , le grub lecture documentation sur les commandes (même page).


Prévisualiser/tester une mélodie

Si vous voulez tester la mélodie: Installez sox et utilisez le script de ce fil d'ubuntuforum.org (légèrement modifié par moi pour supprimer les avertissements):

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
_

Pour le rendre exécutable _chmod +x grub-playtune_

Exemple d'utilisation:

_grub-playtune 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6
_

Fréquence d'une note

Un script basé sur python3 pour calculer la fréquence d'une note:

pas

_#!/bin/bash

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

Utilisez des exemples:

_$ 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
_

Table de fréquence

L'un est disponible ici . Il peut également être généré en utilisant le script ci-dessus comme suit:

_$ 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
_
6
loxaxs

Vous demandez, peut-il être fait? La réponse simple? Oui, apparemment. Comment ceci peut être fait? Vous devez mettre plus d'argent dans la fente pour cette réponse. Juste ma petite blague. Le mieux que je puisse faire est la suivante:

Le manuel GRUB

Passez à la section 5.1 Gestion de la configuration simple et recherchez la ligne GRUB_INIT_TUNE. Vous devrez suivre les liens vers la syntaxe de lecture et de nom de fichier. Vous devrez éditer manuellement un fichier Grub.

3
grahammechanical
  1. Editez le fichier /etc/default/grub pour inclure la ligne suivante (voici mon réglage init):

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

  2. Exécutez Sudo update-grub2 pour appliquer le changement.

3
Xiè Jìléi

J'ai créé un script python qui convertit les fichiers MIDI en ces mélodies initiales:

https://gitlab.com/lukasfink1/midi2grub

Il a besoin de la bibliothèque mido pour fonctionner. Notez également que la commande de lecture grub ne peut jouer que des mélodies monophoniques. Par conséquent, vos midis peuvent paraître étranges s’ils ne le sont pas.

0
Lukas Fink