С помощью SoX можно легко синтезировать тоны. Были некоторые камни преткновения, но в конце концов я смог разобраться.
У меня были проблемы со взаимодействием SoX с PulseAudio, поэтому я просто передал sox
необработанные данные в paplay
.
Конвейер утомительный, поэтому я создал скрипт:
$ cat sox-paplay
#!/bin/bash
: ${HZ:=44100}
: ${NCHAN:=6}
: ${SINK:=mysink}
sox -c $NCHAN -n -t raw -r $HZ -L -b 16 - "$@" | paplay --no-remix --no-remap --raw -v -p --rate $HZ -d $SINK --channels $NCHAN
напр.
sox-paplay synth sine 1000 gain -5 remix -m 0 0 1 0 0 0
Эффект remix
просто используется для отправки результата на определенный канал. Он намного мощнее, но здесь мы используем только основные функции. В этом примере у нас есть шестиканальное устройство -, и мы отправляем тональный сигнал на третий канал.
Сначала я создал устройство ALSA, обертывающее устройство PulseAudio, но затем обнаружил, что невозможно управлять сопоставлением каналов с помощью ALSA, и поэтому случайные каналы смешивались вместе в зависимости от того, чем моя пользовательская карта канала -отличалась от ALSA по умолчанию. Вот почему у меня есть --no-remix --no-remap
в paplay
выше; Мне просто нужен необработанный порядок каналов для команды sox.
Я бы хотел, чтобы звуковые материалы в Linux имели лучшую документацию и отчеты об ошибках.
Возможно, вас заинтересует ответ, который я недавно опубликовал, показывающий, как установить эквалайзер PulseAudio с помощью команды -строки .
Таким образом, решение состояло в том, чтобы перестать пытаться -переосмыслить документацию. Не редактируйте команду mkisofs
! Запустите его, как указано в документации. Единственное изменение, которое я сделал, это добавить -v
для подробного вывода. Это была страница , с которой я начал работать.
d_build_dir=/tmp/iso
df_dest_iso=/path/to/CentOS-8.3-2011-x86_64-ks.iso
d_usb_device=/dev/sdb
cd ${d_build_dir}
time mkisofs \
-o ${df_dest_iso} \
-b isolinux/isolinux.bin \
-J -R -l -v \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e images/efiboot.img \
-no-emul-boot \
-graft-points \
-V "CentOS-8-3-2011-x86_64-dvd" \
-jcharset utf-8.
isohybrid --uefi ${df_dest_iso}
implantisomd5 ${df_dest_iso}
umount ${d_usb_device}1
time dd if=${df_dest_iso} of=${d_usb_device} status=progress
Одна вещь, которую эта страница допустила неправильно, заключалась в том, что вам нужно выполнитьimplantisomd5
последнее . В противном случае команда isohybrid
внесет изменения в ISO, которые сломают хэши проверки md5.
Эти шаги позволяют мне получить загрузочный ISO-образ на флэш-накопителе USB. Это еще не дает мне пригодный для использования установщик. Я все еще работаю над получением полезных модификаций isolinux.cfg
или grub.cfg
. Я храню свои заметки в моем проекте github .