본문 바로가기

분류 전체보기15

[easyscore] 웹에서 악보 그리기 easyscore은 매우 쉽고 간단하게 악보를 그릴 수 있는 모듈이다. 사용법은 easyscore tutorial에 잘 설명되어 있다. 다만 이 모듈에는 치명적인 문제점이 있는데, 생성자에서 mode가 STRICT로 설정된다는 것이다. 그 결과 strict mode를 풀어주지 않으면 음표를 더도 덜도 말고 딱 4개만 그릴 수 있다. 도대체 왜 이렇게 만든 것인지는 모르겠으나 악보에 음표가 딱 4개만 있는 것은 말이 안되는 일이니까 우리는 이 mode를 변경해야 한다. 기존에 easyscore tutorial에 소개된 사용법은 다음과 같다. var vf = new Vex.Flow.Factory({renderer: {elementId: 'boo'}}); var score = vf.EasyScore(); va.. 2021. 8. 6.
[vexflow] 웹에서 악보그리기 웹에서 간단하게 악보를 그려주는 javascript 오픈소스 라이브러리다. [github] https://github.com/0xfe/vexflow GitHub - 0xfe/vexflow: A JavaScript library for rendering music notation and guitar tablature. A JavaScript library for rendering music notation and guitar tablature. - GitHub - 0xfe/vexflow: A JavaScript library for rendering music notation and guitar tablature. github.com [documentation] https://www.vexflow.com/.. 2021. 8. 6.
[madmom] 피아노 음원을 MIDI note로 변환하기 (python) 시간이 별로 없는 프로젝트였기 때문에 1차적 목표를 피아노 소리를 MIDI note로 따내는 것으로 설정했다. 음원은 아이폰/아이패드의 Garage Band 앱으로 피아노를 연주해서 m4a파일을 얻었다. 비트와 음의 길이를 모두 무시하고 음만 먼저 따내는 일에는 madmom.features.notes 안에있는 함수들만을 이용하면 충분했다. madmom.features.notes — madmom 0.17.dev0 documentation Track the notes with an HMM based on a model of attack, decay, sustain, release (ADSR) envelopes. Create a CNNPianoNoteProcessor and pass a file through.. 2021. 8. 6.
[madmom] pip 안 쓰고 수동으로 최신버전 설치하기 (python) 필자는 pycharm을 이용하기 때문에 pycharm을 기준으로 설명하겠다. 매우 쉽다. 1. 원하는 폴더에 venv를 만들고 터미널을 연다. 이때 컴퓨터에 python 버전이 2개 이상 설치되어 있지는 않은지 잘 살펴본다. 필자는 이 프로젝트를 할 당시 python 3.8과 3.9가 모두 설치되어 있어서 한동안 혼란을 겪다가 3.8을 지우고 평화를 되찾았다. 2. document의 installation 페이지에 들어가서 prerequisites을 설치한다. [document > installation]https://madmom.readthedocs.io/en/latest/installation.html 웬만하면 저 순서대로 설치하길 바란다. 필자의 경우 pyaudio와 pyfftw가 설치되지 않고 에.. 2021. 8. 6.
음원 분석 쉽게 시작하기 (madmom python) 서론 필자는 몰입캠프 3주차 주제로 노래를 들려주면 악보를 그려주는 프로그램을 만들어 보기로 했다. 물론 음악에 대한 지식도 거의 없으며 비슷한 프로젝트를 한 적도 없었기에 그냥 무작정 구글에 '음원 분석 라이브러리'를 검색해보았다. 대부분의 검색 결과에서 librosa 라는 라이브러리를 추천했다. 하지만 이 라이브러리를 제대로 다루려면 조금더 음악적 지식이 많이 필요해보였고 6일만에 프로젝트를 완성해서 발표 해야하는 몰입캠프 특성상 이렇게 raw한 라이브러리를 쓰려니 굉장히 막막했다. 그러던 중 친구의 추천으로 madmom 이라는 python 라이브러리를 알게되었다. madmom 라이브러리 다음의 2가지를 참고했다. [documentation]https://madmom.readthedocs.io/en/.. 2021. 8. 6.
(2021 여름) 몰입캠프 1주차 시작하기 우선 1주차 과제는 안드로이드 앱 만들기, 2주차 과제는 서버/DB 구축하기, 3주차 이후로는 자유 주제라고 한다. 카이스트에 도착 하자마자 2인1조로 팀을 배정해주고는 시작하시면 돼요~ 그래서 오호 오호 네??? ㅋㅋㅋㅋ 갑자기 시작하라고 해서 굉장히 당황스러웠다. 하지만 이런 상황에서도 헤쳐나가는 것이 개발자의 덕목이지! 나는 자주 이야기 했듯이 평소에 계획을 전체적으로 세우고 프로젝트 설계를 다 해본 뒤 코드를 짜는 편이다. 심지어 그저께의 나는 액티비티라는 것이 있는지도 몰랐어서 무얼 구글링 해야할 지 키워드도 아예 없는 상태였고 깃으로 협업해 본 적도 없었기에 팀원분께 우리 계획을 세워보자고 말했으나 팀원분은 일단 짜면서 생각하시는 분이셨다.. 그래도 절충을 해야하지 않겠냐고 이야기를 해서 결과.. 2021. 8. 5.