음악 감상 환경 = Ruark r4 mk3 + raspberry pi 3 + raspbian

지금의 음악 감상 환경은 제목과 같다.

Ruark r4 mk3: 이 녀석은 이른바 올인원 오디오이다. 네트워크 플레이어는 아니지만 웬만한 입력은 다 받을 수 있고, CD 트레이가 있으며 좋은 디자인을 가지고 있는 것이 특징이다. 아무리 디지털 환경으로 변화된다고 해도, 아직까지는 물리적으로 CD를 넣어서 음악을 들어야 하는 일도 꽤 있기 때문데 (특히 아이들의 공부를 위해서) 좋은 CD 트레이가 있다는 것이 가장 큰 장점.

라즈베리파이 3: 사실 이건 큰 아들을 위해 산 물건이다. 이걸로 Scratch를 공부할 수 있는 환경을 만들어주고 아이가 직접 관리 운영하면서 사용하기를 바라는 마음으로 구매를 했고, 며칠 정도는 유지가 되었지만 그 이후로는 사실 시들해지면서 용도가 애매해져 버렸다. 그러다가 루악 오디오를 들여놓고 나서 이 물건을 다시 살릴 계획을 세우게 되었다.

Raspbian: 학위과정부터 시작해서 온갖 리눅스를 다 섭렵해온 나지만, 최근에는 회사에서 CentOS 머신 두 대를 사용하는 것을 제외하면 리눅스를 사용하고 있지는 않다. 그래도 슬랙웨어부터 시작해서 젠투 (이틀 동안 컴파일을 했던 기억…) 그리고 데비안과 우분투 정도까지는 업데이트가 되어 있고 특히 데비안은 오랫 동안 가장 만족하면서 써 왔던 터라 라즈베리파이에도 당연히 raspbian을 설치했다. 그러다가 음악과 관련해서는 여러 인터넷 글을 통해 volumio, runeaudio, moOde, pimusicbox 같은 다양한 종류의 선택이 있다는 것을 알게 되었다. 그래서 하루 정도 이 선택지들을 시험해 보았다.

우선 volumio는 최근에 많은 사람들이 사용하고 있는 것 같고 화면이 가장 세련되어 보였다. 설치 방법이야 어려울 것이 없는데, 초기 화면에서 다음 화면으로 넘어 가지를 않아서 초기 설정을 아예 할 수가 없었다. 시간이 많으면 해결 방법을 좀 찾아보겠는데, 이제는 이런거 찾아보는 시간이 좀 아깝게 느껴지는 터라 그냥 포기했다.

runeaudio 역시 많은 사람들이 추천도 하고 사용하고 있는 것 같은데, 파일이 sourceforge에서 관리되고 있고, 가장 최근 활동이 3년 정도 된 것으로 되어 있어서 좀 꺼려지는 마음이었다. 그래서 아예 시험해보지도 않고 그냥 패스.

moOde는 쓰여있는대로 제대로 동작을 하기만 한다면 가장 풍부한 기능을 가진 것으로 보인다. 아마도 유료화를 했다가 어려움을 당하고 다시 무료로 돌아선 역사가 있는 듯 하고. 설정을 자체 UI에서 하도록 하고 있는데, 내 경우에는 무선랜 설정이 뭔가 잘 안되는 듯 하여 AP 모드에서만 잘 작동을 하고 WiFi로는 작동이 안되어서 포기했다. 나중에 뭔가 깔끔한 화면을 원하는 순간이 생기면 다시 시도해 볼 듯 하다.

pimusicbox는 mopidy라는 프로그램을 이용해 만들어진 것이고 아마도 라즈비안 위에 이 프로그램을 얹어서 여러 기능을 하도록 한 것 같다. 설치와 구동에 어려움은 없었는데, mopidy를 사용해서인지 몰라도 버그가 있고 (스포티파이 앱에서 다른 곡을 재생해도 이전 플레이하던 곡을 처음부터 다시 재생한다. 이 때는 디바이스를 변경한 후에 다시 연결을 해 주어야 다른 곡 재생이 가능하다), 웹 인터페이스들이 뭔가 옛스러운 아니 촌스러운 느낌이 있어서 잘 쓰게 될 것 같지 않았다.

결국 돌아 돌아 보았지만 구관이 명관이라고 그냥 라즈비안에 정착하기로 결정했다. 그리고는 내가 해야 하는 일을 잘 정리해 놓은 글을 발견했다. 간단하게 말하면
https://github.com/nicokaiser/rpi-audio-receiver 설치 후에 제공되는 쉘 스크립트를 이용해서 블루투스 수신, 에어플레이 서버, 그리고 UPnP 기능을 설치하는 것이다. 여기서 제공하는 스포티파이 connect는 PiMusicbox에서와 동일한 버그가 있으므로 쓰지 않았다. 대신에 Raspotify라는 것을 설치하면 문제없이 spotify connect가 작동한다.

이로서 작은 라즈베리파이가 루악 r4를 에어플레이, spotify connect 그리고 UPnP를 지원하는 네트워크 플레이어로 변신시켜 주었다.

찬송가는 예배에 적합한 음악인가?

"찬송가는 예배에 적합한 음악인가?"라는 질문은 "한국 찬송가는 실패했다"는 한 목사님의 말씀에서부터 시작된 것이었다. 감정의 흐름이 없이 지루하게 반복되는 가사 때문에 젊은이들이 예배에 집중하는데 방해가 된다는 것이 그 중요한 요지였던 것으로 기억한다. (그러나 지금도 내가 섬기는 교회에서는 주일오전 예배 시간에 찬송가를 모두 네 번 부른다. 아마 젊은이들이 많은 교회에서는 주일오전예배에도 찬송가를 부르는 일이 별로 없을 것이다.)

찬송가가 예배에 적합한지 또는 성공하고 있는가를 물어보기 이전에 예배는 무엇인가에 대한 간단한 전제를 깔고 시작해야 할 것 같다. 내가 생각하는 예배는 ‘말씀을 낯설게 보기’를 목적으로 한다. 하나님의 말씀은 사람에게 선포될 때 본질적으로 낯설 수 밖에 없는 것이기 때문에, 예상 가능한 어떤 것이 선포되는 상황은 그 메시지가 변형되었거나 최소한 힘을 잃은 상황이라 정의할 수 있다.

이런 면에서 예배에서 함께 부르는 노래 역시 말씀을 낯설게 보게 하는데 도움이 되어야 예배에 도움이 된다고 말할 수 있을 것이다. 보통 찬송가를 좋아하는 사람들은 그 찬송가를 통해 어떤 신앙의 경험을 가진 경우가 많이 있다. 오랫동안 불러오면서 그 노래가 가진 힘, 노래가 주는 정서, 노래가 주는 느낌에 익숙해지고 그 익숙함 때문에 편안함을 느끼는 것이 찬송가를 좋아하는 많은 사람들의 생각일 것이다. 나 역시 그러니까.

이 ‘익숙함’이라는 요소는 선포되는 말씀의 ‘낯설음’과 대비되면서 그것을 중화시켜주는 좋은 역할을 할 수도 있고, 말씀조차 ‘익숙함’으로 다가오게 만드는 역효과를 낼 수도 있다. 많은 경우에는 후자와 같이 ‘익숙함’에 기대려는 사람들의 기대를 충족시켜 주는 것으로 끝날 가능성이 높다고 본다. 따라서, 찬송가가 새로운 형식과 새로운 느낌으로 새롭게 재해석되어 곱씹어지지 않는 한 예배 시간에 사용되는 것은 그렇게 좋은 일이 아니라고 생각한다. (물론 감정의 흐름에 직접적으로 호소하는 모던 워십곡과 직접적으로 비교하는 것은 아니다. 찬송가와 모던 워십 곡 중 어느 것이 더 좋은지에 대한 판단은 아주 구체적인 상황 속에서만 가능한 것이기 때문이다)

이렇게 찬송가를 새로운 느낌으로 재해석하는 일은 주로 성가대나 찬양팀에 의해 이루어질 수 밖에 없고, 어떤 면에서 보면 단순한 네 단짜리 노래를 끊임없이 새롭게 해석한다는 것은 새로운 노래를 만들어 부르는 것에 비해 더 어려운 일일 수 밖에 없다. 내가 찬송가 편곡 음반을 좋아하는 이유이기도 하다.

‘많은물소리’ 찬양집에 보면 ‘함께 부를 노래가 있었으면 해요’라는 노래가 있다. 이게 바로 지금 시대의 음악가들이 해야 할 일이다. 이런 노래를 만들어 내는 것.

그리고 ‘새 노래로 여호와를 찬양하라’는 시편의 선언에서 말하는 바와 같이 우리는 항상 새 노래를 불러야 한다. 노래 자체가 새 것이든, 노래를 대하는 태도가 새 것이든, 노래의 느낌이 새 것이든 상관없이 어쨌든 새 노래로 찬양을 해야 한다. 아무리 사람의 마음을 움직이고 감동을 준다고 해도 그 노래가 어제의 은혜, 어제의 느낌, 어제의 감동을 그대로 답습한 것이라면 정말 좋은 찬양은 아닐 것이다. 왜냐하면 찬양은 하나님께 드려지는 것이기 때문이다.

악보 그리기는 MuseScore로!

음악을 좋아하다보니 악보를 그릴 일이 많이 있다. 특히 교회 성가대 지휘를 하고 있다보니 피아노와 합창이 함께 들어간 악보를 만들고 싶은 경우가 왕왕 있다. 오래되거나 여러번 복사를 해서 다시 복사를 하기 어려운 악보들이나 너무 오래되어서 가사를 수정해야 할 필요가 있다고 생각되는 악보들을 만났을 때, 악보를 다시 깔끔하게 그릴 수 있다면 좋겠다는 생각을 많이 했었다.

이전에는 Lilypond라는 툴을 사용했었다. Tex같은 느낌인데 텍스트만으로 악보 소스를 만들고 이걸 컴파일해서 pdf 형식의 악보를 뽑아내는 방식이다. 단선 악보를 그릴 때는 이 것으로도 그렇게 복잡하지 않게 작업을 할 수 있었기 때문에 심지어는 이 블로그에 lilypond를 이용한 악보 그리기에 대한 글을 두 개나 연재한 적이 있다.

문제는 합창과 피아노 반주가 들어있는 조금은 복잡한 형식의 악보를 그릴 때 소스가 상당히 복잡해진다는 것, 그리고 소스를 만들 때 바로 악보를 보는 것이 불편하다는 점이었다. 그리고 이런 문제들을 모두 한 방에 해결해 버리는 프로그램이 바로 MuseScore이다. 그냥 일반적인 악보 그리는 프로그램과 별다를 바가 없어 보이는 WYSWYG 형식의 프로그램이다. 그리고 이 프로그램의 강력함은 기본적인 악보 입력이 키보드 상에서 해결될 수 있다는 점이다! 물론 상세한 표현과 각종 기호 등은 마우스의 도움을 받지 않을 수 없지만, 기본적으로 악보에 들어가는 음표와 가사 정도는 키보드 상에서 빠르게 입력을 해서 완성을 할 수 있다. 대여섯 페이지 정도 되는 4부 합창곡이라면 약 2~30분 이내에 완전한 조판을 마칠 수 있을 정도이니 얼마나 입력이 효율적인지를 알 수 있다.

이제는 입력에 대해서는 어느 정도 익숙해졌고, 적절한 악보의 크기나 글꼴 또는 spacing 같은 것을 조절해 가면서 가장 좋은 출력물을 만드는 세팅을 정하는 일 정도가 남아있다고 볼 수 있는데, 이 정도의 시간 투자로 이 정도의 출력물을 낼 수 있다는건 정말 대단한 일이 아닐 수 없다!

소소한 삶의 변화들…

  • 지난 블로그 포스팅이 2012년 11월이었으니까 이제 약 5개월이 지났다.

  • 2012년 10월에, 나는 직장을 옮겼고 셋째 아들이 태어났다.

  • 직장을 멀리 옮긴 덕분에 출근 시간은 약 70분, 퇴근 시간은 약 90분이 걸린다. 자가용을 운전하고 다니지 않으니 이 시간의 대부분은 버스나 지하철에서 보내게 되고, 이 시간 동안 책을 읽거나 음악을 듣거나 혹은 팟캐스트를 듣기도 한다. 최근에는 이 시간 동안 무언가를 하려는 생각을 버리고 내 자신을 그냥 편안하게 두려는 생각을 할 때도 많이 있다. 그래봐야 또 뭔가를 읽거나 들으려는 유혹에 쉽게 넘어가곤 하지만…

  • 쓰기 시작한지 18개월이 지나가는 아이폰 4는 이제 볼륨 조절을 제외한 두 개의 버튼이 다 잘 안 눌린다. 리퍼를 받을 수는 없고 그렇다고 사설 수리업체에 맡기기는 돈이 아깝다보니 그냥저냥 그대로 사용하고 있다. 그나마 홈 버튼은 아예 안 눌리는 것은 아니니 마음을 조금만 더 느긋하게 먹으면 크게 문제될 것도 없다. SKT에서 착한 기변이라는걸 내놓았다고 하는데, 나는 아직 대상이 아니어서 기기를 바꾸려면 좀 시간이 더 걸릴 듯 하다. 아이폰 6가 아이폰 5에 비해 크게 나아진 점이 없이 아이폰 5S 수준으로 나오게 된다면 그냥 지금 쓰고 있는 아이폰 4를 고쳐서 쓸 생각이다.

  • 쓰기 시작한지 약 6개월 쯤 되어가는 아이패드 3 (이른바 구 뉴 아이패드) 덕분에 재미있는 것을 많이 해 볼 수 있었다.

    • SampleTank, iGrand Piano for iPad, iLectric Piano for iPad, 그리고 StrandOrgan 등 네 개의 앱은 매 주마다 교회에서 약 6개월간 메인 건반 음원 역할을 해 주었다. iRig Midi와 이 앱들을 사용하면 오래된 커즈와일 SP88X가 다양한 소리를 내는 멋진 최신 신디사이저로 변신을 하게 되기 때문에. (여기 나오는 사진이 바로 이 조합이다) 이제는 Korg의 최신 Workstation인 Krome을 구입한 덕분에 이 조합을 사용할 필요가 없어지긴 했지만, 최소한 파이프 오르간 소리에 있어서만큼은 StrandOrgan이 훨씬 더 낫다는 생각이다 (어차피 익숙해지면 Krome의 소리도 나쁠 건 없고, 듣는 사람들도 그렇게 따지지 않으니 굳이 서스테인 페달 지원이 안되는 StrandOrgan을 쓰지는 않고 있지만).

    • StructureMateMetamolecular의 Rich Apodaca가 개발한 ChemWriter 기반의 아이패드용 SDF viewer이다. 파일을 여는 방식이 오직 이메일 전송 뿐인게 좀 아쉽긴 하지만, 그래도 5천개 이상의 구조를 가지고 있는 파일도 빠르게 열어주기 때문에 꽤 쓸만하다고 볼 수 있다. 사실 이 앱은 작은 크기의 자바스크립트 라이브러리로 화학 구조를 빠르게 볼 수 있는 기술을 자랑하기 위해 만든 앱이기는 하다.

    • Papers for iPad가 나의 현재 문헌 관리 메인 툴이 되었다. 맥이나 윈도우용 Papers는 아직 구매하지 않고 있는데, 지금보다 더 많이 쓰게 될 것 같지는 않아서 일단은 참고 있는 중. 자주 봐야 하거나 어노테이션을 많이 해야 하는 경우에는 PDF Expert로 옮겨서 본다. 이럴 때 UPAD를 사용하는 사람들도 많이 있는 것 같은데, 나는 UPAD는 그냥 노트 용도로만 사용 중.

  • 몇 주 전에 펀샵에서 버티컬 마우스 하나를 샀다. 충전형이고 무선인데, 손목을 많이 편안하게 해 주기 때문에 만족스럽게 쓰고 있다. 사실 좋은 마우스에 대한 로망이 있어서 오래 전에는 펜 마우스 같은 것도 써보고 했는데, 지금까지 가장 마음에 들었던 마우스는 로지텍의 V470이었고, 지금 쓰고 있는 녀석이 그것보다 조금 더 낫게 느껴진다. 물론 V470이 블루투스를 지원한다는 것은 랩탑에서는 더 좋은 특징이기는 하다.

Lilypond 길잡이 2

  1. Lilypond는 어떤 프로그램인가? Lilypond 사용을 위한 준비
  2. 기본적인 악보 조판 > 이번 포스트
  3. 찬송가 악보 그리기
  4. 코드 있는 악보 그리기
  5. 좀더 예쁜 악보 만들기

기본적인 악보 조판

이미 LilyPondTool을 설치한 상태라면 쉽게 악보를 만들 수 있다. jedit의 메뉴에서 Plugins > LilyPondTool > Score > Score Setup Wizard… 를 선택한다. 그러면 다음 그림과 같은 창이 새롭게 나타난다.

Wizard Window 1

이제 원하는 정보들을 하나씩 채워넣으면 된다. 기본적인 보컬 악보를 그리려고 한다면 제목, 작곡가, 작사가 정도의 정보를 넣으면 될 것이다.

Wizard Window 2

두번째 뜨는 창에서는 어떤 시스템의 악보를 그리는지를 선택할 수 있다. 아래 그림처럼 Vocals > Voice (with lyrics)를 누른 후에 Add 버튼을 눌러서 맨 오른쪽 영역에 Voice (with lyrics)가 보이게 하자.

Wizard Window 3

Next를 누르면 이번에는 조성과 박자를 선택할 수 있다. 필요에 맞게 선택 후에는 가사를 넣을 것인지, 가사는 몇 절까지 넣을 것인지, 그리고 코드 이름을 넣을 것인지를 선택한다.

Wizard Window 4

이제 마지막으로 자잘한 정보들을 넣어주면 드디어 finish 버튼이 보인다.

Wizard Window 5

이제 finish 버튼을 눌러주면 아래 그림과 같이 lilypond script가 들어있는 창이 열릴 것이다.

Lilypond 편집 창

이 텍스트 문서를 적절하게 편집한 후에 lilypond를 실행하면 pdf의 깔끔한 악보를 얻을 수 있는 것이다. 사실 이 창에서 어떻게 문서를 편집해야 하는지 막막한 느낌이 들 수 밖에 없다. 가장 좋은 방법은 이미 만들어져 있는 파일을 적당히 수정하는 것이다. 그런 예제로 내가 편집했던 Emmanuel 악보를 아래에서 볼 수 있다. 소스 파일생성된 pdf 파일을 모두 다운로드받을 수 있다.

% Created on Sat Dec 11 13:25:46 SGT 2010
version "2.12.3"

header {
    title = markup {
        fontsize #5
    override #'(font-name . "Nanum Brush Script") { "임마누엘" }} 
    subtitle = "Emmanuel"
    composer = "Reuben Morgan"
    %poet = "Stephen Ha"
    tagline = ""
}

verseKor= lyricmode {
    set stanza = #"1. "
    거 룩 거 룩 경 배 드 리 네 왕 되 신 주 님
    할 렐 루 야 내 맘 에 오 사 날 새 롭 게 해
    임 마 누 엘 주 예 수 날 떠 나 지 않 네
    선 한 목 자 날 떠 나 지 않 네 임 마 누 엘
    거 룩 거 룩 전 능 의 주 주 밖 에 없 네
    거 룩 거 룩 전 능 의 주 주 밖 에 없 네
    _ 엘 임 마 누 엘 임 마 누 엘 임 마 누 엘
}

verseKorTwo = lyricmode {
    set stanza = #"2. "
    밤 하 늘 의 수 많 은 별 들 지 으 신 주 님
    주 의 사 랑 나 를 부 르 네 주 를 따 르 리
}

staffVoice = new Staff {
    override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-8 . 4)
    time 4/4
    key e major
    clef treble
    relative c' {   
        context Voice = "melodyVoi" {
            dynamicUp
            r4 gis'8 gis gis4( gis8 fis16 e) | e4 e8 dis e4 gis | cis,2. cis8 dis | e4. fis8( fis) dis4. | break
            r4 gis8 gis gis4( gis8 fis16 e) | e4 e8 dis e4 gis | cis,2. cis8 dis | e4. fis8( fis) dis4. | break
            r8^markup {
                translate #'(-2 . 1)
                musicglyph #"scripts.segno"
            }  a'8 a cis cis2 | r4 fis,8 b( b) gis4. | r8 a a gis a4 gis8 fis( | fis1) |
            r8 a a cis( cis) cis4. | r8 fis, fis b gis4 e | cis2 r8. dis16 dis8. e16( | bar "||" e8^markup {
                translate #'(-1 . 3)
                italic "last time to "
                tiny raise #1
                translate #'(0 . 3)
                musicglyph #"scripts.coda"
            }
                ) e4.( e4) r4 |
            bar ":|" break
            r4 b'8 cis gis4 fis | r4 fis8 gis fis4 e | r4 b'8 cis gis4 fis | fis2( fis8) r4. |
            r4 b8 cis gis4 fis | r4 fis8 gis fis4 e | r4 b'8 cis gis4 fis | fis2( fis8_markup {
                italic smaller "D.S. al Coda"
            }
                ) r4. |
            bar "|:"
            e8^markup {
                translate #'(-2 . 1)
                musicglyph #"scripts.coda"
            } e4. r8. fis16 fis8. gis16( | gis8) gis4. r8. dis16 dis8. e16( bar ":|"| e8) e4. r8. fis16 fis8. gis16( | gis8) gis4.( gis2) |
        }

    bar "|."
    }

}

harmonies = new ChordNames chordmode {
    set majorSevenSymbol = markup { maj7}
    set chordChanges = ##t
    override ChordName #'font-size = #-1
    override ChordName #'font-name = #"Arial"
    e2. b4/dis | cis2.:m b4 | a1 | cis2:m b |
    e2. b4/dis | cis2.:m b4 | a1 | cis2:m b |
    fis1:m | b2/dis e/gis | a1 | b1 |
    fis1:m | b2/dis e/gis | a2. b4 | cis2.:m (b4/dis) |
    b2/dis cis:m | b a | b/dis cis:m | b a |
    b2/dis cis:m | b a | b/dis cis:m | b1 |
    cis2.:m b4/dis | e2. b4/dis | cis2.:m b4/dis | e1 |
}

score {
    >

    midi {
    }

  layout {
      indent = 0cm
      context {
      Score
      remove "Bar_number_engraver"
      }
  }
}

paper {
    myStaffSize = #26
    #(define fonts
    (make-pango-font-tree "NanumMyeongjo" "AppleGothic" "NanumGothicCoding" (/ myStaffSize 28)))
    #(set-paper-size "b5")
}