Moppy
1. 개요
이런것도 있다
플로피 디스크 드라이브(Floppy Disk Drive) 음악 연주 장치
'''M'''usical Fl'''oppy''' Controller
Sammy1Am / Moppy - GitHub : Sammy1Am Moppy 페이지
Make Your Own Musical Floppy Drive - YouTube : Sammy1Am 영상 제작 강좌
A very-well diagrammed English tutorial : 제작 강좌
MCU를 활용하여 FDD의 헤더(Header)를 특정하게 움직이는 방식으로 음악 연주가 가능한 장치이다.
연주 방법은 미디 파일을 컴퓨터 프로그램을 통하여 재생시키면, 컴퓨터와 연결된 아두이노를 거쳐 각 FDD에 각 채널에 일정한 음의 길이 및 높낮이가 저장된 단음 신호를 전송하여 연주가 되는 것처럼 시키는 것이다.
Sammy1Am을 비롯하여 이러한 연주 장치를 보다 쉽게 할 수 있도록 제작 강좌가 나와 있으며, 재료만 갖춰져 있다면 그다지 어렵지 않게 만들 수 있다.
2. 직접 Moppy 만들기
집에서 직접 Moppy만들어 작동하기 위해서는 아래의 구성품이 되도록 갖춰져 있어야 한다. 하나라도 부족하면 제작 도중 난감한 일이 발생할 수 있으니 주의해야 한다.
2.1. 하드웨어 구성
(1) 필수품
[image]
- Moppy 용 FDD 1~6개 : 후면부에 34핀 중 하단 홀수 핀(1~33)이 대부분 제거되지 않은 FDD여야만 한다.
Moppy의 핵심 부품이자 동시에 국내에서 가장 구하기 힘든 녀석이기도 한데, 시중에서 구할 수 있는 중고 FDD의 대부분은 홀수 핀이 제거되어 있기 때문이다. 이런 FDD는 Moppy용으로 사용할 방법이 없기 때문에 쓸모가 없으며, 이 조건을 만족하는 FDD를 구하기도 상당히 힘든 편이다.[1]
대부분 FDD는 오래 전에 단종되었고, 국내에서도 구하기가 쉽지 않으니 정 여건이 여의치 않다면 해외에서 수입해오는 것도 방법이 될 수 있다. 만약 이 조건을 만족하는 FDD를 하나라도 구했다면 최대 고비는 넘겼다고 할 수 있다.
직구를 한다면 이베이쪽을 뒤져보자. 거긴 '''홀수 핀이 제거된 걸 찾기가 더 어려울 정도로''' 조건을 만족하는 FDD를 찾기가 쉽다.대부분 FDD는 오래 전에 단종되었고, 국내에서도 구하기가 쉽지 않으니 정 여건이 여의치 않다면 해외에서 수입해오는 것도 방법이 될 수 있다. 만약 이 조건을 만족하는 FDD를 하나라도 구했다면 최대 고비는 넘겼다고 할 수 있다.
다음은 Moppy로 만들 수 있는 FDD 목록이다. 아래 모델명으로 된 FDD를 중심으로 구하면 된다.
- CHINON FB-354
- MITSUMI D359M3D
- NEC FD1231M
- 삼성전자 SFD-321B[2] , SFD-321D, SFD-321J[3]
- 소니 MPF920-Z
- TEAC FD-235HF(참고로 비슷한 이름의 FD-235HG는 핀이 다 살아 있음에도 불구하고 연주가 안 된다. 헤더가 없는 모델로 추정.)
- 아두이노 UNO R3[4] : 인터넷 상에서 택배비 포함 1만원이면 살 수 있다. R3 아두이노 1개에 FDD를 보통 6개 연결할 수 있다. Sammy1Am 의 FAQ에 의하면, 디지털 입력핀 외의 나머지 아날로그 입력핀을 활용하여 9개까지 연결할 수 있다고 한다.
There are only enough digital pins for 7 drives, how do I connect 8?
The analog pins on the Arduino Uno can be used as digital pins numbered 14-19. '''An Arduino Uno can support up to 9 drives.'''
- 파워 서플라이 1개 : FDD에 전원을 공급할 장치이며, 20핀 메인 전원 커넥터(나머지 4핀은 불필요)와 4핀 플로피 전원 커넥터, 4핀 주변장치 전원 커넥터(들)만 사용한다. 정격출력이 클 필요는 없지만 되도록 ON/OFF 스위치가 있는 것을 사용해야 하며, 묻지마 파워만큼은 조심하도록 하자.
- 암-수 점퍼 와이어 케이블 : FDD 1개 당 6개의 케이블이 들어간다. 또한 길이에 한계에 따른 연장선이 필요할 지 모르니 넉넉히 준비하는 것이 좋다.
- 빵판 : 케이블끼리 연결할 때 한데 모아서 선 정리하기도 좋고 알아보기도 쉽게 하기 위해서는 필요한 편이다.
- 수-수 점퍼 와이어 케이블 or 철사 + 전기테이프 : 20핀 메인 전원 커넥터나 일부 케이블의 연결시 필요하다. 철사와 전기테이프를 적절히 활용하여 만들어서 사용해도 된다.
- 4핀 보조전원 커넥터 - 4핀 플로피 전원 커넥터 : 일반적인 파워 서플라이에는 4핀 플로피 전원 커넥터가 1개 정도밖에 구성되어 있을 뿐이다. Moppy를 1개만 구성하려면 상관없지만, 2개 이상 구성하려면 4핀 보조전원 커넥터에 또 다른 4핀 FDD 커넥터를 별도로 구매해서 연결하여 사용해야 한다.
2.2. 소프트웨어 구성
- 아두이노 소프트웨어 : 2020년 8월 현재 최신버전은 1.8.13 이다. 윈도우, 맥, 리눅스 각 운영체제에 해당하는 프로그램을 설치하면 된다.
아두이노를 컴퓨터에 연결한 뒤 소스 코드를 컴파일하여 아두이노에 업로드 시켜주는 프로그램이다. 아두이노가 연결되어 있지 않아도 컴파일은 가능하다.
- MoppyArduino
- MoppyControlGUI
- Timer 1
- 미디 파일 : 각 트랙마다 화음이 아닌 단음으로 구성된 단일(혹은 다중) 트랙으로 구성되어 있어야 한다. 만약 한 트랙 안에 다중 화음으로 구성되어있다면 작동시킬 수 없으며, 일일이 단음 다중 트랙으로 편집해서 따로 만들어 사용해야 한다. 미디 파일의 옥타브 구성은 C1~B4 까지 4옥타브 내에서만 구현해야 하며, 특히 C1~B1까지는 제대로 들리지 않을 수 있다. 또한 너무 음의 차이가 급격하게 크거나 매우 짧은 시간에 음을 연주하면 씹힐 수도 있으니 실제로 재생시켰을 때 온전히 재생되지 않을 수 있다는 것을 고려해야 한다.
3. 제작 방법
앞의 하드웨어와 소프트웨어가 충분히 갖추어졌다면, 아래의 순서대로 제작하면 된다. 문서 상단의 제작 강좌 링크를 참고하라.
1. 먼저 파워 서플라이의 20핀에서 초록선(14핀, PS-ON)과 검정선(17핀 등, Ground) 중 하나를 수-수 점퍼 케이블[5] 로 연결한다. 이렇게 하면 파워를 켜고 끌 때까지 FDD에 전력이 공급된다.
2. 다음에는 FDD의 후면 34핀 중 어느 핀을 사용하는지 알아둬야 한다.
보통 Moppy에 사용할 수 있는 FDD는 후면부에 보면 3핀만 비어있고 나머지 33개의 핀은 살아있다. 그 중 11~12, 17~20핀만 사용한다.
34핀중 몇개가 생략된 FDD는 Drive Select (윗줄 6번째 핀)을 아랫줄 아무데나 연결시켜주면 된다.
아랫줄은 모두 GND이다. 모두 GND이니 핀을 생략 가능한것이므로 34핀 FDD가 아니라고 슬퍼하지는 말자.
[image]
- 11핀(Drive Select Ground)
- 12핀(Drive Select) : FDD에 전원이 공급되었을 때, 전면부의 전구에 신호가 들어간다. 11핀과 같이 연결만 시켜두면 된다.
- 17핀(Direction Ground)
- 18핀(Direction) : 17핀(접지)과 연결되면 헤더가 앞으로 이동되고, 떼면 헤더가 뒤로간다.
- 19핀(Step Ground)
- 20핀(Step)
FDD의 GND를 사실상 아두이노 GND에 연결할 필요는 없다.[7]
왜냐? 연결 안해도 작동은 잘만 된다.
18번 핀을 아두이노 2번, 20번 핀을 아두이노 3번핀에 연결만 해도 작동한다.(또는 18핀을 아두이노의 3번, 20핀을 아두이노의 2번)
[image]
3. 파워 서플라이의 4핀 FDD 전원 커넥터와 각 FDD의 전원부를 연결한다. 2개 이상의 FDD는 4핀 보조전원 커넥터에 FDD를 추가로 연결할 수 있는 커넥터를 연결하여 전원부를 연결하면 된다. 2번째 FDD부터 최대 6번째 FDD도 위와 같이 연결하면 된다. 맨 마지막에 파워 서플라이의 전원을 켜고 아두이노를 컴퓨터에 연결하면 하드웨어의 구성이 완성된다.
4. 아두이노 소프트웨어를 운영체제에 맞게 설치한다.
5. Timer1을 다운로드한 뒤 Documents/Arduino/libraries 에 TimerOne 폴더로 압축해제한다. 경로는 보통 Documents/Arduino/libraries/TimerOne 로 되어있을 것이다.
6. MoppyArduino를 다운로드한 뒤 압축을 해제하고 폴더 안의 Moppy.ino를 더블클릭해 아두이노 소프트웨어로 소스를 불러온다.
7. 컴퓨터에 아두이노를 연결한 후, (→) 버튼(업로드)을 클릭하면 Moppy 소스가 아두이노로 컴파일되어 저장된다.
업로드가 완료되면 FDD에서 테스트용 소리가 날 것이다.
8. MoppyControlGUI를 다운로드받아 압축 해제한 뒤, 내부의 bin폴더 안의 MoppyControlGUI.bat를 실행한다.
만약 실행되지 않는다면 Java를 설치한 뒤 다시 해보자.
9. 제대로 실행되었다면 Moppy Control이라는 JAVA창이 뜰 것이고 우측 Network Bridges에서 아두이노가 연결된 COM포트를 선택하고 Load File을 눌러 다운로드받은 MIDI파일을 불러온다. 점 3개가 찍혀있는 모양의 재생버튼을 누르면 Moppy가 연주될 것이다.
4. Moppy 전문 업로더
유튜브에 영상을 전문적으로 올리는 유저들이 몇 있다. 재미있는건 촬영자마다 플로피디스크 드라이브의 배치스타일이 다르다. 몇몇은 배치된것만 보면 '아 누구거네'할 수 있을 정도다.
- Arganalth : 6개의 FDD와 2개의 HDD를 알루미늄 가방에 붙여놓고 촬영한다. 이전에는 그냥 한데 널브러지게 해놓고 촬영했었다.
- Gigawipf : 14개의 FDD와 1개의 HDD를 박스에 넣어 촬영한다.
- Iron LongJohn : 6개의 FDD와 2개의 HDD로 연주한 것을 촬영한다. 영상의 갯수는 적은 편이다.
- Mitch Sandoe : 한 나무칸에 8개씩 2쌍으로 FDD를 넣어서 촬영한다.
- MrSolidSnake745 : 드라이브를 2열로 각잡아서 나눠놓고, 뒤에 모니터로 관련된 영상을 띄워놓고 촬영한다.
- Sammy1Am : 앞서 밝혔지만, Moppy를 쉽게 만들 수 있게 해주었다. 4개의 드라이브를 썼을 때는 그냥 붙여두거나 살짝 겹춰 뒀었으며, 현재는 8개의 드라이브를 타원형으로 배치하고 자잘한 소품을 둔 형태로 둔다. 사실 Moppy 라는 축약어도 이분이 명명한 것. 그전에는 Musical Floppy Drives 혹은 Floppy Music 이라고 불리며 현재도 이쪽이 더 많이 쓰인다.
- Techdisk : 8개의 FDD를 2단의 제단처럼 쌓아서 연주한 것을 촬영한다. 8/16비트나 게임 배경음악을 주제로 다룬다.
- Paweł Zadrożniak : 폴란드 출신 공돌이. 이름은 "파베우 자드로즈니악" 정도로 발음하면 좋다. 이 분야의 원조이자 본좌. 2011년 FDD 2개로 임페리얼 마치를 연주하는 기상천외한 동영상을 올리며 이 분야를 개척한 양반 되시겠다. 그 후 5년 가까이 잠수를 타다가 2016년 무려 64개의 FDD와 8개의 HDD, 2개의 스캐너로 구성된 크고 아름다운 시스템인 "The Floppotron 2.0"을 선보인 것을 시작으로 활발히 활동 중이다. 시스템의 스케일에 있어서는 그야말로 Moppy의 끝판왕. 여기에 2018년 11월에는 모뎀 까지 추가하여서 과장 좀 보태 오케스트라급의 연출을 보여준다. 스캐너로 기타 솔로를 연주하는 수준에 이르러 있다.
[image]
이외에도 많다. Floppy Drive Music 으로 검색해보자.[1] 국내의 한 Moppy 제작자는 중고 FDD를 수백개 이상 판매하는 곳에 문의했을 때 조건에 만족하는 FDD가 손에 꼽을 정도로 적었다고 한다.[2] 일부 모델은 Moppy로 사용할 수 없는 경우도 있으니 필히 확인해야 한다. 국내에선 홀수 핀이 없는 경우가 더 많다.[3] 다른 FDD와 달리 헤더가 없음에도 연주가 된다.[4] 꼭 아두이노일 필요는 없다. 능력이 되는 선에서 적절한 개발자보드만 있으면 충분히 자작 악기를 만들수 있다. 단지 여기서 설명하는 대로 만들려면 아두이노가 필요할 뿐이다.[5] 혹은 철사+전기테이프도 괜찮지만, 특히 쇼트 등에 유의해야하니 노출이 되지 않도록 잘 감아둬야 한다.[6] Sammy1Am은 유튜브 자막으로 크나큰 실수를 저질렀다고 인정하며 수정된 내용을 덧붙였지만, 잘못 보고 배운 사람들이 틀린 그림 설명까지 그대로 배껴서 제작법을 올려놓았다. 실제로 만들어본 사람이라면 여기서 시행착오를 겪고 잘못되었다는 것을 깨달았을 것이다.[7] 아두이노의 전원과 FDD 전원을 분리해서 쓰는경우 FDD 인터페이스 핀중 GND 핀을 아두이노쪽에 연결 안하면 동작이 안되거나 신호가 올바르게 가지 않아 오작동 하는 경우가 있다.