코드 진행을 디그리 네임(도수 표기)으로 변환하여 표시하는 앱 제작
개요
어떤 응용 프로그램입니까?
chord2degree
악곡의 코드 진행을 디그리네임(도수 표기)로 변환해 표시하는 어플리케이션입니다.
GitHub 리포지토리
왜 만든거야?
어떤 제작인가?
데이터 설계
악보의 데이터 구조는 다음과 같습니다.
// score[ part{id, name, bars[[note, note],[note, note, ...] ...]} ...]
const Score = [
{
id, // partのid
name, // partの名前(AメロやBメロ等)
// パートの中の小節
bars: [[note, note], [note, note, ...] ...]
},
...
]
// 具体例
const Score = [
{
id: 1,
name: 'A',
bars: [
['Em', 'D'],
['C', 'G'],
['C', 'G'],
['A#dim', 'B'],
['Em', 'D'],
['C', 'G'],
['C', 'G'],
['D', 'G', 'N.C']
]
}
]
컴포넌트 설계
주요 구성 요소는 다음 네 가지입니다. (악보·파트·소절·음표입니다.)
주음(tonic)과 디그리네임(degreeName)은 각 컴포넌트가 보유하도록 했습니다.
주음은 각 컴포넌트(Note 이외)가 데이터 객체로 관리합니다.
디그리 네임은, Bar(소절)가 산출 프로퍼티로 관리합니다.
빈도 표기로 변환
코드 표기를 도수 표기로 변환하는 것은 음악 이론의 라이브러리인 tonal을 사용했습니다.
tonal에는 코드 진행 외에도 음표나 스케일 등의 음악 이론에 관한 모듈이 있습니다.
이번은 progression 를 사용했습니다.
import { Progression } from "@tonaljs/tonal";
Progression.toRomanNumerals("C", ["CMaj7", "Dm7", "G7"]);
// => "IMaj7", "IIm7", "V7"]
기타
그 외에는 이하와 같은 기술을 사용했습니다.
스마트폰에서는 레이아웃이 무너집니다. 또한 인쇄시에도 레이아웃이 무너집니다.
만약 인쇄되는 경우는 Awesome Screenshot(chrome 확장 기능) 등을 사용해 주세요.
Reference
이 문제에 관하여(코드 진행을 디그리 네임(도수 표기)으로 변환하여 표시하는 앱 제작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tyokkaku00/items/754e4ee297daec076927텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)