Aggiunta di effetti sonori in stile film al terminale

9

Voglio avere effetti sonori stile film nel terminale. Sai, quando ogni sequenza di tasti e linea emette un piccolo beep freddo. (Qualcosa di simile.) Ho usato KeyClick , ma è solo per digitare a tastiera. Voglio anche effetti quando i caratteri vengono letti sullo schermo, ecc.

So che questo è superfluo da morire. E probabilmente ne sarò infastidito entro cinque minuti. Ma saranno gloriosi cinque minuti.

    
posta chrismanderson 15.09.2011 - 17:04
fonte

2 risposte

7

Domanda divertente:)

Non sono sicuro di come otterresti effetti sonori per tutto ma potresti fare qualcosa di simile per ottenere effetti sonori per alcune cose:

1) Apri apri il tuo .profile (o .bashrc o dove preferisci mantenere le tue personalizzazioni) aprendo una finestra di terminale e digitando:

open .profile

2) Aggiungi le seguenti poche righe alla fine del file:

function top() { afplay /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/accessibility/Sticky\ Keys\ ON.aif; command top;}
function ls() { command ls; afplay /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/accessibility/Slow\ Keys\,\ Key\ Registered.aif; }

3) Prova a digitare "ls" per un elenco di directory o "top" per vedere l'elenco dei processi in esecuzione e amp; sentirai i risultati di questi comandi.

Aggiungendo queste due righe stiamo dichiarando due nuove funzioni con gli stessi nomi dei comandi bash esistenti. Eseguiamo l'override del comando stesso in modo che possiamo riprodurre un po 'di audio e quindi eseguire il comando stesso (o viceversa come mostrato nell'esempio "top").

I file audio attualmente in uso sono file audio predefiniti (almeno su Lion) utilizzati per le funzioni di accessibilità. Ho scelto questi in modo da poter tagliare e incollare, e vedere il trucco in azione ma potresti usare qualsiasi file audio al posto di questi.

Ecco un sito con un sacco di effetti sonori di fantascienza che potresti usare al posto di questi che sto prendendo in prestito dal sistema operativo:

link

    
risposta data 18.09.2011 - 03:50
fonte
0

Non sei sicuro del bit di battitura della tastiera ... ma potresti stampare l'output di un comando di terminale come nei film, cioè ogni riga è stampata carattere per carattere e suona un piccolo bip per ognuno. Sembra bello inizialmente e poi diventa davvero fastidioso. Sarebbe divertente avere un terminale che si possa accendere e spegnere. Ovviamente abbastanza limitato, ma potrebbe essere un progetto divertente da sviluppare.

from subprocess import PIPE, Popen
import os

from time import *
import sys
from playsound import playsound

def print_immediately(string):
    sys.stdout.write(string)
    sys.stdout.flush()

def backspace():
    print('\r', end='')

def printline(x, silent=False):
    n = len(x)
    for i in range(n):
        print_immediately(x[:(i+1)])
        if not silent:
            beep()
        sleep(0.01)
        backspace()
    sys.stdout.write('\n')
    sys.stdout.flush()

def printlines(x, silent=False):
    result = str(x.decode("utf-8"))
    lines = str.split(result, "\n")
    for line in lines:
        printline(line, silent=False)

def beep():
    playsound('/Users/Blah/Projects/console/beep.wav', block=False)

def cmdline(command):
    process = Popen(
        args=command,
        stdout=PIPE,
        shell=True
    )
    return process.communicate()[0]

while True:
    command = input("user: ")
    if(command == 'exit'):
        break
    else:
        try:
            if command.find("cd ") != -1:
                dir = command.replace("cd ", "")
                os.chdir(os.path.expanduser(dir))
                print(dir)
            else:
                printlines(cmdline(command))
        except:
           print("Error!")
    
risposta data 07.01.2018 - 18:09
fonte

Leggi altre domande sui tag