ターミナルへの映画風の音響効果の追加


9

端末に映画風の音響効果をつけたい。すべてのキーストロークとラインがクールな小さなビープ音を発するとき、あなたは知っています。(このようなものです。)私はKeyClickを使用しましたが、これはキーボード入力専用です。画面を横切って文字を読んだときなどのエフェクトも欲しいです。

私はこれが地獄のように余分であることを知っています。そして、おそらく5分以内にイライラします。しかし、それは見事な5分です。


4
答えはありませんが、あなたの質問は私を笑わせました。ありがとう!
クリスページ

3
これはオーディオエフェクトを実行しませんが、Cashodeターミナルエミュレータの驚くべきビジュアルエフェクトが面白いかもしれません。secretgeometry.com / apps / cathodeオーディオエフェクトを追加することをお勧めします。それはぴったりです。
クリスページ

PROMPT_COMMANDたとえば、bashを使用してすべての行でサウンドを再生できますPROMPT_COMMAND="say 'something silly'"say一部のサンプルのコマンドラインオーディオ再生に置き換えます)。
Ingmar Hupp、2011

カソードを見たことがないなんて信じられない。なんて素晴らしく素晴らしく、しかし「役に立たない」アプリでしょう!:)
chrismanderson '09 / 09/20

回答:


10

楽しい質問:)

どのようにしてすべてのサウンドエフェクトを取得するかはわかりませんが、次のような方法でいくつかのサウンドエフェクトを取得できます。

1)ターミナルウィンドウを開いて次のように入力し、.profile(または.bashrcまたはカスタマイズを保持する任意の場所)を開きます。

open .profile

2)次の数行をファイルの下部に追加します。

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)ディレクトリリストの「ls」または「top」と入力して実行中のプロセスのリストを表示すると、これらのコマンドの結果が聞こえます。

これらの2行を追加することにより、既存のbashコマンドと同じ名前の2つの新しい関数を宣言しています。コマンド自体をオーバーライドして、少しオーディオを再生してからコマンド自体を実行できるようにします(または「トップ」の例のようにその逆も同様です)。

現在使用しているオーディオファイルは、ユーザー補助機能に使用されるデフォルトのオーディオファイル(少なくともLionでは)です。私は、これらを選択して、カットアンドペーストして、実際のトリックを確認できますが、これらの代わりに任意のオーディオファイルを使用できます。

これは、私がOSから借りているこれらのサウンドエフェクトの代わりに使用できる多数のSFサウンドエフェクトを備えたサイトです。

http://fxhome.com/sounds/


1
Snow Leopardでは、パスは/System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds/accessibility/です。ちなみにいい発見。これらは使用するのに適したサウンドです。Mouse Keys ON.aif画面にテキストを印刷するときのサウンドが好きです。
スタイル

情報をありがとう-それは文字が画面に描かれているときにサウンドを完全に拡張するわけではありませんが、それは単に.profileを変更するのではなく、まったく異なる端末環境を必要とするようです。
chrismanderson 2011

0

キーストロークビットについては不明ですが、映画のように端末コマンドの出力を印刷することができます。つまり、各行が文字ごとに印刷され、それぞれについて小さなビープ音を鳴らします。最初は見た目がかっこいいですが、それから本当に面倒です これをオン/オフできる端末があれば楽しいでしょう。明らかにかなり制限されていますが、開発する楽しいプロジェクトになる可能性があります。

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!")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.