Reproduzir um som antes ou depois do carregamento do GRUB

13

Eu tenho um som legal do linux defensor ou knoppix (ou qualquer outra coisa, eu não lembro qual) que diz "iniciando a seqüência de inicialização" E eu quero usá-lo o mais cedo possível no processo de inicialização. Dizendo que quando eu faço o login não faria muito sentido, então tê-lo em reprodução quando o GRUB iniciar seria o melhor. Pode ser feito?

    
por Ruben 07.11.2011 / 01:18

4 respostas

8

De acordo com o manual do GRUB, a primeira nota é um 'tempo', e cada par de números a seguir é duração e tom.

O tom é em Hz, portanto, para tocar notas com bom som (que estão afinadas), você precisará das frequências de notas na escala ocidental de temperamento igual:

link

Aliás, eis o que eu criei depois de escrever e usar o código Java que colei:

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"

Isto toca um arpejo de 4 notas de A, F # m, D, E.

    
por Adam 19.07.2012 / 15:24
5

Como

No arquivo /etc/default/grub , defina a variável GRUB_INIT_TUNE para a música que você deseja.

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

Uma vez feito, aplique suas alterações com sudo update-grub2 .

Músicas existentes

(os que eu encontrei)

Mais deles aqui .

Entenda uma melodia

A sintaxe é: 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 GRUB_INIT_TUNE=" tempo [pitch1 duration1] [pitch2 duration2] ...

The tempo is the base for all note durations. 60 gives a 1-second base, 120 gives a half-second base, etc. Pitches are Hz. Set pitch to 0 to produce a rest.

Fonte: a documentação do grub , o grub play documentação do comando (mesma página).

Visualizar / testar uma música

Se você quiser testar a música: instale " e use o script de esse tópico do ubuntuforum.org (ligeiramente modificado por mim para remover avisos):

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

Para torná-lo executável sox

Use o exemplo:

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

Frequência de uma nota

Um script baseado em python3 para calcular a frequência de uma nota:

campo

#!/bin/bash

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

Use exemplos:

$ 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

Tabela de frequência

Um está disponível aqui . Ele também pode ser gerado usando o script acima da seguinte forma:

$ 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
    
por loxaxs 24.01.2017 / 23:34
3

Você pergunta: isso pode ser feito? A resposta simples? Sim, aparentemente. Como pode ser feito? Você precisa colocar mais dinheiro no slot para essa resposta. Apenas minha pequena piada. O melhor que posso fazer é isto:

O manual do GRUB

Vá para a seção 5.1 Configuração simples Manipulando e procure a linha, GRUB_INIT_TUNE. Você precisará seguir os links para a sintaxe do nome de reprodução e arquivo. Você terá que editar manualmente um arquivo Grub.

    
por grahammechanical 07.11.2011 / 01:56
3
  1. Edite o arquivo /etc/default/grub para incluir a seguinte linha (Aqui está minha sintonia de inicialização):

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

  2. Execute sudo update-grub2 para aplicar a alteração.

por Xiè Jìléi 25.05.2012 / 08:29

Tags