PC에서 케이블 조작 없이 스피커 좌우 반전 시키기

후배 방 PC에 꽂을 스피커를 하나 샀는데 선이 짧았다. 그래서 좀 찾아보니 대부분이 케이블로 한다는 해결책 밖에 없었다. 몇몇 게임에서도 좌우 반전을 지원하지만 게임 안에서일 뿐이고 어쨌든 이 목적에는 정확히 맞지 않는다.
일단 케이블로 하고 싶은 분은 케이블로 하는 게 직관적이고 깔끔하긴 하다. Y자 케이블 두 개를 사서 반대로 끼우는 방법, 그냥 연장 케이블을 사서 스피커를 반대로 돌리지 않아도 되는 것. 하지만 이걸 인터넷으로 찾아보는 사람들은 이걸 원하는 게 아니지 않는가?
이것저것 찾아보고 해봤더니 매우 간편하게 윈도우즈 기본 스피커 좌우를 바꾸는 방법이 있었다.

일단 이 프로그램이 필요하다, Equalizer APO.
https://sourceforge.net/projects/equalizerapo/

설치를 하다 보면 중간에 출력할 사운드 카드를 선택하라고 나오는데, 여기서 좌우를 반전시킬 출력 장치를 고르면 된다. 물론 나중에도 변경 가능하다. (스피커 – Realtek High Definition Audio 뭐 이런 식이었던 거 같다.)

설치가 끝난 다음,

C:\Program Files\EqualizerAPO\config

와 같이 설치한 경로 밑의 config 폴더로 간다.

가보면 몇 가지 예제들이 있다. 우리는 여기서 텍스트 파일을 하나 만든다.
이름은 마음대로 한다. 나는 swap_channels.txt로 했다.
내용은

Copy: L=R R=L

이렇게만 하고 저장한다.

이제 설치한 Equalizer APO의 Configuration Editor를 실행한다.
Editor의 오른쪽 위에 선택한 출력 장치가 제대로 선택이 됐는지 마지막으로 확인한다.
거기서 디폴트로 몇 가지 옵션들이 미리 리스트에 올라가있을텐데, 이걸 모두 지운다.
Equalizer APO 버전 따라 다를 수도 있는데 지우는 버튼인 -가 보이지 않는다면 1.2 기준으로는 초록색 + 밑의 화살표를 누르면 Remove 메뉴가 뜬다. 어쨌든 이걸로 리스트 상의 모든 옵션을 지워준다.
(물론 다 안 지워도 되기는 하지만 지금 목적은 스피커 좌우만 바꾸는 거니 일단 다 지우는 걸로 한다.)

다 지우고 난 뒤에는 다시 초록색 +를 눌러서 Control > Include (Include configuration file)로 옵션을 하나 추가한다. 다음 옵션의 Include: 텍스트 박스의 오른쪽 버튼을 눌러 아까 생성한 config 폴더 밑의 설정 파일(나는 swap_channels.txt로 생성했다.)을 선택해준다.

이제 Equalizer APO Configuration Editor 메뉴의 File > Save로 저장해주고 Editor를 끄면 끝이다.
적용은 원래는 바로 돼야 하지만 이건 아마 재부팅 후에 됐던 걸로 기억한다.

이 방법의 단점이라고 하면 사운드 카드를 하나 지정해서 모두 반전을 시키니 이 사운드 카드에 꽂아서 듣는 모든 출력 장치가 좌우 반전이 된다. 그래도 간편하게 좌우 반전 시켰다가 다시 정상으로 돌릴 수 있으니 꽤 좋은 방법 같다.

또한 Equalizer APO 이 프로그램이 이런 용도로만 쓰는 게 아니고 이퀄라이징에 대해서 꽤 많은 기능이 있으니, 스피커 좌우 반전에 성공하고 난 뒤에 다른 용도도 필요하면 유용한 프로그램이다.

Arch Linux에서 Transmission을 Telegram으로 제어하기

최근 텔레그램 봇을 이것저것 뜯어보니, 생각보다 매우 간편하게 봇을 만들고 명령하고 답변 받을 수 있어서 어디 쓸까 생각하던 차에, 트랜스미션을 텔레그램으로 제어하는 프로그램을 발견했다.

https://github.com/pyed/transmission-telegram

사실 난 안드로이드만 쓰고 트랜스미션 어플이 안드로이드에는 있어서 이 방식이 별로 필요 없지만, 아이폰이나 아이패드 같은 경우는 트랜스미션 앱도 없고 파일을 왓치 폴더에 올리는 식으로 밖에 할 수 없어서 이 방식이 매우 유용할 것으로 본다.

먼저 transmission-telegram을 다운로드 한다.

https://github.com/pyed/transmission-telegram/releases

나는 포고플러그 E02를 쓰고 있으니 transmission-telegram_Linux_arm.tar.gz을 받았다. 각자 OS와 CPU에 맞게 받으면 된다.

이제 텔레그램에서 내가 쓸 봇을 생성해보자. 봇아빠(@BotFather)를 찾아가자. 앞으로 BotFather을 봇아빠라고 한다.
봇아빠한테서 봇 하나 생성한다.

/newbot

채팅창에서 보일 이름을 정한다. 바로 구분할 수 있는 게 좋으니 난 그냥 Transmission으로 했다.

Transmission

다음은 이 봇의 고유 이름을 붙인다. 다른 봇들과 이름이 중복이 안 되고, 마지막은 bot으로 끝나야 한다. TransmissionBot이나 transmission_bot 뭐 이런 식이면 된다. 중복되는 게 없을 때까지 물어보니 맘에 드는 걸로 한다. 여기서는 예로 TransmissionBot.

TransmissionBot

이러면 이제 봇아빠는 생성한 봇의 토큰 값을 알려준다.

012345678:ABCDEFGHIJKLMNOPQRSTUVWXYZ

이런 형식의 토큰 값이다. 누구에게도 알려주지 말고 잘 간직하자. 노출이 됐으면 봇을 그냥 지우고 새로 만들면 된다.

이제 만든 봇한테 가서 말 한번 걸어보자. 봇아빠가 마지막에 준 메시지에서 클릭해서 들어가도 되고, @TransmissionBot와 같이 찾아서 들어가도 된다.
시작을 누르거나 /start를 주고 아무 말이나 한번 걸어준다.

이제 이러면 내가 쓸 텔레그램 봇은 마련이 됐고, 이제 처음에 받은 transmission-telegram을 설치한다.

/usr/local/bin

나는 여기다 설치했지만 그냥

export $PATH

해서 나오는 $PATH 중에 맘에 드는 걸로 하거나 새로 하나 만들고 $PATH에 추가해도 된다.
소유자도 원하는 걸로 바꿔놓든가 하고 실행 권한도 준다.

cd /usr/local/bin
chown root:root transmission-telegram
chmod a+x transmission-telegram

이제 그냥 실행시키고 나와도 상관이 없으나, 재부팅 하거나 하면 또 실행시켜야 하니 systemctl에 등록을 한다.

nano /usr/lib/systemd/system/transmission-telegram.service

다음 아래와 같은 형식으로 채워 넣는다.

[Unit]
Description=Transmission-Telegram
After=transmission.service

[Service]
User=(트랜스미션을 실행하는 유저 혹은 그보다 상위 유저)
Type=simple
ExecStart=/usr/local/bin/transmission-telegram -token=(위에서의 토큰 값) -master=@(봇의 아이디가 아닌 봇을 제어할 내 자신의 아이디) -username=(Transmission 유저 이름) -password=(Transmission 비밀번호)

[Install]
WantedBy=multi-user.target

트랜스미션에 로그인을 해야 해서 트랜스미션 서비스가 실행된 뒤에 실행이 되고, 이 서비스로부터 피드백은 받지 않게 했다. 조금씩 고칠 부분이 있으면 고치면 된다.
또한 systemctl status transmission-telegram으로 볼 때마다 저기서 쓴 비밀번호가 그냥 노출이 되니 혼자 쓰는 NAS면 누가 들어와서 보지 않는 이상 보진 않겠지만 찝찝하면 노출이 돼도 상관이 없는 것으로 바꾸자.

이제 transmission-telegram을 등록하고 실행해보자.

systemctl enable transmission-telegram
systemctl start transmission-telegram

다음 만들어둔 봇에게 가서 /help 한번 쳐보자. 응답이 온다면 성공.
나머지 명령어는 /help를 읽읍시다.