การเพิ่มเอฟเฟกต์เสียงสไตล์ภาพยนตร์ลงใน Terminal


9

ฉันต้องการให้เอฟเฟกต์เสียงสไตล์ภาพยนตร์ในเครื่อง คุณรู้ไหมว่าเมื่อทุกการกดแป้นและบรรทัดส่งเสียงบี๊บเบา ๆ (บางอย่างเช่นนี้)ฉันใช้KeyClickแต่นั่นเป็นเพียงการพิมพ์บนแป้นพิมพ์ ฉันยังต้องการเอฟเฟกต์เมื่ออักขระอ่านผ่านหน้าจอ ฯลฯ

ฉันรู้ว่านี่มันเยี่ยมยอดเหมือนนรก และฉันอาจจะรู้สึกรำคาญภายในห้านาที แต่มันจะรุ่งโรจน์ห้านาที


4
ฉันไม่มีคำตอบให้คุณ แต่คำถามของคุณทำให้ฉันหัวเราะ ขอบคุณ!
Chris หน้า

3
สิ่งนี้ไม่ได้ทำเอฟเฟกต์เสียง แต่: คุณอาจพบเอฟเฟกต์ภาพที่น่าทึ่งของขั้ว Cathode terminal emulator: secretgeometry.com/apps/cathodeบางทีคุณอาจแนะนำให้พวกเขาเพิ่มเอฟเฟกต์เสียง มันจะเป็นแบบที่ดี
Chris หน้า

คุณสามารถเล่นเสียงทุกบรรทัดด้วย bash's PROMPT_COMMANDเช่นPROMPT_COMMAND="say 'something silly'"(แทนที่sayด้วยการเล่นเสียงบรรทัดคำสั่งของตัวอย่างบางส่วน)
Ingmar Hupp

ไม่อยากจะเชื่อเลยว่าฉันไม่เคยเห็น Cathode มาก่อน ช่างเป็นแอพที่ 'ไร้ประโยชน์' ยอดเยี่ยมมาก! :)
chrismanderson

คำตอบ:


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' เพื่อดูรายการกระบวนการที่กำลังดำเนินอยู่และคุณจะได้ยินผลลัพธ์ของคำสั่งเหล่านี้

ด้วยการเพิ่มสองบรรทัดนี้เราจะประกาศฟังก์ชันใหม่สองรายการที่มีชื่อเดียวกันกับคำสั่ง bash ที่มีอยู่ เราแทนที่คำสั่งด้วยตนเองเพื่อให้เราสามารถเล่นเสียงได้เล็กน้อยจากนั้นเรียกใช้คำสั่งด้วยตนเอง (หรือในทางกลับกันตามที่แสดงตัวอย่าง 'top')

ไฟล์เสียงที่ฉันใช้อยู่เป็นไฟล์เสียงเริ่มต้น (อย่างน้อยใน Lion) ที่ใช้สำหรับคุณสมบัติการเข้าถึง ฉันเลือกสิ่งเหล่านี้เพื่อให้คุณสามารถตัดแปะและดูเคล็ดลับในการทำงาน แต่คุณสามารถใช้ไฟล์เสียงใด ๆ แทนสิ่งเหล่านี้

นี่คือไซต์ที่มีเอฟเฟกต์เสียงแบบไซไฟมากมายที่คุณสามารถใช้แทนสิ่งเหล่านี้ที่ฉันยืมมาจากระบบปฏิบัติการ:

http://fxhome.com/sounds/


1
/System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds/accessibility/กับเสือดาวหิมะเส้นทางคือ นีซหาตามทาง; นี่เป็นเสียงที่ดีที่จะใช้ ฉันชอบเสียงของMouse Keys ON.aifการพิมพ์ข้อความบนหน้าจอ
สไตล์

ขอบคุณสำหรับข้อมูล - มันไม่ได้ขยายเสียงออกไปเมื่อตัวละครถูกวาดลงบนหน้าจอ แต่ดูเหมือนว่ามันจะต้องมีสภาพแวดล้อมขั้วที่แตกต่างกันทั้งหมดมากกว่าแค่การปรับเปลี่ยน. profile
chrismanderson

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.