music_on_linux
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| music_on_linux [2022/09/15 08:56] – [다른 응용프로그램에서 녹음하기] hyjeong | music_on_linux [2026/03/18 15:14] (current) – removed hyjeong | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Music on Linux ====== | ||
| - | 이곳은 리눅스(우분투 스튜디오 20.04)가 설치된 다음의 두 가지 컴퓨터에서 음악과 MIDI 작업을 하는 요령을 기록하기 위한 위키 페이지이다. 이 글을 수정하는 2022년 4월 기준으로는 박물관에 보내도 좋을 하드웨어다. | ||
| - | - **노트북: | ||
| - | - **데스크탑: | ||
| - | 우분투 스튜디오의 좋은 점은 멀티미디어 작업에 필요한 많은 프로그램이 기본적으로 포함되어 있고, low latency kernel로 구동된다는 것이다. 설치된 리눅스 배포판과 커널의 상세 정보는 다음 명령으로 확인해 보자. | ||
| - | $ cat / | ||
| - | $ cat / | ||
| - | $ uname -a | ||
| - | |||
| - | 이 글은 초보자를 위한 친절한 tutorial 또는 step-by-step guide는 되지 못한다. 주된 목적은 나의 기억을 돕기 위해서 작성된 것이라고 봐야 한다. 글을 쓰면서 기본 개념을 잡기 위하여 다음 사이트를 주로 참고하였다. | ||
| - | * [[https:// | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * [[https:// | ||
| - | * **PulseAudio** is a sound server providing professional audio features such as mixing and input/ | ||
| - | * **JACK** Audio Connection Kit (JACK) is a professional sound server that provides <color # | ||
| - | |||
| - | 위에서 소개한 Ted의 가이드에서는 [[https:// | ||
| - | |||
| - | PulseAudio는 일반인을, | ||
| - | |||
| - | 나의 최종 목표는 [[https:// | ||
| - | |||
| - | ===== 설치된 사운드 카드의 확인 ===== | ||
| - | |||
| - | [[music_on_linux: | ||
| - | ==== 명령행 인터페이스(CLI) ==== | ||
| - | Behringer U-Control UCA200, Roland Sound Canvas SC-D70, 그리고 M-AUDIO Keystation 88es을 USB 단자에 꽂은 상태에서 'cat / | ||
| - | $ cat / | ||
| - | 0 [Intel | ||
| - | HDA Intel at 0xd4500000 irq 27 | ||
| - | 1 [CODEC | ||
| - | Burr-Brown from TI USB Audio CODEC at usb-0000: | ||
| - | 2 [SCD70 | ||
| - | Roland SC-D70 at usb-0000: | ||
| - | 맨 왼쪽에 보이는 숫자(card ID or card number)는 ALSA device name의 일부이다. ' | ||
| - | |||
| - | alsa-utils 패키지에 포함된 유틸리티 중 하나인 aplay를 사용해서 사운드 카드의 정보를 알아낼 수도 있다. USB 키보드 콘트롤러는 이 명령에서는 보이지 않는다. ' | ||
| - | |||
| - | $ aplay -l # or --list-devices; | ||
| - | **** PLAYBACK 하드웨어 장치 목록 **** | ||
| - | 0 카드: Intel [HDA Intel], 0 장치: 92HD75B2X5 Analog [92HD75B2X5 Analog] | ||
| - | 하위장치: | ||
| - | 하위장치 #0: subdevice #0 | ||
| - | 0 카드: Intel [HDA Intel], 3 장치: HDMI 0 [HDMI 0] | ||
| - | 하위장치: | ||
| - | 하위장치 #0: subdevice #0 | ||
| - | 1 카드: CODEC [USB Audio CODEC], 0 장치: USB Audio [USB Audio] | ||
| - | 하위장치: | ||
| - | 하위장치 #0: subdevice #0 | ||
| - | 2 카드: SCD70 [SC-D70], 0 장치: USB Audio [USB Audio] | ||
| - | 하위장치: | ||
| - | 하위장치 #0: subdevice #0 | ||
| - | 이로부터 내장 사운드카드의 디바이스 네임은 hw0,0임을 알 수 있다. | ||
| - | ALSA device, subdevice 및 card에 대한 의미는 [[http:// | ||
| - | === 내 사운드카드의 최대 샘플링 레이트는 얼마일까? | ||
| - | 컴퓨터 내장 사운드카드를 예로 들어서 이를 알아보자. PulseAudio의 기본 동작에서는 44100 Hz로 작동한다. 기본 설정은 / | ||
| - | ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for | ||
| - | ## more information. Default values are commented out. Use either ; or # for | ||
| - | ## commenting... | ||
| - | ; default-sample-format = s16le | ||
| - | ; default-sample-rate = 44100 | ||
| - | ; alternate-sample-rate = 48000 | ||
| - | ; default-sample-channels = 2 | ||
| - | ; default-channel-map = front-left, | ||
| - | 고의로 60 kHz로 녹음을 시도한 뒤 명령행에 나오는 메시지를 통하여 내장 사운드카드가 지원하는 최대의 샘플링 레이트를 알아보자. '-f dat' | ||
| - | $ arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav | ||
| - | 녹음 WAVE ' | ||
| - | 경고: 비율이 정확하지 않습니다(요청함 = 60000Hz, 가져옴 = 48000Hz) | ||
| - | | ||
| - | 여기에서 **플러그인**이라는 다소 어려운 개념이 나온다. Plugin이란, | ||
| - | ==== PulseAudio Volume Control(GUI)을 이용한 사운드 카드의 확인 및 설정 변경 ==== | ||
| - | GUI 프로그램인 PulseAudio Volume Control(명령어: | ||
| - | {{ : | ||
| - | |||
| - | UCA200은 ' | ||
| - | |||
| - | 여러 사운드 장비가 꽂혀 있을 때 원하는 장비에서 입출력이 이루어지게 만들려면 PulseAudio Volume Control의 설정 탭을 이용하는 것이 원칙이라고 보아도 무방하다. 예를 들어 USB 마이크가 연결되어 있지만 이는 입력만 담당하고 출력은 내장 사운드 카드에서 뽑고자 할 때가 있을 때 이 기능을 적절히 사용하면 된다. 명령어 환경에서는 'pactl list short sources|links' | ||
| - | * cat / | ||
| - | * aplay -l | ||
| - | * pactl list short sources [sinks] | ||
| - | * pacmd list-cards | ||
| - | * pacmd list-sources [list-sinks] | ||
| - | 다음 명령어는 default source/ | ||
| - | * pacmd list-sources [list-sinks] | grep -e ' | ||
| - | |||
| - | ===== 오디오 파일의 재생 ===== | ||
| - | ==== 테스트 목적의 사운드 파일 생성 및 재생 ==== | ||
| - | [[http:// | ||
| - | $ sudo apt install sox | ||
| - | $ sox -b 16 -n test.wav rate 44100 channels 2 synth 1 sine 440 gain -1 | ||
| - | $ play test.wav # 기본 장치를 통한 재생 | ||
| - | # USB 사운드 카드가 꽂힌 상태에서도 다음과 같이 입력하면 내장 사운드 카드에서 재생이 된다. | ||
| - | $ aplay -D hw:0 test.wav # / | ||
| - | $ aplay -D hw:Intel test.wav | ||
| - | Default 사운드 카드를 설정하는 다양한 방법에 대해서는 [[https:// | ||
| - | |||
| - | ==== USB 마이크를 이용한 녹음과 재생 ==== | ||
| - | alsa-utils에서 제공하는 프로그램인 aplay/ | ||
| - | $ aplay -l | ||
| - | **** PLAYBACK 하드웨어 장치 목록 **** | ||
| - | 2 카드: CODEC [USB audio CODEC], 0 장치: USB Audio [USB Audio] | ||
| - | 하위장치: | ||
| - | 하위장치 #0: subdevice #0 | ||
| - | ..(생략) | ||
| - | USB 마이크는 ' | ||
| - | $ arecord -f dat -c 1 -r 48000 --device=" | ||
| - | 녹음 WAVE ' | ||
| - | $ aplay test.wav | ||
| - | |||
| - | |||
| - | |||
| - | ==== MIDI 파일의 재생(1): 외장 모듈의 이용 ==== | ||
| - | USB 케이블로 연결된 Sound Canvas SC-D70를 이용하여 MIDI 파일을 재생하는 방법을 알아보자. USB MIDI interface를 통하여 고전적인 사운드 모듈이 연결된 상황에서도 이와 비슷할 것이다. 원하는 MIDI output port를 알아낸 다음 aplaymidi 명령으로 MIDI 파일을 재생하면 된다. | ||
| - | $ aplaymidi -l # or --l (list all possible output ports) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | $ aplaymidi -p 20:2 cakewalk.mid # 또는 --port 20:2 | ||
| - | ==== MIDI 파일의 재생(2): 사운드 폰트의 이용(FluidSynth) ==== | ||
| - | [[https:// | ||
| - | $ fluidsynth --audio-driver=alsa / | ||
| - | > ...음악 재생... | ||
| - | > quit | ||
| - | cheers! | ||
| - | # JACK 사용. 그러나 설정이 완벽하게 되어 있어야 한다. | ||
| - | $ fluidsynth / | ||
| - | FluidSynth를 다른 스타일로 실행해 보자. -m alsa_seq[--midi-driver=alsa_seq]은 지정하지 않아도 된다. | ||
| - | $ fluidsynth -a alsa -m alsa_seq -l -i / | ||
| - | |||
| - | FluidSynth를 **서버**로 작동시키면 다른 응용프로그램(예: | ||
| - | $ fluidsynth --server --audio-driver=alsa / | ||
| - | $ aplaymidi -l | ||
| - | Port Client name Port name | ||
| - | | ||
| - | | ||
| - | 128:0 FLUID Synth (5439) | ||
| - | $ aplaymidi -p 128:0 flourish.mid | ||
| - | FluidSynth의 몇가지 유용한 명령행 사례를 [[https:// | ||
| - | ===== 키보드 콘트롤러를 연결하여 FluidSynth 연주하기 ===== | ||
| - | USB MIDI 키보드 콘트롤러를 연결한 다음 FluidSynth로 소리를 내어 보자. FluidSynth는 서버 모드(-s or %%--%%server)로 작동해도 되고, shell이 나타나도록(' | ||
| - | $ aconnect -i | ||
| - | client 0: ' | ||
| - | 0 ' | ||
| - | 1 ' | ||
| - | client 14: 'Midi Through' | ||
| - | 0 'Midi Through Port-0' | ||
| - | client 24: 'iCON iKeyboard 5 Nano V1.06' [type=커널, | ||
| - | 0 'iCON iKeyboard 5 Nano V1.06 MID' | ||
| - | $ aconnect -o | ||
| - | client 14: 'Midi Through' | ||
| - | 0 'Midi Through Port-0' | ||
| - | client 24: 'iCON iKeyboard 5 Nano V1.06' [type=커널, | ||
| - | 0 'iCON iKeyboard 5 Nano V1.06 MID' | ||
| - | client 128: 'FLUID Synth (5439)' | ||
| - | 0 'Synth input port (5439: | ||
| - | $ aconnect 24:0 128:0 # 각 포트에 속한 디바이스가 하나뿐이므로 ': | ||
| - | |||
| - | FluidSynth를 실행할 때 사운드 폰트를 여러 개 동시에 인수로 지정하면 shell prompt에서 선택할 수 있다. 각 채널에 할당된 프로그램을 확인하고 이를 바꾸어서 연주해 보자. | ||
| - | > fonts | ||
| - | ID Name | ||
| - | | ||
| - | > inst 1 # font ID를 입력한다. 프로그램 전체 목록을 보여준다(번호는 0부터 시작). | ||
| - | 000-000 Yamaha Grand Piano | ||
| - | 000-001 Bright Yamaha Grand | ||
| - | ... | ||
| - | 008-004 Detuned EP 1 | ||
| - | 008-005 Detuned EP 2 | ||
| - | ... | ||
| - | 128-048 Orchestra Kit | ||
| - | > channels # 각 채널에 할당된 프로그램을 보여준다. 채널 번호는 01부터 시작한다. | ||
| - | chan 0, Yamaha Grand Piano | ||
| - | chan 1, Yamaha Grand Piano | ||
| - | ... | ||
| - | chan 15, Yamaha Grand Piano | ||
| - | > prog 0 3 # 0번 채널의 프로그램을 3번(' | ||
| - | > channels | ||
| - | chan 0, Honky Tonk | ||
| - | ... | ||
| - | > select 0 1 8 4 # 다른 뱅크에 속하는 프로그램으로 바꾼다(chan sfont bank prog) | ||
| - | > channels | ||
| - | chan 0, Detuned EP 1 | ||
| - | ... | ||
| - | chan 15, Yamaha Grand Piano | ||
| - | FluidSynth shell prompt에서 입력 가능한 명령어를 알고 싶다면 ' | ||
| - | |||
| - | ==== FluidSynth 명령어에서 직접 키보드 연결하기 ==== | ||
| - | alsa-utils의 일부인 amidi를 사용하여 MIDI 키보드의 주소를 알아낸다. | ||
| - | $ amidi | ||
| - | Please specify at least one of --send, --receive, --send-hex, or --dump. | ||
| - | $ amidi -l | ||
| - | Dir Device | ||
| - | IO hw: | ||
| - | FluidSynth를 실행한다. ' | ||
| - | $ fluidsynth -s -a alsa -m alsa_raw -o midi.alsa.device=hw: | ||
| - | |||
| - | ==== FluidSynth with PulseAudio ==== | ||
| - | MIDI Keyboard controller가 연결되어 있다면 특별한 설정을 더 하지 않아도 다음과 같이 최소한의 명령으로 연주를 할 수 있다. 참고 사이트는 [[https:// | ||
| - | $ fluidsynth -a pulseaudio -m alsa_seq -o midi.autoconnect=1 -g 1.0 / | ||
| - | ==== run_fluidsynth script ==== | ||
| - | [[music_on_linux: | ||
| - | $ run_fluidsynth | ||
| - | Run JACK server prior to running FluidiSynth! | ||
| - | $ run_fluidsynth -a | ||
| - | | ||
| - | ALSA audio driver will be used (default: JACK) | ||
| - | | ||
| - | Soundfonts installed in / | ||
| - | [0]: FluidR3_GM.sf2 - 142M | ||
| - | [1]: Nice-Keys-Complete-JNv2.0.sf2 - 750M | ||
| - | [2]: Chateau_Grand-v1.8.sf2 - 259M | ||
| - | [3]: Nice-Keys-Ultimate-V2.3.sf2 - 1.2G | ||
| - | [4]: Essential_Pianos-bs16i-v1.0.sf2 - 668M | ||
| - | | ||
| - | Select sf2 index number: 1 | ||
| - | FluidSynth version 1.1.9 | ||
| - | Copyright (C) 2000-2018 Peter Hanappe and others. | ||
| - | Distributed under the LGPL license. | ||
| - | SoundFont(R) is a registered trademark of E-mu Systems, Inc. | ||
| - | JACK을 활용하려면, | ||
| - | $ jackd -d alsa --device hw:Intel --rate 44100 --period 128 | ||
| - | 웹 서핑 중에 발견한 [[https:// | ||
| - | ===== JACK, a low-latency audio server ===== | ||
| - | 드디어 [[https:// | ||
| - | $ jackd --version | ||
| - | jackdmp version 1.9.12 tmpdir /dev/shm protocol 8 | ||
| - | 컴퓨터를 켠 직후라면 jackdbus manager인 autojack만이 백그라운드에 돌고 있을 것이다. | ||
| - | $ pgrep -l jack | ||
| - | 1500 autojack | ||
| - | |||
| - | jackd와 jackdbus의 차이점은 [[https:// | ||
| - | $ jackd -d alsa --device hw:0 --rate 44100 --period 128 | ||
| - | $ export JACK_PLAY_CONNECT_TO=system: | ||
| - | $ jack-play test.wav | ||
| - | 사운드카드가 지원하지 않는 높은 샘플링 레이트를 지정했다 하더라도 JACK은 지원 기능한 최상의 샘플링 레이트로 장치를 구동한다. jack_bufsize 명령을 다음과 같인 인수 없이 실행하면 현재의 buffer size를 출력한다. | ||
| - | # jackd가 구동 중인 상태여야 함. | ||
| - | $ jack_bufsize | ||
| - | buffer size = 256 sample rate = 44100 | ||
| - | JACK을 오디오 드라이버로 하여 FluidSynth를 구동하려면 다음의 명령을 입력한다. | ||
| - | $ fluidsynth --server --audio-driver=jack --connect-jack-outputs / | ||
| - | 그러고 나서 aplaymidi -p < | ||
| - | ==== Ted's audio script ==== | ||
| - | Ted's Linux MIDI Guide에서는 pasuspender를 이용하여 PulseAudio의 작동을 잠시 멈춘 다음 JACK 서버(jackd 명령어 사용)를 구동하고 FluidSynth를 로드하는 스크립트인 **audio**를 소개하였다([[music_on_linux: | ||
| - | $ audio start | ||
| - | $ audio stop | ||
| - | JACK이 실행된 다음에는 설정 변경을 위해 Qt GUI인 [[https:// | ||
| - | ==== 정해영의 audio.qsynth script ==== | ||
| - | Ted의 original audio 스크립트에서는 사운드 카드에 대한 파라미터로 ' | ||
| - | $ audio.qsynth start CODEC | ||
| - | Audio device CODEC found! | ||
| - | Starting JACK using CODEC... | ||
| - | Press Esc key within 3 seconds to skip Qsynth: | ||
| - | Starting Qsynth... | ||
| - | 5692 jackd | ||
| - | 5688 audio.qsynth | ||
| - | 5699 qsynth | ||
| - | Audio servers running. | ||
| - | You may start qjackctl and PulseAudioJackSink (post_jack). | ||
| - | Please run a2jmidid -e if you have hardware MIDI devices connected. | ||
| - | You may use a2j -e instead. | ||
| - | | ||
| - | $ audio.qsynth stop | ||
| - | 5699 qsynth | ||
| - | 5715 audio.qsynth | ||
| - | Audio servers stopped. | ||
| - | ==== PulseAudio JACK Sink란? ==== | ||
| - | Firefox에서 유튜브 동영상을 재생하면서 audio.qsynth 스크립트를 실행해 보라. 재생이 멈추고 더 이상 Firefox application의 소리가 나지 않을 것이다. 이는 PulseAudio가 관리하던 오디오 신호를 JACK이 전부 가져가 버렸기 때문이다. audio 스크립트 앞부분의 ' | ||
| - | $ cat ~/ | ||
| - | pactl load-module module-jack-sink channels=2 | ||
| - | pactl load-module module-jack-source channels=2 | ||
| - | pacmd set-default-sink jack_out | ||
| - | |||
| - | 모듈이 로드되었는지의 여부는 'pactl list modules' | ||
| - | $ pactl list modules # 약 30개 모듈의 상세한 목록을 출력 | ||
| - | # JACK을 실행하고 있는 도중에 확인하기 | ||
| - | $ pactl list modules | grep jack | ||
| - | 이름: module-jackdbus-detect | ||
| - | 이름: module-jack-sink | ||
| - | 이름: module-jack-source | ||
| - | PulseAudio Volume Control의 출력 장치 탭에서는 다음과 같이 나타날 것이다. | ||
| - | {{ : | ||
| - | 뒤에서 설명할 jack_control을 사용하면 post_jack 스트립트를 사용하지 않아도 sink의 전환이 저절로 일어나는 것 같다. | ||
| - | |||
| - | 어찌보면 PulseAudio와 JACK은 ALSA 드라이버를 놓고 서로 경쟁하는 것처럼 보인다. 일반적인 consumer 수준이라면 JACK을 전혀 쓰지 않고 음악 감상 등을 충분히 즐길 수 있다. 그러나 music producer 수준의 작업을 하려면 JACK을 전혀 쓰지 않을 수는 없는 노릇이다. PulseAudio와 JACK이 같이 설치된 시스템을 평화롭게 운용하려면 JACK 공식 문서 사이트의 [[https:// | ||
| - | |||
| - | ==== JACK basic setting 이해하기 ==== | ||
| - | 레이턴시란 실시간 오디오 프로세싱에서 일어나는 시간 지연을 뜻한다. 건반으로 가상악기를 연주하면서 실시간 녹음을 하는데 실제 입력보다 소리가 늦게 들리면 상당히 짜증이 난다. 설정을 잘 조정해야 레이턴시도 적고 잡음도 줄어든다. Buffer size, sample rate, 그리고 period/ | ||
| - | |||
| - | === Buffer size(frames per period라고도 부름) === | ||
| - | Buffer size란 컴퓨터가 오디오 신호를 처리할 때 허용되는 시간의 길이이다(시간을 실제 단위로 하지는 않는다). 작은 값일수록 monitoring latency가 줄어든다. 그러나 낮게 잡으면 CPU를 많이 쓰게 되고 ' | ||
| - | |||
| - | === Sample rate === | ||
| - | 다음과 같은 단순 공식(Nyquist theorem)에 따르면 높을수록 좋다. | ||
| - | |||
| - | Sample rate ÷ 2 = maximum frequency that can be correctly captured | ||
| - | |||
| - | 44.1kHz는 CD 수준의 음질이다. 48kHz를 쓰려면 오디오 장비가 이를 지원하는지 확인해 보라. 지나치게 높으면 CPU 사용량이 높아지고, | ||
| - | |||
| - | === Periods/ | ||
| - | USB 장비는 3으로 하면 더욱 안정적인 low latency를 얻을 것이다. 그 밖의 장비(motherboard, | ||
| - | |||
| - | <color # | ||
| - | |||
| - | [[https:// | ||
| - | {{ : | ||
| - | |||
| - | ==== a2midid (JACK MIDI daemon for ALSA MIDI) ==== | ||
| - | ARDOUR의 매뉴얼의 JACK MIDI Configuration 문서에 의하면, JACK은 기본적으로 MIDI 포트를 검출하지 못하므로 native MIDI frameworks와 (e.g. CoreMIDI or ALSA) and JACK MIDI를 연결할 방편을 마련해야 한다고 한다. 그 방법은 현재 사용하는 JACK의 버전에 따라 달라진다고 한다. Arch Linux 웹사이트의 [[https:// | ||
| - | $ a2jmidid -e # ' | ||
| - | |||
| - | ==== jack_control을 이용한 JACK 구동 ==== | ||
| - | 위키백과에 의하면 [[https:// | ||
| - | $ start_jack_uca200 | ||
| - | --- start | ||
| - | DBus exception: org.jackaudio.Error.Generic: | ||
| - | # 이러한 에러가 발생하면 다음 설정 파일을 지우고 jackdbus를 죽인 뒤 재실행한다. | ||
| - | $ rm ~/.jackdrc ~/ | ||
| - | $ killall -9 jackdbus | ||
| - | $ start_jack_uca200 | ||
| - | --- start | ||
| - | --- driver select " | ||
| - | --- driver param set " | ||
| - | --- driver param set " | ||
| - | --- driver param set " | ||
| - | --- driver param set " | ||
| - | $ jack_control stop | ||
| - | --- stop | ||
| - | # QjackCtl은 GUI에서 직접 종료하거나 명령행에서 ' | ||
| - | $ jack_control exit # ' | ||
| - | --- exit | ||
| - | 스크립트 시작 부분의 'echo " | ||
| - | ==== Qsynth(JACK) 사용하기 ==== | ||
| - | [[https:// | ||
| - | $ grep Driver ~/ | ||
| - | AudioDriver=jack | ||
| - | MidiDriver=alsa_seq | ||
| - | 만약 설정 파일에 AudioDriver=jack라 기록되어 있고 명령행에서 '-a jack'a jack(또는 ' | ||
| - | $ qsynth -m alsa_seq -a alsa | ||
| - | # GUI 설정 창에서 사운드폰트를 로드했는지 확인한다. | ||
| - | $ aplaymidi -p 128:0 song.mid | ||
| - | 물론 aplaymidi를 쓰지 않고 Qsynth의 인수로 MIDI 파일을 직접 제공하여 재생하는 것도 가능하다. | ||
| - | $ qsynth -m alsa_seq flourish.mid | ||
| - | 가상 키보드인 vmpk를 실행하고 Edit-> | ||
| - | $ vmpk | ||
| - | 이번에는 Yamaha DX7 modeling software synthesizer인 Hexter를 실행해 본다. 이것은 Qsynth처럼 명령행에서 실행할 수 있는 것이 아니며, 패널의 프로그램-> | ||
| - | $ aconnect -x # 기존의 연결을 끊는다. | ||
| - | $ aconnect -i | ||
| - | client 0: ' | ||
| - | 0 ' | ||
| - | 1 ' | ||
| - | client 14: 'Midi Through' | ||
| - | 0 'Midi Through Port-0' | ||
| - | client 129: 'VMPK Output' | ||
| - | 0 'VMPK Output | ||
| - | $ aconnect -o | ||
| - | client 14: 'Midi Through' | ||
| - | 0 'Midi Through Port-0' | ||
| - | client 130: 'VMPK Input' [type=사용자, | ||
| - | 0 'VMPK Input ' | ||
| - | client 131: 'FLUID Synth (2554)' | ||
| - | 0 'Synth input port (2554: | ||
| - | client 132: ' | ||
| - | 0 ' | ||
| - | $ aconnect 129:0 132:0 #원하는 MIDI sender(키보드)와 receiver(악기)를 연결한다. | ||
| - | 만약 컴퓨터에 하드웨어 키보드를 연결하였다면 aconnect -i 명령을 실행했을 때 나타날 것이다. 그러면 aconnect 명령으로 원하는 악기와 연결하여 연주하면 된다. 만약 이 과정이 번거롭게 느껴진다면, | ||
| - | |||
| - | 설치된 모든 software synthesizer가 Hexter처럼 단독 실행이 가능한 것은 아니다. JACK이 없으면 안되는 것도 있다. | ||
| - | |||
| - | ===== 명령행 인터페이스에서 녹음하는 요령 ===== | ||
| - | 녹음 작업의 신호원은 기본적으로 마이크로폰이다. 컴퓨터에서 실행되는 응용프로그램의 재생음을 녹음하려면 약간의 설정 변경이 필요하다. PulseAudio와 달리 JACK은 하나의 사운드 카드만에 대해서 작동하므로, | ||
| - | |||
| - | 다음에 소개한 링크에서는 CLI 명령어인 **arecord**를 사용하여 녹음하는 방법을 알아보자. 녹음시 마이크로 입력되는 소리를 직접 모니터링하려면 어떻게 할까? 여러 입력을 동시에 녹음하려면 어떻게 할까? PulseAudio의 **loopback**을 이용하는 요령과 **parec** 및 **pulse-record.bash** 스크립트를 사용하는 방법도 다음의 글을 통해서 알아보도록 한다. | ||
| - | |||
| - | * [[music_on_linux: | ||
| - | * [[music_on_linux: | ||
| - | |||
| - | ===== 다른 응용프로그램에서 녹음하기 ===== | ||
| - | * [Audacity tutorial] [[https:// | ||
| - | * [[music_on_linux: | ||
| - | |||
| - | |||
| - | ===== 기타 정보 ===== | ||
| - | <color # | ||
| - | * [[https:// | ||
| - | * **[정해영의 블로그]** [[http:// | ||
| - | * **[정해영의 블로그]** [[http:// | ||
| - | * **[정해영의 블로그]** [[http:// | ||
| - | * **[정해영의 블로그]** [[http:// | ||
| - | * **[Rosegarden]** [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[http:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Music on Linux 네임스페이스 내의 모든 문서 ===== | ||
| - | |||
| - | {{pglist> | ||
music_on_linux.1663199795.txt.gz · Last modified: by hyjeong
