2022년 10월 31일 월요일

'비식별 조치'라는 용어는 슬그머니 사라지고...

2016년도에 제정된 개인정보 비식별 조치 가이드라인(링크)은 당시 개인정보보호 법령의 틀 안에서 빅데이터가 안전하게 활용되는데 필요한 개인정보의 비식별 조치에 관한 내용을 담고 있었다. 그러나 '비식별(조치)'라는 것 자체가 법적 근거가 없었기에 많은 논란을 불러 일으켰다고 한다. 

[slownews] 대한민국 발명품 '가명정보' 그것이 문제로다

그러면 가이드라인만 문제인가? 그건 아니다. 위 글은 국가인권위원회를 통해 발간된 연구용역보고서인 유럽연합「개인정보보호 규정」(GDPR) 등 국제인권기준에 따른 개인정보 보호 법제도 개선방안 연구(2020)의 주요 내용을 실은 슬로우뉴스 웹사이트의 「개인정보, 무엇을 어떻게 보호할 것인가」 연속 기고문의 하나이다. 여기를 보면 데이터 3법의 주요 쟁점과 문제점에 대해서도 상세히 다루고 있다. 보고서의 작성 주체는 사단법인 정보인권연구소이므로 진보적인 시각에서 작성되었을 것임을 미리 예상할 수 있겠다. 정보인권연구소의 웹사이트 주소는 https://idr.jinbo.net/ 이다!

가장 중요한 법이라고 할 수 있는 개인정보 보호법의 문제점은 굳이 이 보고서를 들추지 않더라도 인터넷 여기저기에서 쉽게 나타난다. 예를 들어서 국내법은 개인정보와 개인식별정보를 거의 동일하게 취급함으로써 많은 혼선을 빚고 있다. GDPR에서도 두 정보를 동일하게 간주하는 것으로 추정되지만, 이를 기계적으로 나누는 것에 초점을 맞추기보다는 넓은 범주를 개인정보로 판단하고 이를 활용하기 위해 어떻게 가명정보화할 것인가에 주목하고 있다고 한다(STEPI Insight 제227호 2018.12.21. "유럽 개인정보보호법(GDPR)과 국내 데이터 제도 개선방안", 12쪽 참조).

서두에서 소개한 가이드라인의 개정판은 2022년 4월에 나왔는데, 제목이 「가명정보 처리 가이드라인(링크)으로 크게 바뀌었다. 137쪽에 이르는 이 자료에는 '비식별'이라는 낱말이 6쪽에 단 한 차례 나온다.

보호법 개정 및 시행(’20.8.5.)으로, 「개인정보 비식별조치 가이드라인」(’16)은 더 이상 현행법에 따른 가이드라인이 아니므로 활용하지 않음

가명정보 처리 가이드라인('22.4.29.) 6쪽의 개요. 가명정보는 pseudomymised data, 익명정보는 anonymised data에 해당한다.

 

개인정보 보호법 개념을 GDPR(EU 개인정보보호법에 해당; 링크; 국내 KISA의 GDPR 대응지원센터 링크)에서 빌려왔지만, GDPR은 정작 가명정보를 정의하지 않는다고 한다. 즉, 유럽에서는 가명정보라는 특정한 상태나 그 방법을 정의해 놓는 것이 아니고, 개인정보 침해 위험을 줄이기 위한 여러 방법 중 하나로서 가명처리를 간주한다는 것이다. 진지한 고민이 필요한 영역이라고 생각한다.

데이터 3법의 개정을 통해 가명정보는 정보주체의 동의 없이 사용하는 것을 원칙으로 하였다. 정보인권연구소의 보고서에서는 시민 사회의 주장을 근거로 정보주체의 동의 없는 개인정보의 목적 외 활용은 순수한 학술연구로 제한해야 한다고 하였다. 그러나 요즘 세상에 순수한 학술연구라는 것이 어디 있는가? 영리를 추구하는 기업을 '악'으로 쉽게 규정하는 것에 대해서 주의를 기울이 필요가 있다. 기업은 고용 창출과 세금 납부를 통해서 제 몫의 사회 기여를 한다. 물론 그 과정이 항상 순탄한 것은 아니고 상당한 수준의 줄다리기가 존재하지만...

그러한 맥락에서 핀란드 보건의료 데이터의 활용 제도('19년 5월 도입한  「의료 및 사회보장 데이터 2차 활용에 관한 법률」 은 많은 것을 시사한다. 한국보건산업진흥원에서 발간한 보건산업브리프(KHIDI Brief) vol. 324(링크)의 마지막 부분인 시사점을 들추어 보자. 정보 신청 및 제공 동의 과정은 국내와 핀란드에 큰 차이는 없으나, 정보 제공 의무에 대해서는 핀란드가 더욱 적극적인 태도를 보인다. 즉, 국내에서는 가명정보의 제공은 의무사항이 아니며, 개인정보처리자의 재량 범위에 있지만, 핀란드는 그렇지 않다는 것이다.

개인으로부터 비롯된 정보가 사기업의 '돈벌이'에 쓰인다고 하여 너무 색안경을 끼고 볼 일은 아니라는 것이 나의 기본적인 생각이다. 이는 도덕이나 윤리와는 다른 차원의 문제라고 본다.

2022년 10월 30일 일요일

인왕산 오르기

비록 정해진 기간 동안이지만 종로구에 살면서 주말이면 주변의 볼거리를 찾아 다니는 것이 큰 즐거움이다. 평일이라고 해서 예외는 아니다. 퇴근을 하면서 광화문 광장을 건널 때에는 가을을 맞아 매일같이 벌어지는 문화 행사를 볼 수 있고, 저녁을 먹은 뒤 아내와 함께 서촌 골목길 구석구석과 경복궁 옆 길을 걷기도 한다.

우리 부부가 머물고 있는 곳은 종로구(빨간색 점선) 내수동이다(별표).

금요일 오후에는 반차를 내고 남산(265.2m)을 올랐다. 원래는 돈까스나 먹으러 갈 요량으로 밀레니엄 힐튼 서울 근처로 향했는데, 배가 너무 불러서 운동 삼아 백범광장과 안중근의사기념관에서 산책을 시작했다가 결국 남산서울타워까지 걸어서 오르게 되었다.




연인용 벤치? 둘이 앉으면 저절로 밀착하게 된다.

버스 또는 케이블카를 타고 남산을 오른 적은 몇 번 있었지만 걸어서 오른 것은 처음이었다. 서울 시민으로 살던 시절에는 올 생각을 하지 못했고, 대전 시민으로 30년 가까이 살면서 이제 서울을 재발견하고 있다. 

내수동에 살면서 인왕산(338m)을 오르지 않을 수 없다. 바로 전날 남산을 올랐던 즐거움이 가시기 전에 가을빛으로 한껏 물든 인왕산을 가기로 하였다. 어느 코스를 택하든지 3시간 이내에 모든 일정을 끝낼 수 있으며 초행길이라 해서 길을 잃을 염려도 없으니 부담이 없었다. 아내와 나는 간식과 물을 챙겨서 토요일 오전 10시쯤 내수동을 나섰다. 누상동 윤동주 하숙집 터를 조금 지나쳐서 조금만 더 가면 나오는 수성동 계곡을 출발점으로 삼았다.

누군가 석굴암 방향으로 가면 산 정상으로 가지 못한다는 친절한 설명을 써 놓았다. 


사람 헷갈리게 만드는 갈림길. 여기서 한참을 고민했다.

인왕산 정상을 목표로 하는 사람도 있고 둘레길이나 자락길을 따라 산책하려는 사람도 있을 것이다. 우리처럼 인왕산의 서쪽에서 산행을 시작하여 정상까지 오르려는 사람은 석굴암으로 길을 잘못 접어들지 않도록 조심해야 한다. 석굴암은 정상에 가까운 곳에 위치하고 있으나, 정작 여기에서 정상까지 가는 길은 없기 때문이다. 그러나 석굴암으로 가는 길이 매우 아름답고 서울 시내를 조망하기도 좋다고 하니 다음 기회에 방문해 보려고 한다. 이러한 것을 미리 겪었던 사람이 수성동 계곡의 안내도에 주의사항을 적어 놓았던 모양이다.

<인왕산 둘레길> <인왕산 자락길('인왕산로' 차도를 따라 걷는 길)> <진경산수화길> 등 정감 있는 길 이름을 붙이는 것도 좋지만, 각각의 길이 어떻게 이어지는지 개념을 잡지 않으면 길을 잘못 들 가능성이 높다. 잘 정비된 길, 안내도, 표지판 등 종로구에서 탐방객을 위해 많은 노력을 한 흔적이 보이지만 첫 방문자에게 혼동을 유발하지 않기 위하여 효율적으로 정보를 전달하는 방법을 좀 더 고민해야 될 것 같다. 결국은 여기에서 50년 넘게 살았다는 산책 나온 주민에게 물어서 인왕산 정상으로 가장 빨리 가는 길을 알게 되었다.

길을 찾기 위해 애를 쓰면서 문제 해결 방식이 남녀가 근본적으로 다름을 다시금 느꼈다. 길을 몰라서 곤란을 겪을 때, 남자는 지도나 앱 등을 이용해서 혼자 길을 찾고자 노력한다. 그러나 여자는 지나는 사람에게 물어보려고 한다. 이 상황은 남자에게 많은 불편한 감정을 들게 한다. 그래서 때로는 길을 묻는 여자에게 짜증을 내기도 한다. '내가 알아서 해결하려고 애를 쓰는데 왜 지나는 사람에게 길을 묻느냐'고... 물론 여자도 남자에게 답답함을 느끼기는 마찬가지일 것이다. 남자는 문제를 해결하기 위하여 정보와 연장을 들고 '동굴'에 들어가려고 하는 것이다. 그만큼 남자와 여자는 다르다. 그것이 염색체에 새겨져 있는 차이인지 혹은 학습을 통한 차이인지는 알기 어렵다. 어쨌든 남녀 사이에는 그러한 차이가 있음을 인정하고 불필요한 갈등을 키우지 않는 것이 현명하다.

수성동 계곡에서 인왕산 자락길까지 간 뒤 길을 건넜다. 오로지 석굴암쪽으로 가면 안된다는 생각을 갖고서 그와는 다른 편(만수천 약수터)으로 향했다. 이 길을 따라서 가면 한양도성 성곽을 만나게 될 것이고, 거기서부터 능선을 따라 가면 곧장 정상으로 향할 것 같았다.

이 갈림길에서 한양도성 성곽을 만나게 된다.

잠시 쉬면서 북악산(342.5m)를 바라본다. 청와대, 경복고, 경기상고가 보인다.

저 뒤에 보이는 것이 기차바위라는 것인가...





드디어 정상! 아내는 힘들어...

인왕산에서 제일 높은 바위는 아내의 차지!

하산은 성곽을 따라 북쪽 방향으로 내려가서 창의문까지 가는 코스를 택했다.

한양도성 연리지(連理枝) '부부소나무'. 내가 보기에는 영 '19금 소나무'인데... 


산행 코스를 인왕산 안내도 위에 화살표로 표시해 보았다. 아래 그림에서 왼쪽이 남쪽에 해당한다. 만약 사직단->황학정 쪽을 기점으로 삼았더라면 한참 동안 차도를 따라 걷느라 주변 경치를 보는 재미가 적었을 것이다. 그래도 삼거리에 있다는 호랑이 상을 볼 수는 있었을 것이다. 처음부터 성곽을 따라 걷는 경로였다면 또 어떠한 재미가 있었을까? 산 하나의 등산로를 놓고 수많은 변주곡을 쓸 수 있을 것이다. 서울에 1년 동안 사는 것을 선물로 여기고 기회가 되는 대로 자주 돌아다니고 즐겨야 되겠다는 다짐을 해 본다.



2022년 10월 25일 화요일

2022년 가을을 보내는 방법

퇴근 후에 DDP에서 피아노를 치거나...


고궁을 거닐고...





오래 된 식당 근처를 지나고...




멋진 담벼락 곁을 걸으며...


노무현 시민센터에서 책을 읽는다.





집에 돌아오는 밤길도 아름답다.




2022년 10월 23일 일요일

센터탭이 없는 전원 트랜스포머를 전파 정류관에 연결하려면

진공관 앰프에 대한 입문한지 얼마 되지 않은 관계로 전통적인 기법을 체계적으로 경험해 보지 못하였다. 예를 들자면 정류관을 쓰는 문제가 그러하다. 나는 전적으로 다이오드에 의한 정류회로를 사용해 왔고, 심지어 SMPS를 만들어서 HT와 히터 전원 공급에 쓰기도 하였으니까 말이다.

간단하게 만들어서 갖고 놀(?) 물건을 알리익스프프레스에서 찾아보다가 정류관과 초크 코일을 포함한 정류회로까지 하나의 PCB에 들어 있는 6AU4(6J4) + 6AQ5 싱글 엔드 보드를 발견하였다. 모든 진공관을 포함하고도 53,445원이라니... 판매자 상점은 Amplifier and Transformer- Store(링크)이다.

6AU6(6J4)+ 6AQ5 싱글 엔드 클래스 A 스테레오 앰프 완성 보드, 5Z2P 튜브 정류기, 전력: 3W + 3W(알리익스프레스 링크)

6AQ5는 그 유명한 6V6의 미니어처 버전이다. 따라서 이 보드의 출력관 소켓을 적당히 개조하면 6V6을 꽂을 수도 있을 것이다. 6AQ5와 6V6을 바꾸어 꽂을 수 있는 소켓 어댑터도 존재한다. 중국제 저가 진공관 앰프에 대하여 불신도 많이 있지만, 출력 트랜스포머를 R코어에 직접 감고 이따금 튜닝 차원에서 일부 부품을 교체한다면, 내 경험을 폭을 넓히면서도 즐거움을 배가할 수 있을 것이라는 생각이 든다. 6V6은 아직 한 번도 만들어 본 일이 없다. 2019년 여름 세운부품도서관에서 류재용 장인의 6V6GT(실제로는 구 소련 또는 러시아 제조관)의 푸시풀 앰프가 내는 소리를 잠깐 들어 본 것이 전부였다. 출력은 그다지 높지 않지만 워낙 잘 알려진 관이라서 언젠가는 꼭 만들어 보겠다는 생각을 갖고 있었다. 내가 경험해 본 출력관은 PCL86, 6P1, 43(이상 오디오 전용관), 6J6, 6LQ8(이상 고주파 회로용 진공관)이 전부이다. 누구나 다 한 번은 거쳐간다는 유명한 오디오 전용관에 대한 경험이 전무한 셈이다.

류재용 장인의 6V6GT 푸시풀 앰프. 사진 출처: 내 블로그 '도시재생의 희망과 한계 - 다시 세운상가에서'(링크)

구입을 고려하고 있는 이 싱글 앰프 보드는 전파 정류관이 포함되어 있으니 센터탭이 달린 파워 트랜스포머가 필요할 것으로 생각했다. 그런데 판매자가 제시한 회로도를 보니 그렇지 않았다. 센터탭 없이 0-295V 150mA 파워 트랜스포머를 쓰도록 하였다. 트랜스포머 2차 양단에 다이오드를 서로 반대 극성으로 연결한 뒤 그 중간 지점을 센터탭처럼 쓰고 있는 것이었다. 


이런 방식의 회로가 센터탭이 달린 고전적인 파워 트랜스포머를 쓰는 것과 완전히 동등한지는 잘 모르겠다. The Valve Wizard 웹사이트의 Rectifiers 항목에서는 이러한 방식을 hybrid bridge rectifier라고 하였다. Fluxion Audio Technology의 Young Ahn(안세영)님께서도 유튜브에 이에 대한 동영상('Hybrid bridge rectifier design for tube amplifiers, 2 silicon diodes and 1 twin rectifier tube')을 소개하였다. 안 선생님의 표현을 빌리자면 'No center tab required and works great'라고 하였다.


이러한 정류 방식은 파워 트랜스포머를 제조하는 입장에서도 매우 편리할 것이다. 오늘 소개한 앰프 보드의 판매자는 이것에 맞는 85W급 트랜스포머(링크)를 판매한다. 당연히 센터탭은 없다. 

  • 전체 외관 크기: 80*72*68mm 
  • 2 차 고전압 출력 255V / 275V / 295V 0.15A 센터탭은 없음
  • 2차 필라멘트 전압 6.3V 2A, 3.15V-0 -3. 15V 1A, 0-5V-6.3V 3A 그룹
  • 무게: 1.7kg
그림 출처: 알리익스프레스(링크)


놀고 있는 출력 트랜스포머용 R코어 한 조가 계속 나를 '푸시'한다. 그 압력이 새로운 권선기의 기본 틀을 만들도록 하였고(내 블로그의 권선기 관련 글 링크), 급기야 앰프를 하나 더 만들게 될 것 같다. 아마 이번 프로젝트가 성공적으로 끝난다 하더라도 뭔가 잔여물이 생길 것이고, 그것은 또 후속 행위를 하라고 나를 푸시하게 될 것이다.

이렇게 궁리만 한참 하다가 결국은 아무것도 하지 않고 지나갈 가능성이 없지는 않다...


2022년 10월 18일 화요일

올해 국회를 통해서 발의된 디지털 헬스케어 육성 또는 진흥과 관련한 법률안 두 가지, 아니 세 가지?

  • 의안번호 제2114722호(2022년 2월 10일) 디지털헬스케어산업의 육성 및 지원에 관한 법률안(1)
  • 의안번호 제2117751호(2022년 10월 7일) 디지털헬스케어 진흥 및 보건의료데이터 활용 촉진에 관한 법률안(2)
이것이 전부는 아니다. 의안번호 제2117096호(2022년 8월 31일)로는 스마트헬스케어기술육성 및 지원에 관한 법률안(3)이 있다. 법률안 제목 뒤의 숫자는 내가 임의로 붙인 것이다. 대한민국국회의 의안정보시스템이 이런 정보를 찾고자 할 때 도움이 된다. 국회가 아닌 정부의 입법현황은 법제처의 국민참여입법센터에 나온다. 아, 친절하게도 국민참여입법센터 웹사이트의 정부 입법현황 탭 바로 곁에 국회입법현황도 있다. 




의안정보시스템에 등록된 의견을 클릭해 보면 세 법안 전부 '반대'로 도배가 된 상태이다. 나는 이를 안타깝게 여긴다. 자세히 보려면 여기(법률안 2번)를 클릭한 뒤 맨 아래로 내려가서 '입법예고 등록의견'을 클릭해 보라. 반대, 반대, 절대 반대... 전체주의, 디지털 의료 독재, 디지털 공산화 등 우려의 목소리가 높다.

디지털헬스케어스마트헬스케어는 정말 다른가? 그렇게 보기는 어렵다. 법률안 원문을 통해서 각자 용어를 어떻게 정의했는지 찾아 보았다. 

(1) "디지털헬스케어"란 디지털 기술을 활용하여 개인의 건강과 관련된 정보를 수집ㆍ분석하고 맞춤형 건강관리 서비스를 제공하는 것을 말한다. "디지털헬스케어산업"이란 디지털 헬스케어를 위한 기기ㆍ소프트웨어ㆍ시스템ㆍ플랫폼의 연구개발, 생산 및 유통과 관련된 산업을 말한다....(산업부)

(2) “디지털 헬스케어”란 「지능정보화 기본법」 제2조제4호에 따른 지능정보기술(이하 “지능정보기술”이라 한다)과 보건의료데이터를 활용하여 질병의 예방ㆍ진단ㆍ치료, 건강관리, 연구개발 및 사후관리 등 국민의 건강증진에 기여하는 일련의 활동과 수단을 말한다....(복지부)

(3) "스마트헬스케어기술"이란 인공지능, 빅데이터, 사물인터넷 등 디지털 기술을 활용하여 개인의 건간 및 질병과 관련된 정보를 수집ㆍ분석ㆍ관리하고 맞춤형 의료서비스 및 건강관리서비스를 제공하는 기술을 말한다....(과기부)

이렇게 별도로 법안이 발의되는 이유는 '성과주의' 또는 '실적주의'가 일상의 모든 면에 스며든 것과도 무관하지 않고(법안을 제출하는 것이 국회의원의 실적이니...), 법률을 통해 존재감을 부각(보장?)하려는 소관 부처의 의욕과도 관련이 있을 것이다. 맨 위로부터 순서대로 산업부-복지부-과기부가 소관 부처임을 법률안에서 명시하였다. 시기적으로는 복지부와 관련한 법안이 가장 늦게 나왔다.

10월에 발의된 법률안에 이어서 나온 뉴스를 보자. 클릭을 하여 보면 어떤 분위기인지 파악하는데 도움이 될 것이다.

[한국경제 2022년 10월 9일] 복지부 - 산업부, 디지털 헬스케어 밥그릇 싸움

(1)번 법률안이 나온 후 신수용 카카오헬스케어 연구소장이 블로그에 올린 일갈을 소개한다. 클릭하려는 사람은 약간 마음을 가다듬고 보시길 바란다. (2)번 법률안에 대해서는 어떤 의견을 갖고 계신지 매우 궁금하다.

디지털 헬스 진흥...?

세 법안 중 어느 것으로 최종 결정될지 아무도 모른다. 의원입법 발의 후 가결, 부결, 폐기 등 몇 가지 운명의 하나를 맞을 것이다. 2020년 8월 3일에 집계한 제21대 국회 의원입법 발의 및 처리 현황을 보면 2,376개의 법안이 발의되어 가결 1건, 철회 12건, 계류 2,363건으로 나타났다. 법이 너무 많이 만들어지는 것은 나만의 의견이 아니다(20대 국회서 제안된 법률안만 2만1384건).

국회에서 법률안이 통과가 되어도, 시민단체 및 이해당사자 집단의 결사 반대에 부딪칠 가능성도 매우 높다. 나는 규제를 완화하여 보건의료 데이터를 적극적으로 활용하게 만드는 것이 낫다고 주장하는 편에 서겠다. 핀란드의 사례처럼 말이다. (1)번 법안은 '의료'와 관련된 영역을 슬며시 비켜가고 있는데, 이는 옳지 않다고 본다. 의료와 관련된 매우 강력한 이해 집단(강력한 전문가 집단이기도 함) 및 관련 법의 테두리를 벗어나기 위한 고민의 결과였겠지만... 가장 나중에 나온 (2)번 법안이 내용적으로는 가장 포괄적이고, 보건의료 데이터의 안전한 활용과 관련한 기존 법제도의 모호함을 잘 재정비했다는 느낌이 든다. 여기서 말하는 안전한 활용이란 모르는 사이에 내 정보를 빼내어 악용하는 것을 막는 것만을 뜻하는 것이 아니라, 건강과 관련한 다른 사람의 정보를 잘못 다루었다가 복잡하고 모호한 규정을 준수하지 못하여 범법자가 되는 위험을 줄이는 것을 전부 포함한다.

참고로 국내법에서 의료행위란 과연 무엇인지를 정의하지 않았다는 것은 의외로 잘 알려져 있지 않다(링크). 다만 무엇이 의료행위인지를 판단할 때 참고가 될 판례(관련 글)가 있을 뿐이다. 보건복지부에서는 2019년 5월 20일 보도자료를 통해 의료행위와 건강관리서비스의 구분 기준을 마련했다고 발표한 일이 있다.

복지부 법안에서 보건의료 데이터의 활용 측면을 다룬 것을 더욱 심한 규제라고 생각하는 사람은 많지 않을 것이다. 단, 이 분야의 규제샌드박스를 신설할 것이 아니라, 다소 시간이 걸리더라도 특례가 아닌 진정한 규제 개선을 통하여 기업 활동을 활발히 하도록 지원하는 것이 낫다는 생각이 들었다. 

마지막으로 지적하자면 각 법안 공통으로 무슨 위원회나 센터, 또는 협회의 설립 근거를 넣어 놓았다. 내가 다 파악하지는 못했지만 이미 설립되어 운영 중인 기관의 설립 근거가 뒤늦게(?) 또는 슬며시(?) 들어간 것도 있었다. 이에 대해서는 논평을 자제하겠다.

2022년 10월 17일 월요일

서스테인 페달을 구입하다


 

쿠팡에서 생필품을 물론이거니와 취미에 필요한 온갖 물품을 다 구입할 수 있어서 얼마나 편리한지 모르겠다. 이번에 산 것은 WIDEN이라는 중국 브랜드의 서스테인 페달이다. 극성 전환용 스위치가 있어서 건반의 제조사를 가리지 않는다고 한다. 판매자에 따라서는 미끄럼 방지용 패드를 넣어서 팔기도 하는 모양이다. 자연스러운 연주에 아주 조금 더 다가가게 되었으니 필요한 것은 연습!

서스테인은 단지 note on 신호를 길게 지속하는 것이었나?

서스테인 페달을 연결하고 짤막하여 연주를 하면서 LMMS에 녹음을 해 보았다. Piano roll 화면을 보니 음표가 매우 길게 지속되는 것으로 기록이 되었다. 그렇다면 페달에서 발을 떼는 순간 note off가 신호를 발생하는 것으로 보면 될 것이다. 문제는 이렇게 기록을 해 놓으면 악눈으로 알아보기가 매우 힘들다는 것이다.

Half damper를 가상악기에 적용하게 되면, 서스테인 = '지속적인 note on'과는 약간 거리가 먼 상황이 될 것이다. 이렇게 깊숙한 곳까지 신경을 쓸 필요는 별로 없겠지만... 실제로 MIDI keyboard controller에 연결한 서스테인 페달을 사용해 보니 그 효과가 다소 과하다는 생각이 들기도 한다. 

2022년 10월 16일 일요일

우분투 22.04에서 Qsynth-QjackCtl을 쓰기가 더욱 편리해졌다(USB 건반 연결)

우분투가 설치된 컴퓨터에 USB MIDI keyboard controller를 연결한 다음 FluidSynth를 연주하려면 몇 가지 사전 작업이 필요했었다. 예를 들어 명령행 환경이라면 FluidSynth를 실행한 다음 aconnect 명령으로 건반과 FluidSynth를 연결해 주어야 한다(다음의 명령어 사례). 컴퓨터에 연결된 MIDI 기기의 연결을 위해 입출력 포트 번호를 확인하려면 'aplaymidi -l' 또는 'aconnect [-i|-o]' 명령을 사용한다.

$ fluidsynth --server --audio-driver=alsa /usr/share/sounds/sf2/FluidR3_GM.sf2
$ aplaymidi -l
  Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 24:0    iCON iKeyboard 5 Nano V1.06      iCON iKeyboard 5 Nano V1.06 MID
128:0    FLUID Synth (5439)               Synth input port (5439:0)
$ aconnect -i
client 0: 'System' [type=커널]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=커널]
    0 'Midi Through Port-0'
client 24: 'iCON iKeyboard 5 Nano V1.06' [type=커널,card=2]
    0 'iCON iKeyboard 5 Nano V1.06 MID'
$ aconnect -o
client 14: 'Midi Through' [type=커널]
    0 'Midi Through Port-0'
client 24: 'iCON iKeyboard 5 Nano V1.06' [type=커널,card=2]
    0 'iCON iKeyboard 5 Nano V1.06 MID'
client 128: 'FLUID Synth (5439)' [type=사용자,pid=5439]
    0 'Synth input port (5439:0)'
$ aconnect 24:0 128:0  # 각 포트에 속한 디바이스가 하나뿐이므로 ':0'는 없어도 된다.

JACK을 쓰는 경우라면 QjackCtl에서 창을 열고 직접 연결을 해야만 했다. 그러나 사전 설정 과정에서 'a2jmidid -e' 명령어가 구동하도록 만들어야 했던 것으로 기억한다.

이러한 불편함이 우분투 22.04 LTS(Jammy Jellyfish) 에서는 많이 사라진 것 같다. Qsynth(v0.9.6, Qt GUI interface for FluidSynth)를 실행한 다음 건반을 두드려 보았다. 사운드폰트 파일이 제대로 로드되었는지만 확인하고 다른 작업은 아무것도 하지 않았으므로 오디오 드라이버는 ALSA로 맞추어진 상태이다. 그런데 소리가 단박에 잘 난다! 지금까지 이렇게 손쉽게 건반 입력을 통한 Fluidsynth 소리를 낸 적은 없었으므로 너무나 이상하다는 생각마저 들었다. QjackCtl(v0.9.6)을 실행하여 '그래프' 창을 클릭하여 연결 상태를 확인해 보자. JACK은 당연히 중지된 상태이다.

이번에는 Qsynth의  'Setup'을 클릭하여 연 다음 'Audio' 탭에서 오디오 드라이버를 jack으로 바꾸어 보자. 새로 바뀐 설정은 FluidSynth 엔진을 재시작해야 적용되므로 엔진을 지금 재시작하겠느냐고 묻는다. 'Yes'를 클릭한다.

QjakcCtl 메인창으로 돌아와서 '시작'을 클릭하면 연결 그래프의 상태는 다음과 같이 바뀐다. 나중에 언급하겠지만 QjackCtl에서 '시작'을 클릭했는지의 여부와 관계없이 FluidSynth 엔진을 재시작할 때 이미 JACK이 기동되기 시작한다. JACK에서 오디오 인터페이스 지정 등 기본 설정은 해 놓은 상태이다. JACK 설정 자체는 절대로 자동으로 이루어지는 일은 없다. 왜냐하면 오디오 인터페이스와 샘플링 레이트 등 컴퓨터가 알아서 결정할 수 없는 사항이 있기 때문이다.

ALSA 드라이버를 쓸 때와 비교하면 약간 더 복잡한 모습의 그래프가 되었다.

QjackCtl은 바로 직전에 사용했던 설정 상태를 기억하고 있음을 유의하자. 정확히 표현하자면 설정 파일($HOME/.config/rncbc.org/QjackCtl.conf)에 내용을 기록해 두었다가 다음번 실행할 때 이를 읽어들어서 적용하는 것이다.

Qsynth가 JACK을 오디오 드라이버로 사용하도록 설정이 맞추어진 상태라면, Qsynth를 실행할 때 알아서 JACK을 띄운다. 사용자가 jackd 명령어를 직접 실행하지 않았으나, Qsynth를 실행하면 자동적으로 다음과 같은 상황이 된다.

$ ps aux | grep jack
hyjeong    10466  2.3  0.1 291596 136060 ?       SLsl 10:14   0:00 /usr/bin/jackd -T -ndefault -dalsa -dhw:CODEC -r44100

따라서 우분투에 건반을 연결하여 연주하려면 Qsynth를 실행하는 것으로 드라이버 구동 및 기기 연결 작업이 이루어지는 것이다. JACK 설정이 제대로 되어 있다는 가정 하에서 말이다. 우분투 20.04 LTS(Focal Fossa)에서는 이렇게 간단하지는 않았었다. LTS가 아닌 21.04에서는 확인을 해 보지 않았기에 상황이 어떠한지는 잘 모르겠다.

이렇게 쉽게 되는 것을 보니 지난 2년 동안의 삽질은 도대체 무슨 의미가 있었는지 허탈해진다(삽질 기록 1, 기록 2). 아니, 어쩌면 그런 경험이 있었기에 이번의 작업이 이렇게 쉽게 느껴지는 것일지도 모른다.

2022년 10월 17일 업데이트

컴팩 CQ61 노트북 컴퓨터에 우분투 22.04를 설치한 다음 추가 패키지로서 qjackctl, qsynth 및 audacity를 설치한 다음 위에서 기술한 사항을 그대로 따라서 해 보았다. 역시 아무런 문제 없이 그대로 재현이 되었다. 

 


2022년 10월 14일 금요일

다시 리눅스에서 JACK audio connection kit를 만지작거리며...

약 2년이 넘도록 리눅스에서 음악 작업을 하기 위해 JACK을 공부해 보았으나 너무나 어렵게 느껴졌다. 그래서 JACK을 전혀 쓰지 않고 오로지 ALSA driver 수준에서 작동하는(PulseAudio가 몰래 개입하고 있겠지만) LMMS에 흥미를 느끼고 열심히 활용 연습을 해 왔다. 

최근 MIDI keyboard controller를 연결하여 레코딩을 하는 과정에서 LMMS가 일부 MIDI 신호(pitch wheel, sustain pedal 등)을 기록하지 못하는 것을 발견하였다. 피아노 음색의 실시간 연주 및 기록을 즐기는 나로서는 여간 불편한 것이 아니었다. Ardour도 마찬가지인 것 같았다.

내 기억으로 리눅스에서 이러한 MIDI 신호를 완벽하게 기록하는 DAW는 Rosegarden과 Tracktion Waveform(Free 버전) 정도가 있다. 그런데 두 프로그램은 모두 JACK이 있어야 한다. 아니면 Windows + ASIO4ALL에서 Cakewalk이나 Waveform를 써야 한다. 불행하게도 내 노트북 컴퓨터(ThinkPad E14 E3)은 USB MIDI keyboard controller를 직접 인식하지 못하는 관계로 USB MIDI interface를 중간에 경유해야 한다. 게다가 건반에는 별도의 전원을 연결해야 된다. 이것 또한 매우 성가시다.

그냥 리눅스를 쓰되 LMMS 말고 Waveform으로 전환해 볼까? JACK이라는 산을 넘어야 하는데, 이번에는 잘 될지 알 수가 없다.

QjackCtl을 이용하여 JACK 서버를 켠 뒤, Waveform을 작동하였다. 내장 악기인 4OSC으로 소리를 내 보았다. 사운드폰트는 어떻게 작동시키나? Windows에서는 Sforzando를 쓰면 된다. Fluidsynth(qsynth)로는 어떻게 안될까? Rosegarden처럼? 그것은 곤란하다고 한다. 왜냐하면 Fluidsynth는 plugin으로 작동하지 않기 때문이라고 한다.

JACK 설정은 여전히 어렵다. hw:CODEC은 USB audio interface(Behringer UCA 200)이다. hw:CODEC,0은 뭔가? 나도 모른다. '고급'탭을 클릭하면 '무엇을 하고 있는지 모르는 경우 이 설정을 만지지 마십시오'라는 경고문이 나온다.


리눅스에서 Waveform Free로 데모곡을 재생하는 모습. JACK을 사용하였다.

방법을 찾다보니 Carla라는 것이 있어서 이를 적용해 보았다. 오, 된다... 사운드폰트를 Waveform에서 로드할 수 있게 되었다.

Windows에서 Waveform Free의 기능을 조금 익혔던 기억을 더듬어서 녹음을 시도해 보았다. Track 1에는 마이크를 통한 음성 신호를 입력하였고, track 2에서는 MIDI 건반 입력 신호(사운드 폰트 파일을 로드한 Carla rack plugin)를 기록하였다. 아래의 화면 캡쳐 이미지는 track 3에서 track 2의 오디오 신호를 녹음하는 모습이

 

돌고 돌아서 다시 JACK이라니. 인생은 재발견의 연속이다. 돌고 돌아 제자리로 돌아왔다고는 하나, 처음 그 자리에 있었을 때보다는 분명히 무엇인가 달라진 상태일 것이다. 나는 그것을 발전이라고 부르겠다.