Как написать сырые байты на звуковое устройство?

Немного взлома, но это переименует текущий терминал в то, что вы ssh'ed для.

function ssh() {
    guake -r "$@";
    /usr/bin/ssh $@
}

Также, если вы обновите PROMPT_COMMAND, у вас может быть функция для обновления имени терминала каждый раз. Хотя это не будет работать для вашей проблемы ssh, поскольку оно только изменяет имя после запуска команды.

например.

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}
5
задан 5 April 2011 в 02:11

9 ответов

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать отсчеты по умолчанию:

#!/usr/bin/env python3

import random
import ctypes
import struct

class NoiseMaker (object):

    PA_SAMPLE_U8 = 0
    PA_STREAM_PLAYBACK = 1

    def __init__(self, rate, channels):
        pat_sample_spec = ctypes.c_buffer(struct.pack("LLB",
            self.PA_SAMPLE_U8, rate, channels))
        self.pa = ctypes.cdll.LoadLibrary("libpulse-simple.so.0")
        self.s = self.pa.pa_simple_new(0, "App", self.PA_STREAM_PLAYBACK,
            0, "App Noise", ctypes.byref(pat_sample_spec), 0, 0,0)

    def write(self, data):
        self.pa.pa_simple_write(self.s, data, len(data), 0)

    def __del__(self):
        self.pa.pa_simple_free(self.s)


one_second_noise = bytes(random.randint(0, 255) for i in range(44100*2))
NoiseMaker(44100, 2).write(one_second_noise)

. Скорость (44100) определяет, сколько выборок есть во второй в реальном времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3 [!d2 ]

5
ответ дан 25 May 2018 в 22:15
  • 1
    В качестве примечания, если вы заинтересованы в использовании звуковых манипуляций с терминалом, вы можете писать или читать необработанные аудио с помощью инструмента pacat. – eltommo 14 December 2012 в 21:50

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать отсчеты по умолчанию:

#!/usr/bin/env python3 import random import ctypes import struct class NoiseMaker (object): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__(self, rate, channels): pat_sample_spec = ctypes.c_buffer(struct.pack("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary("libpulse-simple.so.0") self.s = self.pa.pa_simple_new(0, "App", self.PA_STREAM_PLAYBACK, 0, "App Noise", ctypes.byref(pat_sample_spec), 0, 0,0) def write(self, data): self.pa.pa_simple_write(self.s, data, len(data), 0) def __del__(self): self.pa.pa_simple_free(self.s) one_second_noise = bytes(random.randint(0, 255) for i in range(44100*2)) NoiseMaker(44100, 2).write(one_second_noise)

. Скорость (44100) определяет, сколько выборок есть во второй в реальном времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 25 July 2018 в 22:16

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать отсчеты по умолчанию:

#!/usr/bin/env python3 import random import ctypes import struct class NoiseMaker (object): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__(self, rate, channels): pat_sample_spec = ctypes.c_buffer(struct.pack("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary("libpulse-simple.so.0") self.s = self.pa.pa_simple_new(0, "App", self.PA_STREAM_PLAYBACK, 0, "App Noise", ctypes.byref(pat_sample_spec), 0, 0,0) def write(self, data): self.pa.pa_simple_write(self.s, data, len(data), 0) def __del__(self): self.pa.pa_simple_free(self.s) one_second_noise = bytes(random.randint(0, 255) for i in range(44100*2)) NoiseMaker(44100, 2).write(one_second_noise)

. Скорость (44100) определяет, сколько выборок есть во второй в реальном времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 26 July 2018 в 20:08

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать отсчеты по умолчанию:

#!/usr/bin/env python3 import random import ctypes import struct class NoiseMaker (object): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__(self, rate, channels): pat_sample_spec = ctypes.c_buffer(struct.pack("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary("libpulse-simple.so.0") self.s = self.pa.pa_simple_new(0, "App", self.PA_STREAM_PLAYBACK, 0, "App Noise", ctypes.byref(pat_sample_spec), 0, 0,0) def write(self, data): self.pa.pa_simple_write(self.s, data, len(data), 0) def __del__(self): self.pa.pa_simple_free(self.s) one_second_noise = bytes(random.randint(0, 255) for i in range(44100*2)) NoiseMaker(44100, 2).write(one_second_noise)

. Скорость (44100) определяет, сколько выборок есть во второй в реальном времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 2 August 2018 в 03:43

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать отсчеты по умолчанию:

#!/usr/bin/env python3 import random import ctypes import struct class NoiseMaker (object): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__(self, rate, channels): pat_sample_spec = ctypes.c_buffer(struct.pack("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary("libpulse-simple.so.0") self.s = self.pa.pa_simple_new(0, "App", self.PA_STREAM_PLAYBACK, 0, "App Noise", ctypes.byref(pat_sample_spec), 0, 0,0) def write(self, data): self.pa.pa_simple_write(self.s, data, len(data), 0) def __del__(self): self.pa.pa_simple_free(self.s) one_second_noise = bytes(random.randint(0, 255) for i in range(44100*2)) NoiseMaker(44100, 2).write(one_second_noise)

. Скорость (44100) определяет, сколько выборок есть во второй в реальном времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 4 August 2018 в 19:47

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать образцы в выходной файл по умолчанию:

  #! / Usr / bin / env python3 импорт случайный импорт ctypes import struct class NoiseMaker (объект): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__  (self, rate, channels): pat_sample_spec = ctypes.c_buffer (struct.pack ("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary ("libpulse-simple.so.0"  ) self.s = self.pa.pa_simple_new (0, «App», self.PA_STREAM_PLAYBACK, 0, «App Noise», ctypes.byref (pat_sample_spec), 0, 0,0) def write (self, data): self  .pa.pa_simple_write (self.s, data, len (data), 0) def __del __ (self): self.pa.pa_simple_free (self.s) one_second_noise = bytes (random.randint (0, 255) для i в диапазоне  (44100 * 2)) NoiseMaker (44100, 2) .write (one_second_noise)  

Скорость (44100) определяет, сколько выборок есть в секунду реального времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 6 August 2018 в 03:51

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать образцы в выходной файл по умолчанию:

  #! / Usr / bin / env python3 импорт случайный импорт ctypes import struct class NoiseMaker (объект): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__  (self, rate, channels): pat_sample_spec = ctypes.c_buffer (struct.pack ("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary ("libpulse-simple.so.0"  ) self.s = self.pa.pa_simple_new (0, «App», self.PA_STREAM_PLAYBACK, 0, «App Noise», ctypes.byref (pat_sample_spec), 0, 0,0) def write (self, data): self  .pa.pa_simple_write (self.s, data, len (data), 0) def __del __ (self): self.pa.pa_simple_free (self.s) one_second_noise = bytes (random.randint (0, 255) для i в диапазоне  (44100 * 2)) NoiseMaker (44100, 2) .write (one_second_noise)  

Скорость (44100) определяет, сколько выборок есть в секунду реального времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 7 August 2018 в 21:47

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать образцы в выходной файл по умолчанию:

  #! / Usr / bin / env python3 импорт случайный импорт ctypes import struct class NoiseMaker (объект): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__  (self, rate, channels): pat_sample_spec = ctypes.c_buffer (struct.pack ("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary ("libpulse-simple.so.0"  ) self.s = self.pa.pa_simple_new (0, «App», self.PA_STREAM_PLAYBACK, 0, «App Noise», ctypes.byref (pat_sample_spec), 0, 0,0) def write (self, data): self  .pa.pa_simple_write (self.s, data, len (data), 0) def __del __ (self): self.pa.pa_simple_free (self.s) one_second_noise = bytes (random.randint (0, 255) для i в диапазоне  (44100 * 2)) NoiseMaker (44100, 2) .write (one_second_noise)  

Скорость (44100) определяет, сколько выборок есть в секунду реального времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 10 August 2018 в 10:01

Этот скрипт представляет собой тонкую оболочку вокруг простого API PulseAudio. Это позволяет вам записывать образцы в выходной файл по умолчанию:

  #! / Usr / bin / env python3 импорт случайный импорт ctypes import struct class NoiseMaker (объект): PA_SAMPLE_U8 = 0 PA_STREAM_PLAYBACK = 1 def __init__  (self, rate, channels): pat_sample_spec = ctypes.c_buffer (struct.pack ("LLB", self.PA_SAMPLE_U8, rate, channels)) self.pa = ctypes.cdll.LoadLibrary ("libpulse-simple.so.0"  ) self.s = self.pa.pa_simple_new (0, «App», self.PA_STREAM_PLAYBACK, 0, «App Noise», ctypes.byref (pat_sample_spec), 0, 0,0) def write (self, data): self  .pa.pa_simple_write (self.s, data, len (data), 0) def __del __ (self): self.pa.pa_simple_free (self.s) one_second_noise = bytes (random.randint (0, 255) для i в диапазоне  (44100 * 2)) NoiseMaker (44100, 2) .write (one_second_noise)  

Скорость (44100) определяет, сколько выборок есть в секунду реального времени. Он ожидает байтов в диапазоне 0-255 включительно, который определяется PA_SAMPLE_U8 (эквивалентно «Unsigned 8-Bit», как показано Audacity, например). Если у вас более одного канала, он ожидает чередующихся выборок для каждого из них. Таким образом, одна секунда шума имеет 44100 выборок на канал = 88200 выборок, где (по модулю 2 = 0) для левого канала.

Обратите внимание, что этот скрипт работает только на Python 3

5
ответ дан 13 August 2018 в 16:21
  • 1
    В качестве примечания, если вы заинтересованы в использовании звуковых манипуляций с терминалом, вы можете писать или читать необработанное аудио с помощью инструмента pacat . – eltommo 14 December 2012 в 21:50

Другие вопросы по тегам:

Похожие вопросы: