樂機 – Project Cello, 2017

본 포스트는 2017년 글로벌미디어학부 재학 중 제작했던 프로젝트 <樂機 – Project Cello>에 대해 기술한 포스트입니다.

<樂機 – Project Cello, 2017>

작품 시연 영상입니다.

  • <樂機 – Project Cello>
  • 제작 기간 : 2017.6월 둘째주 – 2017.6월말 (총 2주, 디지털사운드 과목 기말고사 프로젝트)
  • 팀명 : 악어 (樂語, 음악으로 말하는 언어)
  • 팀원 : 이예원
  • 역할 : 작곡, 작품 기획, 전체 작품 프로그래밍, Processing + Kinect 연동
  • Utility : Ableton Live 8 (작곡), Processing (Java 기반), Kinect1

악기, 음악을 연주하기 위해 쓰이는 도구를 칭합니다. 사전적 의미로는 그러하나, 저는 첼로라는 악기를 조금 다르게 해석해보고자 했습니다.

악기, 비주얼을 만드는 도구로 탈바꿈하다

이 프로젝트에서 악기란, 비주얼을 직접 만들어내는 도구입니다. 곡을 연주하면 그에 맞는 비주얼까지 두 마리 토끼를 잡는 아주 스마트한 도구로 탈바꿈 합니다.

<樂機 – Project Cello의 System Diagram>

빔프로젝트에 상영되는 영상들은 첼로 현을 Up현, Down현으로 켤 때마다 활의 양 끝을 포인트로 잡고, 그 포인트를 기준으로 키넥트가 활의 움직임을 인식합니다. 인식한 포인트를 빔프로젝터가 연결된 노트북으로 전송하여 노트북에서 프로세싱으로 작업해둔 비주얼 영상이 나오는 구조입니다.

자작곡 <악기>

<자작곡 악기 에이블톤 작곡화면>

프로젝트에 쓰인 곡은 직접 작곡을 했는데, 10대때 다루어봤던 첼로 소리를 홈마이크로 녹음을 하고, 작곡해둔 비트에 녹음한 첼로 소리를 삽입하고 최종 마스터링을 진행했습니다.

전반적으로 곡의 분위기가 어둡습니다. Glitch 장르를 작곡을 해보았는데요,
저는 이 곡을 통해, 아날로그와 디지털 사운드의 조합을 표현해보고자 했습니다. 이 프로젝트의 핵심 포인트중 하나는, 아날로그(첼로)와 디지털(오디오비주얼)의 조합입니다. 그렇기에 직접 녹음한 첼로 사운드와 전자음악을 합쳐 그 뜻을 같이 하였습니다.

Audio Visual

오디오 비주얼의 경우, 프로세싱으로 전체적인 작업을 했습니다. 이 프로젝트에서 비주얼을 제작할 때의 핵심은, 활의 움직임에 따라 비주얼 또한 바뀌는 것입니다. 따라서 비주얼을 코딩할 때도 활의 양 끝의 포인트를 따라서 잘 움직일 수 있게 디자인을 해줘야 합니다.

<활의 움직임에 따라 표현되는 비주얼 제작 예시>
<비주얼 코딩 예시>

활의 끝점을 마우스의 X,Y좌표 포인트로 잡고 만들어본 예시입니다. 면 형태의 소스보다 선 형태로 mesh 를 만드는 것이 활의 움직임을 더 다이나믹하게 표현할 수 있을것이라 생각하여 디자인 해봤습니다.

How to connect Kinect?

이 프로젝트는 첼로로 곡을 실시간으로 연주하며, 동시에 오디오비주얼도 실시간으로 반영해주는 프로젝트 입니다. 이를 위해 저는 Microsoft 에서 제작한 XBox 360 게임용 도구 키넥트를 사용했습니다.

<Microsoft Kinect V1>

제가 가지고 있던 키넥트는 V1 이므로, V1 센서를 사용했습니다. 키넥트는 적외선 센서로 작업 공간에서 테스트 결과, 굉장히 어두운 환경에서 인식률이 높은 것을 확인할 수 있었습니다.

제가 이제 해야하는 작업은, mouse input 으로 작업해두었던 코드의 input 값을 kinect 에서 sensing 된 input 값으로 치환하는 작업입니다.

<프로세싱과 키넥트 연동 – setup 부분>

Processing 코드의 setup 함수 부분 일부입니다. 키넥트는 Depth 를 기반으로 인식하기 때문에, 작업 화면 사이즈에서 P3D (3D 환경에서 작업해주겠다) 캔버스로 바꿔줍니다. 이렇게 하면 3D에서 Z축에 depth 값을 저장할 수 있습니다. 그 다음 불러온 키넥트 라이브러리 객체를 setup 단계에서 선언해줍니다.

<프로세싱과 키넥트 연동 – draw 부분>

이 프로젝트에서 첼로를 연주할 때, 두 가지를 고려해야 합니다.

  • Up활과 Down활
  • 첼로의 4가지 현 중 어느 현에서 연주할 것인가?

먼저 활의 방향입니다. 첼로 연주에는 Up활과 Down활 두 가지가 있습니다. Down활의 경우, 활의 head 부분으로 활을 긋는 것이고 Up활은 활의 point 부분으로 활을 긋는 방식입니다. 제가 작곡한 곡의 경우 대부분 low pitch 에서 첼로 음이 놀기 때문에, 첼로의 A현 (가장 높은 음을 표현하는 현)은 안쓰고 주로 C현과 G현을 씁니다. 현의 움직임이 그닥 다이나믹하지 않다는 뜻입니다. 따라서 이 작품에서는 활의 Up/Down 활의 방향에 따라 마우스 좌표 값이 크게 좌우됩니다.

저는 오른손잡이라 활을 오른손으로 잡습니다. 실제로 연주할 때 오른손의 위치가 대체적으로 Down활 때는 오른 팔꿈치보다 위에 위치 했었습니다. 이에 따라, 앞서 코딩해둔 마우스 X,Y 좌표값을 스켈레톤 값 중 손의 X,Y 위치와 팔꿈치의 X,Y 위치로 치환합니다.
Up활은 활을 반대로 내리기 때문에 반대로 팔꿈치가 손보다 위에 위치하게 됩니다. 따라서 if 문이 반대로 걸리게 됩니다. 그렇게 두 가지 line mesh drawing 코드를 작성하고 for 문은 두 개를 걸었습니다.

(여담) Results

(인증샷!)
저는 기술성/창의성 부분 두 부문 다 우수하게 득표하여 최종 프로젝트에서 1등을 할 수 있었습니다.

키넥트를 본래 게임용으로 쓰려고 샀다가, 디지털사운드 과목의 기말 프로젝트라는 좋은 기회가 생겨 어렵게 혼자서 끙끙대며 작업했던 기억이 납니다. 대관도 아는 분의 교회 비는날 직접 첼로를 짊어지고 이동하여 설치하고, 촬영도 몇 시간동안 장기적으로 진행했습니다. 굉장히 고된 일정이였습니다. 밤도 많이 새고.. 하지만 덕분에 좋은 결과도 얻고, 오늘 그 때를 추억하며 이런 포스트도 쓸 수 있게 되어 다행이라 생각합니다. 저는 이 프로젝트를 통해, 미디어아트 작가라는 꿈을 처음으로 구체적으로 생각하고 실천에 옮겨봤습니다. 제 자신에게 감사했던 프로젝트였습니다.

긴 글 읽어주셔서 감사합니다.

Leave a comment