한국산학기술학회논문지 Vol. 11, No. 5, pp. 1640-1645, 2010 전자악보전송시스템 이준연 1* 1 동명대학교멀티미디어공학과 Electronic Musical Score Transmitting System Junyeon Lee 1* 1 Tongmyung University, Dept. of Media Engineering 요약오케스트라연주에서각악기의연주자가연주중에직접악보를넘겨야하는불편함이있다. 따라서본연구에서는자동으로악보를넘길수있는전자악보시스템을 Mini-ITX와 LCD Panel을이용하여악보대에일체화시켜서제작하였고, 신뢰성있는 TCP/IP 소켓통신을사용하여메시지및데이터전송을구현하였다. 본논문에서는클라이언트에서자동으로악보를표현하는기능을구현하였고, 서버프로그램에서는악기별로클라이언트의개별적관리가가능하도록악보동기화기능및수동기능을추가하였다. 그리고, 하나의악단을 Access파일하나로관리할수있기때문에악단별관리가수월하다. 이와더불어 TCP/IP 방식의신뢰성있는통신을선택하여, 데이터를전송하는데있어서손실이생기는상황을막아준다. Abstract There exists an inconvenience that players of each instrument pass musical score in orchestra recital. In this paper, we implement the electronic musical score transmitting system that possible to hand sheet music automatically, using Mini - ITX and LCD Panel. We made them unite with a sheet music pair, and it was made and a message and data transmission were embodied using reliable TCP/IP socket communication. In this paper, the client hands sheet music automatic, and server implemented the manual function to manage each clients individually. Because one band can be managed by one Access file all together, it is easy to manage each band. Along with this, this system selects TCP/IP as the reliable transfer protocol that protect loss and errors. Key Words : Electronic Musical Score Transmit, Musical Score Synchronization 1. 서론 현대사회는여러분야에걸쳐서자동화시스템이접목되고있다. 좀더편하고수월하게일처리를하기위한자동화시스템의개념을본연구에서는악보를좀더효율적으로보관하고사용하기위하여접목하였다. 악보는음악과함께오랫동안내려오고있는종이로된연주곡이다. 몇년이흘러도변하지않는종이악보는지금이순간까지도여러연주회의연주자들에의해사용이되어지고있다. 오랫동안쓰여진만큼종이악보에대한불편함또한계속해서제기되어왔다. 피아노독주회와같은음악회를보면연주자가연주에좀더집중할수있도록옆에서악보를넘겨주는사람이있는데, 이런 경우연주자가직접악보를넘겨야하는불편함은없지만독주회의느낌을표현하는것에대해단점의요소가된다. 반면에오케스트라는전체적인느낌을살리는데단점의요소는없지만개개인이직접악보를넘겨야하는불편함이있다. 이경우연주자가연주에좀더집중하지못하고심지어는악보를떨어뜨릴위험까지존재한다. 이러한문제점들을모두해결, 방지하기위하여본연구를진행하게되었다. 자동으로악보를넘길수있는전자악보시스템을 Mini-ITX와 LCD Panel을이용하여악보대에일체화시켜서만들었고, 신뢰성있는 TCP/IP 소켓통신을사용하여메시지및데이터전송을구현하였다. 이런 TCP/IP 통신을하기위해서는각 Mini PC끼리연결되어야하는데, * 교신저자 : 이준연 (jylee@tu.ac.kr) 접수일 10년 03월 15일수정일 10년 05월 01일게재확정일 10년 05월 13일 1640
전자악보전송시스템 쉽게탈ㆍ부착할수있는무선랜을사용하였다. 지휘자가모든연주를진행관리할수있도록지휘자의패널을 Touch Screen으로구성하였으며, 실제악보와의차이를줄이기위해와이드패널을사용하였다. 최대한사용자의편의를생각하여프로그램및모형을제작하였으며, 이를통하여연주시발생하는문제점들을사전에방지하고연주의질을높이고자한다. 자주사용되어지거나기본적인기능들은모두함수로구현해놓았으며, 객체지향언어인 C# 의장점을살려이런기능들을 MainForm에서가져오는것만으로쉽게사용할수있도록구현하였다. 위의기본적인기능들을사용하는서버시스템의구성은그림 3과같다. 2. 서버시스템 그림 1은서버프로그램을실행했을때의메인화면을나타낸것이다. 서버프로그램에서는지휘자, 연주자, 악보및연결관리를수행할수있다. [ 그림 3] 서버시스템구성도 [ 그림 1] 서버프로그램메인화면본연구에서사용되는서버프로그램의구조는그림 2 와같다. 기본적인 Resources나 Settings, Main 클래스를제외하고총 3개의추가클래스로구성되어있다. 전체폼을담당하는 MainForm 클래스와사용자 ( 연주자, 지휘자 ) 의정보를가져오거나수정, 삭제할수있는기능을구현해놓은 DataBase Class, 서버와클라이언트간의통신을가능하게해주고여러가지메시지와파일들을주고받을수있게해주는 Server 클래스가추가적으로존재한다. 기본적으로서버는각종데이터베이스정보를출력해주며, 클라이언트의접속을대기한다. 모든클라이언트의접속이완료되면연결된클라이언트의악기에맞게악보를각각전송한다. 전송이완료되면지휘자에게준비완료메시지를전송하고, 지휘자의시작신호를받아각연주자에게시작메시지를전송하여모든연주자들이악보를볼수있게한다. 서버프로그램은관리자가사용하는프로그램으로악보와각종정보들을확인할수있는중심이되는프로그램이다. 이외에다음과같은역할을수행한다. [ 그림 4] 지휘자프로그램메인 [ 그림 2] 서버프로그램구조도 서버프로그램에서는지휘자를추가하고수정및삭제할수있다. 또한지휘자의신상과각종정보등을확인할수있다. 1641
한국산학기술학회논문지제 11 권제 5 호, 2010 연결관리탭에서는서버의상태, 지휘자및연주자의연결상태를확인할수있으며, 개별적인수동관리가가능하다. 뿐만아니라악보또한수동으로전송할수있는기능등이구현되어있다. [ 그림 5] 지휘자관리탭연주자관리는지휘자와마찬가지로각악기별로연주자의각종정보및생성, 삭제, 수정할수있다. [ 그림 6] 연주자관리탭악보관리탭에서는악보의이름, 장르, 작곡가와전체페이지수, 악기별페이지수, 저장경로등을확인할수있다. 위의정보를이용하여클라이언트에게전송해주는악보를설정하고판단한다. 3. 클라이언트시스템 클라이언트프로그램은각연주자가로그인과정을거쳐연주자로등록함과동시에지휘자와악기를선택하여연주에참여할수있다. 클라이언트프로그램의구조는그림 9과같다. 기본적인 Resources나 Settings, Main 클래스를제외하고총 5개의추가클래스로구성되어있다. 그림 9의클라이언트프로그램구조는 Conductor와 Musician 둘다공통적으로적용된다. 클래스내부의함수가약간다를뿐전체적인구조는같은형식을하고있다. DataBase 클래스는해당접속자의아이디를조건으로하여아이디별연주자의정보를가져오는역할을담당하고있다.[6] Client 클래스는위에서설명했던서버프로그램과같이서버와연결하고각종메시지및파일을수신해오는기능을구현해놓았다. 본연구프로그램에서악보는자식폼과부모폼의형식으로폼을바꿔가며출력한다. 따라서 MainForm 이외에도 Child_Form이존재하며, 부모폼 ( 즉악보 ) 은슬라이드효과를주어부드럽게나오도록했다. 해당기능을구현해놓은것이 Slide_Action클래스이다. 이런기능은 Conductor와 Musician에모두적용되며폼의크기나일정부분함수의기능이다를뿐이다. [ 그림 7] 악보관리탭 [ 그림 9] 클라어언트프로그램구조도 [ 그림 8] 연결관리탭 앞서설명한기본적인기능들을사용하여클라이언트프로그램의전체적인흐름에대하여설명하겠다. 프로그램이실행되는순서는아래그림 11과같다. 기본적으로클라이언트는각연주자및지휘자의정보를출력해주며, 서버에접속을시도한다. 모든클라이언트의접속이완료되면연결된서버에서전송된악보를수신받는다. 수신이완료되면서버에게준비완료메시지를전송하는데, 이때 1642
전자악보전송시스템 지휘자의경우모든클라이언트의접속완료신호를받아시작버튼을활성화시키며, 시작버튼을누름과동시에서버에게시작메시지를전송한다. 시작메시지를받은서버가각연주자에게시작메시지를전송하고메시지를수신받은클라이언트프로그램은해당악보를출력한다. 악보의싱크에맞추어 ( 타이머 ) 악보를자동으로넘겨준다. 모든연주 ( 악보출력 ) 가완료되면최초대기화면으로돌아가며지휘자가시작버튼을누르면위의흐름을반복하며실행된다. [ 그림 10] 클라이언트프로그램흐름도클라이언트프로그램은연주자프로그램과지휘자프로그램으로나눌수있다. 악보를출력해주는부분은둘다똑같다. 이외에다음과같은역할을수행한다. 연결된서버와클라이언트의정보, 상태등을출력해주고수동으로접속, 해제, 연주를시작할수있다. [ 그림 11] 관리자탭 그림 12는본연구의목표인자동악보기능부분을보여주고있다. 싱크에맞추어악보가자동으로바뀌며모든악보가출력되고나면최초화면으로돌아간다. 4. 기타기술 4.1 USB를이용한사용자인증 USB 메모리는자체적인인터페이스를내장하고있어단지 USB 포트에연결만하면쓸수있다는편리성과함께작은크기와고용량, 저렴함이라는장점을두루갖추었다. 게다가최근넷북등아예 ODD를장착하지않은시스템이주류로부상하면서사용빈도가급증하고있다. 본연구에서는이점을적극활용하여해당시스템에 USB 메모리가제공하는 'CD 영역지정 ' 을사용하게되었다. 흔히 오토런영역지정 이라하는이방법은 USB 메모리의일부영역을지정해서 ODD처럼인식시키는것이다. 이방법은 USB 메모리가가지고있는 펌웨어 를약간수정하는것이다. 몇몇 USB메모리의컨트롤러는이기능을위한장치에뮬레이션기능과디스크공간의분할기능을지원하며, 적절한툴을통해이를약간수정함으로써 USB 메모리를통해 ODD를에뮬레이션할수있다. USB Login을하게되었을시필요한사용자정보를 USB에서받아오기위한파일 'acc.txt' 파일과본연구프로그램의실행경로를나타낸 'autorun.inf' 파일이두가지파일을 ISO 파일로생성하여 UFDisk 프로그램에필요한 ISO 파일을작성하였다. 총 5개의 USB를이용하여지휘자, 피아노, 첼로, 바이올린, 비올라라는악기와연주자를 'acc.txt' 파일을통해구분지었고, 이정보를바탕으로데이터베이스에있는각각의정보들을사용할수있도록구현하였다. 본연구에서사용한방식과함께 'UltraISO' 프로그램은부팅가능제작, CD, Audio CD 이미지생성및편집등다양한용도로사용되어 USB활용성을극대화시켜주는역할을하고있다. UFDisk 프로그램기능중하나인 USB에 CD 영역지정을해주는 'Auto Run' 기능을이용하여 UltraISO에서생성한 ISO파일을삽입하여 USB CD 영역을만들어준다. 이로써 USB CD 영역안에는 'acc.txt', 'autorun.inf' 두개의파일이저장되어 USB를연결할때마다자동실행하여전자악보시스템을사용가능하게한다.[2] [ 그림 12] 자동악보화면 4.2. TCP/IP Socket 통신 본프로그램은단일소켓에서여러개의어플리케이션 1643
한국산학기술학회논문지제 11 권제 5 호, 2010 프로그램이참조 (refer) 하여야한다. 한프로그램이해당소켓에대한기술자 (descriptor) 라는참조자 (reference) 를가지고있다면이소켓을통해통신할수가있다. 호스트에서는포트번호로어플리케이션을구분한다. 정확하게말하자면포트는호스트에있는하나의소켓을나타낸다. 이론상으로는하나의소켓은서로다른어플리케이션이접근할수는있지만, 실제로동일한소켓에접근하는서로다른프로그램들은대개웹서버프로그램에대한여러개의창과같이, 동일한어플리케이션으로부터파생되는경우가많다.[1] 본연구에서는위와같은 TCP/IP 기반의소켓통신을사용하여서버와연주자간에데이터및메시지를송 수신하고, 처리하였다. 이를위하여단일소켓으로각클라이언트와통신하도록하였다. 4.3 데이터베이스 Access 2003은데이터베이스엔진과, 데이터베이스작업을가능하게해주는개발도구를하나로묶은프로그램이다.[5] Access의특징은크게두가지로정리할수있다. 하나는전문가도사용하기에손색이없는정교한전문데이터베이스개발도구라는것이고, 또하나는초보사용자도쉽게데이터베이스를구축할수있도록 Access 자체적으로강력하고편리한기능을제공한다는것이다.[3] 전자악보시스템에서데이터베이스의주요테이블은그림 14와같이 Conductor_Table, Musician_Table, Inst_Table, Score_Table 등이며기업의데이터등에비해현저히적은양의데이터이므로, 각악보대에서사용된미니 PC의성능을고려하여여러 DBMS중사용이편리하고가벼운 Access 2003을선택하여 전자악보시스템 의데이터베이스를구축하였다. 5. 결론및향후연구 본논문에서는연주중악보를손수넘기는불편함을없애고연주의질을높이기위하여 TCP/IP기반의소켓통신전자악보시스템을개발하게되었다. 본연구의핵심기능인자동악보시스템은오케스트라연주시연주자가직접악보를넘기다가실수로떨어뜨려연주의타이밍을놓쳐버리는상황을보게되면서시작하게되었다. 이뿐만아니라, 서버에각종악보, 연주자들의정보를저장시키고일괄적으로관리한다면지휘자가악단을관리하는데보다효율적이고편리할것이라생각된다. 본연구과제의실제프로그램개발을통하여주된기능인자동으로악보를넘겨주는기능을구현하였고, 서버프로그램에각클라이언트의개별적관리가가능하도록수동기능을추가하였다. 아울러하나의악단을 Access파일하나로관리할수있기때문에악단별관리가수월하다. 이와더불어 TCP/IP 방식의신뢰성있는통신을선택하여, 데이터를전송하는데있어서손실을보거나받지못하는상황을막아준다. 무선랜과 USB사용자인식기능을사용하여키보드나마우스를통한로그인없이도사용자를인식하고프로그램을자동으로실행시켜보다편리한시스템을구축하였다. 본연구에서구현한자동악보기능뿐아니라 USB사용자인식과같은경우는회원증이나각종사용자를인식하는부분에적용한다면좀더발전된인증시스템을개발할수있을것으로기대된다. 본연구에서는자동으로넘어가는악보를구현하였으나, 몇가지가문제점으로지적되었다. 첫째, 자동으로악보가넘어가지만수동으로제어할수있는기능이없다. 둘째, 지휘자에따라실제빠르기와다르게연주하는경우도있다. 위의문제점을해결하기위하여향후개발할악보시스템에는발로누를수있는버튼을추가하여지휘자가버튼을밟았을경우, 앞ㆍ뒤페이지로이동할수있고일시정지와정지기능, 빠르기조절기능등을추가하여지휘자가제어할수있는부분을추가한다면보다완전하고발전된악보시스템으로거듭날수있을것이다. 참고문헌 [ 그림 13] 데이터베이스테이블. [1] 최낙준, TCP/IP 소켓프로그래밍 C# 버전, 사이텍미디어. 2005. [2] USB office, http://usboffice.kr [3] 이종석, 액세스 2003 무작정따라하기, 길벗 2005. 1644
전자악보전송시스템 [4] Johannes Gehrke, Raghu Ramakrishnan, 데이터베이스시스템, Mc Graw Hill. 2003. [5] 김창수, 이수진공저, VBA 예제를이용한액세스데이터베이스, 혜지원. 2003. [6] 유나현, 김태수. 클래식음악악보의메타데이터스키마제안, 지식처리연구제7권 1/2호, 2006.12. 이준연 (Jun-Yeon Lee) [ 정회원 ] 1992 년 8 월 : 중앙대학교컴퓨터공학과 ( 공학석사 ) 2000 년 2 월 : 중앙대학교컴퓨터공학과 ( 공학박사 ) 1992 년 8 월 ~ 1994 년 9 월 : Microsoft LTD. Developer 2000 년 3 월 ~ 현재 : 동명대학교미디어공학과교수 < 관심분야 > 센서네트워크, 클라우드컴퓨팅 1645