2018년 4월 23일 월요일

6N1 + 6P1 싱글 엔디드 진공관 앰프의 트랜스 울림 해결

난생 처음으로 전원 트랜스를 주문제작하여 진공관 앰프를 조립하였는데 전원 트랜스에서 웅~ 하는 떨림이 심하게 난다. 그 이유가 무엇일까? 인터넷을 뒤져보았다.

  1. 함침(impregnation) 불충분. 함침이란 트랜스 내부의 공기를 빼내고 절연 바니쉬 등으로 메우는 것이다.
  2. 용량 부족
  3. 전원에 DC가 유입될 경우
제이앨범(링크)에 계속 글을 올리면서 문제점을 점검해 나갔다. 첫번째 제안은 전원 용량이 부족한 것이 아니겠느냐는 지적이었다. 설계 용량은 230 V 120 mA, 6.3 V 1.6 A였다. 초크 코일 대용으로 넣은 220옴 5와트 시멘트 저항 양단의 전압 강하를 측정하여 저항으로 나누면 전류값이 나온다. 계산으로는 85 mA였다. 계획한 120 mA에 비하여 너무 낮은 것이 아닐까? 하지만 제이앨범에서는 괜찮은 수치라고 했다. 그렇다면 히터용 전원이 의심스럽다. 부하를 걸지 않으면 울림이 없는 것으로 보아서 분명히 작동 중에만 일어나는 현상이다.

만약 히터를 제2의 전원으로 점화하면 어떻게 될까? 마침 나에게는 LM1876 앰프에 사용하던 13 V - 0 V - 13 V 전원 트랜스가 하나 더 있다. 중간 탭과 13 V 탭을 출력관(6P2) 두 개의 히터에 연결하면 될 것 같았다. 히터는 직렬로 연결하면 각 히터에 대해서 6.5 V 정도의 전압이 잘 배분될 것 같았다.


부하를 건 상태에서 실제로 히터 양단 간의 전압을 측정하니 7 V가 넘는 전압이 걸렸다. 이대로 쓰기에는 전압이 너무 높다. 주변에 있는 저항을 적당히 조합하여 원하는 전압이 나오도록 조절해 보았다. 8.2 Ohm 5 W 저항 두 개를 병렬로 연결하여 합성저항 4.1 Ohm을 만든 뒤 중간에 삽입하니 6.2 V 정도로 아주 적당한 히터 전압이 나왔다. 저항의 발열도 그다지 크지 않았다. 계산을 통해 히터 회로에는 0.45 A의 전류가 흐름을 알았다. 6P1 specification에 나온 그대로이다.

테스트용 음악을 하루 종일 연주하는 지금의 모습이다. 소출력 앰프 하나에 전원 트랜스를 무려 두 개나 동원하다니! 앰프의 경량화는 이미 예전에 물건너 갔다. 이제 전원 트랜스 울림은 들리지 않는다. 음질은 라디오를 듣는 것과 약간 유사한 느낌인데, 이는 일반 전원 트랜스를 적당히 개조하여 아웃풋 트랜스로 사용했기 때문일 것이다. 그렇다 해도 음량은 꽤 높게 나와서 책상 앞의 SPL 87 dB 스피커를 충분히 울려준다. 사실 여기에 차마 옮기기 부끄러운 - 그리고 위험한 - 실수도 많이 있었다. 힘은 들었으나 좋은 경험이었다. 아마도 다음번 프로젝트는 R 코어를 이용한 출력 트랜스 제작이 아닐까 생각한다.


[하루에 한 R] reshape 패키지를 이용하여 쌍(pairwise) 자료를 매트릭스로 전환하기

dRep(논문, GitHub)은 수십, 혹은 그 이상의 미생물 유전체를 신속하게 비교하여 중복을 제거하는 도구이다. 메타게놈 데이터의 처리에도 유용하지만 다량의 유전체 자료를 비교하여 유사도(gANI) 기준으로 샘플을 묶는 데에도 편리하게 쓰일 수 있다. 그러나 pyani 처럼 매트릭스 형태의 자료를 제시하지 않는다. ANI 값들이 일단 매트릭스로 주어진다면 분석자의 입맛에 맞는 가공과 시각화가 가능하지 않겠는가?

결과 디렉토리 안에 활용 가능한 자료가 있을 것이라 생각하고 data_table 디렉토리를 열어보았다. 다음과 같은 네 개의 csv 파일이 존재한다.

Bdb.csv  Cdb.csv  Mdb.csv  Ndb.csv

하나씩 열어보면 무슨 자료를 담고 있는지 누구나 파악할 수 있다. 이 중에서 Ndb.csv가 모든 유전체를 1:1로 pairwise 비교를 하여 계산한 수치를 담은 파일이다. 파일의 형식은 다음과 같이 첫 줄에 나온다. 왜 query가 아니고 querry인가? 내가 잘못 타이핑한 것이 아니라 실제 결과 파일을 복사해서 여기에 가져다 놓았을 뿐이다.

alignment_coverage,ani,querry,reference,MASH_cluster

굵은 글씨로 표현된 컬럼만 뽑아내면 된다. 이는 awk를 적절히 사용하는 것으로 가능하다.

$ awk -F"," -v OFS="\t" '!/^alignment/{print $3, $4, $2}' Ndb.csv > matrix.txt

query와 reference 컬럼은 실제 dRep 계산에 사용한 파일 이름 그대로이다. 나의 경우는 다음과 같다.

Lactobacillus_rhamnosus_116_GCF_000801045.1.fna

너무 길어서 보기가 좋지 않다. Lacto..에서 GCF까지를 non greedy하게 제거하고, 다음으로 .fna 확장자를 제거하는 것이 좋을 것이다. GCF_까지 없애면 나중에 R로 읽어들였을 때 숫자로 인식을 하여 약간 번거로워진다. non greedy하게 매치된 문자열을 없애려면 vim의 last line mode에서 다음과 같이 입력한다.

:1,$s/Lacto.\{-}_GCF//g
:1,$s/.fna//g

그 다음으로는 R에서 데이터프레임으로 읽어들여서 처리하면 된다. Ndb.csv는 두 샘플이 각각 query와 reference일 때의 gANI 값을 두 개의 라인으로 기록해 놓은 것이다. 따라서 매트릭스로 전환한 다음에는 대각선에 대하여 대칭이 아니다. 이는 t() 함수로 역행렬을 만든 것을 자기 자신에게 더한 뒤 둘로 나눔으로써 해결한다.

R 코드는 다음과 같다. reshape 패키지(링크)가 큰 도움이 되었으며, 힌트는 여기에서 얻었다. 이 패키지는 R 개발자로 널리 알려진 해들리 위캠의 작품이다.
> install.packages("reshape")
> library(reshape)
> d = read.table(file="matrix.txt",sep="\t",header=F)
> d2 = cast(d,V1~V2)
> rownames(d2) = d2[,1]
> d2 = d2[,-1]
> d3 = (d2 + t(d2))/2
# 확인용
> dim(d3)
> View(d3)

2018년 4월 21일 토요일

6N1 + 6P1 싱글 엔디드 진공관 앰프 조립

헤드폰 앰프를 제외하면 내가 소유한 세번째의 진공관 앰프이다. 주문제작한 전원트랜스가 어제 도착하는 바람에 조립이 늦어졌다. 엄밀히 말하자면 조립이라고 할 것도 없다. 나무판 위에 부품을 늘어놓고 배선을 한 것이 전부이기 때문이다. 번듯한 섀시에 꾸며 넣어야 조립이라고 할 수 있지 않을까.

토요일 오전, 많은 기대를 갖고서 작업을 진행하였다. 혹시 잘못 배선하여 불꽃이 튀지는 않을지 걱정하며 전원을 넣었다. 아무런 문제가 없었다. B+ 전압도 정상이고 진공관의 히터에도 불이 잘 들어왔다. 그러면 소스기를 연결할 차례이다.

어라? '두두두두...'하는 소리만 날뿐, 볼륨 폿을 아무리 올려도 음악이 들리지 않는다. 게다가 전원트랜스는 왜 이렇게 우는가. 이것은 트랜스 문제라고 치자. 다 만들어진 PCB에 배선만 했을 뿐인데 도대체 뭘 잘못했기에 이것밖에 안된단 말인가. 정말 오디오 자작은 내 실력으로는 안되는 일인가.

실망감을 가득 안은 상태로 아내와 함께 시내 나들이를 하였다. 중앙시장 원단·부자재 시장에서 필요한 물건을 사고 소나무집에서 오징어찌개 칼국수를 먹었다. 이 식당은 처음 방문이다. 별 다섯 개 만점에 네 개를 주겠다.


집에 돌아와서 다시 앰프를 들여다보았다. 전원 트랜스를 개조하여 출력 트랜스로 사용했다고 하여 이렇게까지 엉망일 수는 없는 노릇이다. 매우 단순한 오류가 아니었을까? 다시 배선을 살펴보니 입력 RCA 단자에서 그라운드쪽 선이 끊어진 것이 아닌가? 그러면 그렇지! 다시 튼튼하게 납땜을 마친 뒤 전원을 넣었다. 그러면 그렇지! 채널 당 3 W라는데 SPL 89 dB의 스피커를 아주 잘 울려준다. 소리도 만족스럽다.




못쓰는 PC용 파워 서플라이를 활용하여 전원 트랜스를 수납하고 원래 달려있던 파워 소켓과 전원 스위치를 활용하였다. 스피커 단자도 여기에 고정하였다. 전원 트랜스의 누설 자속을 차폐하는 효과가 있을 것으로 기대했는데 트랜스 자체의 떨림이 심하니 어떻게 해야 할지를 모르겠다. 배선 수준은 별로 아름답지 못하다.


CD 플레이어를 연결하여 음악을 듣다가 도중에 스피커 단자를 빼 보았다. 그러자 놀라운 일이 벌어졌다. 아주 작게 음악이 울려 나오는 것이 아닌가? 진공관이 울릴 것 같지는 않고, 그렇다면 출력 트랜스?

알리익스프레스에서 구입한 앰프 보드는 일단 만족스럽다. 일반 전원 트랜스(220V:9V)를 개조하여 출력 트랜스로 사용하는 실험 역시 성공적이었다. 문제는 전원 트랜스의 떨림이다. 이것은 트랜스를 바꾸는 것 말고는 해결 방법이 없는 것일까? 절반의 성공으로 만족할 수는 없다.

2018년 4월 20일 금요일

시공간 단축의 욕망

과도한 소비 문화는 현대 사회의 한 특징이다. 워낙 주변에 만연하여 있고 계속 퍼져나가기 때문에 마치 감염병과 유사하다. 이를 비판적으로 표현하는 신조어인 어플루엔자(affluenza = affluence + influenza)라는 말이 생길 정도니 말이다.

재활용 쓰레기 처리 문제로 전국이 한바탕 난리를 치렀다. 미봉책으로 겨우 땜질은 하였지만, 근본적인 대책이 필요하다. 쓰레기를 잘 분리하고 씻어서 재활용 업체가 제 값을 받고 팔 수 있게 만드는 것은 최선이 아니다. 일회용품의 배출 자체를 줄이려는 노력이 필요하다.

풍요롭지는 않았지만 그렇다고 해서 부족하지도 않았던 어린 시절을 돌이켜 보았다. 그때는 그 어느 누구도 물병을 들고 다니지 않았고, 커피잔을 들고 다니지 않았다. 여름에 길을 가다가 목이 마르면 노점에서 냉차를 사먹거나, 가게에서 유리병에 든 탄산음료를 마셨다. 거리를 돌아다니면서 무엇을 먹는 것은 흔한 일이 아니었다. 하지만 지금은 어떤가.

출처: 동아일보
이러한 산업 덕분에 많은 사람들이 생계를 유지한다지만, 넘쳐나는 쓰레기는 어떻게 하란 말인가. 이제는 설거지 일손을 줄이기 위해 매장에서 음료를 마시는 손님에게도 일회용 잔에 커피를 담아준다.

'되도록 이런 소비를 하지 말자'고 주장할 수는 있다. 기호성 음료수를 마시는 것은 선택의 문제니까 말이다.

오늘 아침, 오디오 DIY를 위한 부품을 택배로 받았다. 4월 2일에 주문한 것을 거의 3주나 걸려서 입수한 것이다. 제조사에서 평판이 별로 좋지 못한 택배회사에 물건을 맡긴 것도 이런 불편을 초래한 주요 원인이 되었다. 운송장 번호도 자동으로 알려오지 않았고, 언제 배달이 될 것이라는 연락도 없었다. 기다리다 못해 지역 사무실에 전화를 하여 물어보니 배송 기사 전화번호를 알려주었다. 하지만 기사는 하루 종일 전화를 받지 않았고, 사무실에서도 무슨 일인지 기사에게 연락이 안되니 다음날에는 꼭 배달이 되게 하겠다는 말만 전해 들었다.

배송 기사가 연락 두절 상태라니!

기대를 하지 않고 있었는데 다음날에 해당하는 오늘 아침, 결국 물건을 받았다. 익일 배달 원칙이라고는 하지만 그러고도 이틀이나 더 지나서 물건을 받게 된 것이다. 저녁이 다 된 지금 배송조회 사이트를 가 보았다. 아직도 배송완료로 전환되지 않았다.

지친 배송기사의 모습을 보면서 많은 생각을 하였다. 현대 사회는 대중이 원하는 제품이나 서비스를 만들고 우리는 이를 소비한다. 얼마 되지 않는 비용을 내고서 음식이나 물건이 금방 집앞으로 배달되는 것을 보면 한국의 물류산업의 수준이 대단하다는 착각이 들 정도이다. 그러나 배달할 물건이 열 배, 스무 배 많아진다고 해서 배송 기사들이 행복해질까? 더 많은 수익을 낼 수 있어서? 그렇지 않다는 것은 우리가 너무나 잘 알고 있다. 그렇다면 물류산업이 자동화와 뼈를 깎는 혁신을 통해서 영세성을 타파하고 수익을 올릴 수 있을까?

"이렇게 수요가 많은데 왜 수익을 못 내? 비용 절감하고 혁신하면 되잖아?"

이것은 너무나 소비자 위주의 관점이다. 이렇게 말하는 것과 무엇이 다른가?

"재활용 업자가 왜 쓰레기를 안 사갖고 가지? 다 돈이 되는데?"

게다가 너무나 많은 물건을 온라인으로 구입하게 되면서 엄청난 양의 포장 쓰레기가 발생한다. 과연 내가 택배 서비스 없이 취미생활을 할 수 있을까? 과거에는 없어도 상관이 없었고 있으면 고마왔던 서비스가 이제는 어떻게 되었나? 없으면 살기 어려울 지경으로 우리 생활 속에 깊숙이 파고 들고 말았다. 상황이 이러하니, '왜 일회용 컵에 음료를 마시는 걸까. 이건 선택할 수 있는 거잖아'라는 논리를 택배 서비스에도 들이댈 수 있다. '직접 가서 사면 되지, 왜 쓰레기(포장재)를 만드는 서비스를 이용한단 말인가?' 어느 것은 불가피하고 다른 어느 것은 선택할 수 있고... 그런 수준의 일이 아닌 것이다.

모든 것은 시공간 단축을 향한 인간의 욕망에서 온 것이라 생각한다. 더 많은 것을 갖고, 누리고 싶은 욕망이라고 보아도 좋다. 기다리지 않고도 만들어진 음식을 먹고 싶고, 시장에 직접 가지 않고도 물건을 사고 싶고, 제철이 아닌데도 신선한 과일을 먹고 싶고, 바닷가에 살지 않으면서도 해산물을 먹고 싶고, 가게가 문 열 시간을 기다리지 않고 새벽 세 시에도 물건을 사고 싶고... 기술과 산업이 이 욕망을 충족하고 돈을 벌게 해 준다. 그런데 그 부산물은 결코 긍정적이지 않다. 이를 뒷받침하는 저임금 노동자는 오늘 하루도 고단한 몸으로 온갖 손님을 상대하고, 길거리는 쓰레기로 넘쳐난다.

좀 더 나아질 방법은 없을까?

추가로 작성한 글

국내 물류산업이 영세하다는 뉴스를 하나 인용해 보자.

국내 물류산업 중소기업 비중 "99.9%" (카고뉴스 링크)
... 우리나라 물류산업의 가장 큰 문제점으로 기업 규모의 영세성을 들었다. 전체 물류산업에서 300인 미만의 중소기업이 차지하는 비중은 기업 수 기준 99.9%로 가장 높은데 평균 매출은 7,500만 원으로 대기업 5,310억 원에 비해 턱없이 낮은 수준이라는 설명이다.
이럴때 쓰는 말인지는 모르겠지만, 소위 '규모의 경제'를 위해서 영세한 업자는 전부 대기업에 자리를 내주어야 하는가? 농업이 그러했고, 동네 상점이 그러했다. 그러면 밀려난 사람들은 어떻게 하란 말인가?

유튜브 레드 가입

광고 없는 음악 재생을 위하여 나에게 작은 선물을 하였다. 그것은 바로 YouTube Red!


광고가 나오지 않음은 물론이요, 모바일 기기에서 음악을 재생할 때 화면이 꺼져도 계속 음악이 나온다. 이렇게 편할 수가 없다.

나는 거의 전적으로 유튜브에 등록된 음악을 감상하기만 하는 입장이다. 이러한 경우 저작권 혹은 저작인접권 문제는 어떻게 되는지는 잘 모르겠다. 만약 다른 사람이 만든 노래를 내가 연주하는 경우를 가정해 보자. 이때에는 준수할 것이 더 많아질 것이다.

  • 집에서 연주를 한다.
  • 공공 장소에서 연주를 한다.
  • 내가 연주한 동영상을 주변 사람에게 제한적으로 공유한다.
  • 내가 연주한 동영상을 유튜브에 올린다.
여기에서 사례를 든 4가지 행동이 전부 무제한적으로 허용되지는 않는다. 저작권이 아직 남아있는 경우와 클래식 음악처럼 저작권이 오래전에 만료된 것이 대부분이라서 약간 상황이 다를 것이다. 저작권 관련 사항을 찾아서 이 글에 정리할 정도로 지금 당장 여유가 있는 것은 아니라서 나중을 위한 숙제로 남겨놓겠다. 어찌되었든 남이 창작한 문화적 산물을 이용할 경우(특히 상업적 이용) 어떻게 해야 법률을 위반하는 것이 아닌지는 반드시 공부를 할 필요가 있다.

2018년 4월 16일 월요일

세월호 참사 4주년


오늘은 세월호 참사가 일어난지 꼭 4주년이 되는 날이다. 작년 3월 아들과 함께 진도 팽목항을 방문하여 찍은 사진을 찾아보았다. 수학여행을 간다면서 밤잠을 설치며 좋아하던 아이들은 차가운 물 속에서 영원히 돌아오지 못할 길을 떠나고 말았다. 아이들을 생각하면 지금도 눈물이 날 것만 같다. 사진 속에 남아있는 노란 깃발은 차가운 바닷바람과 햇볕에 의해 조금씩 해어져 가고 있었다. 시신만이라도 온전히 돌아오기를 바라던 가족들의 희망도 그처럼 사그라들었으리라. 그 이후로 우리 사회는 얼마나 달라졌을까. 정말로 안전하고 상식이 통하는 사회가 되었을까...

한 명의 천재가 수만 명을 먹여 살린다는 말이 있다. 나는 이 말이 너무 불편하다. 거대 기업의 CEO든, 작은 규모의 자영업을 하는 사람이든, 회사원이든, 어린 학생이든, 한 사람의 생명이 꺼진다는 것은 하나의 하늘이, 하나의 세계가 없어지는 것이다. 그 사람이 큰 조직에서 높은 위치에 있는 사람이라고 해서 사회적으로 큰 손실이라고 생각할 것이 아니다. 사람은 대체할 수 없는 존재이므로.

그렇게 306명의 '세계'가 사라졌다. 책임은 누가 져야 하는가. 푸른 지붕 집 높은 자리에 있던 '그 분'의 눈에 거슬리는 일을 하기 싫어서 사람들의 외침을 그렇게 막았던가.

6N1 + 6P1 SE(single-ended) 진공관 앰프 부품 도착

지난 금요일, 알리익스프레스에서 구입한 앰프 보드가 도착하였다. 진공관(6N1 하나, 6P1 두 개)에 선명하게 한자가 찍혀있다.



오디오파트에 주문한 전원 트랜스는 지난 토요일에 출고 예정이라고 하였다. 핵심 부품 하나가 없으니 주말에 한 일이라고는 나무판 위에 부품을 늘어놓고 입력부 연결 작업만 한 것이 전부이다. 나무판은 삼화문구몰에서 구입한 판화용 목판이다. PCB를 고정할 쪽에는 나사못이 삐져나오지 않도록 한 장을 잘라서 덧대었다. 나무판이 매우 부드러워서 가공하기에는 좋은데 영구적으로 사용할 재료는 못된다. 이보다 훨씬 튼튼한 코팅 합판이 집에 많이 있으나 톱질로 잘라내기가 싫어서 교재용 목판을 택한 것이다. 톱질 똑바로 하기, 전동 드릴로 구멍 수직으로 뚫기 등 기본적인 목공 실력이 좀처럼 늘지를 않아서 이런 편법을 사용하였다.



전원트랜스는 PC용 파워서플라이 케이스 안에 수납할 예정이다. AC 소켓과 전원 스위치가 이미 장착되어 있는데다가 금속판으로 만들어졌으므로 어느 정도의 차폐 효과가 있을 것으로 기대한다. 아울러서 스피커 단자도 여기에 고정할 생각이다.

나무판을 브레드보드(breadboard)로 사용하는 것은 매우 오래된 전통이다. 가끔 나무 도마를 쓰는 경우도 있다고 한다. 추측하건대 빵반죽판 위에 부품을 늘어놓고 프로토타이핑을 하던 옛날 관습에서 나온 용어는 아닐까? 앰프 회로는 어느 정도 정해진 것을 따르게 되지만, 이를 멋진 샤시에 조립하여 넣든 혹은 소박하게 나무판 위에 배열하든 이를 실제로 구현해 나가는 과정에서는 제작자가 창의력을 마음대로 발휘할 수 있다.

그림 출처: DIY 메카솔루션 오픈랩(링크)
다만 한가지 불편한 일이 있으니 바로 입출력 및 전원용 단자를 고정하는 일이다. 적당한 금속판이 있으면 이를 나무판 모서리에 수직으로 고정한 다음 구멍을 뚫어서 각종 입출력 단자를 꽂으면 된다. 아래의 사진이 바로 그러한 사례 중 하나가 되겠다. 2t 알루미늄판에 커터칼로 금을 그어서 잘라내느라 얼마나 고생을 했는지 모른다.



더욱 골치가 아픈 것은 AC 소켓처럼 큰 사각형 구멍이 필요한 부품이다. 전동 드릴로 테두리를 따라 구멍을 낸 뒤에 줄로 다듬는 것이 일반적인 방법이다. 지금 만드는 것은 고압을 취급하는 진공관 회로이니 감전에도 주의해야 한다.

강기동 박사님(별명 KDK)의 스타일을 참고하자.

출처: 한국진공관앰프자작동호회(일명 한진동, 링크)