Esempio n. 1
0
        /// <summary>
        /// 음표를 생성하여 악보에 추가합니다.
        /// </summary>
        /// <param name="pitch">음 높이(0 ~ 127)를 반환하는 함수. 예) () => 60: C4 / () => 64: E4 / () => 67: G4 / () => 72: C5</param>
        /// <param name="velocity">음 세기(1 ~ 127).</param>
        /// <param name="rhythm">음표의 길이(1 이상). 4/4박에서 한 마디를 64등분한 길이를 기준으로 합니다. 예) 64: 온음표 / 16: 4분음표 / 4: 16분음표 / 1: 64분음표</param>
        /// <param name="measure">음표가 위치한 마디 번호(0부터 시작).</param>
        /// <param name="position">음표의 마디 내 위치(0 ~ 63). 4/4박에서 한 마디를 64등분한 길이를 기준으로 합니다.</param>
        /// <param name="staff">음표가 놓일 Staff 번호(0 ~ 15). 9번 Staff는 타악기 전용 Staff입니다.</param>
        public void AddNote(Note.PitchGenerator pitch, int velocity, int rhythm, long measure, int position, int staff = 0)
        {
            Note note = new Note(pitch, velocity, rhythm, measure, position, staff);

            score.Add(note);

            if (length < rhythm + measure * 64 + position)
            {
                length = rhythm + measure * 64 + position;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 음표를 생성하여 악보에 추가합니다.
        /// 음 세기는 현재 악기 테마의 반주 악기 음량으로 자동 설정됩니다.
        /// 반주를 만들 때에만 사용할 수 있습니다.
        /// </summary>
        /// <param name="pitch">음 높이(0 ~ 127)를 반환하는 함수. 예) () => 60: C4 / () => 64: E4 / () => 67: G4 / () => 72: C5</param>
        /// <param name="rhythm">음표의 길이(1 이상). 4/4박에서 한 마디를 64등분한 길이를 기준으로 합니다. 예) 64: 온음표 / 16: 4분음표 / 4: 16분음표 / 1: 64분음표</param>
        /// <param name="measure">음표가 위치한 마디 번호(0부터 시작).</param>
        /// <param name="position">음표의 마디 내 위치(0 ~ 63). 4/4박에서 한 마디를 64등분한 길이를 기준으로 합니다.</param>
        /// <param name="staff">음표가 놓일 Staff 번호(0 ~ 15). 9번 Staff는 타악기 전용 Staff입니다.</param>
        public void AddNoteInAccompaniment(Note.PitchGenerator pitch, int rhythm, long measure, int position, int staff)
        {
            // Note note = new Note(pitch, SFXTheme.CurrentSFXTheme.Instruments[staff].accompanimentVolume, rhythm, measure, position, staff);
            Note note = new Note(pitch, 127, rhythm, measure, position, staff);

            score.Add(note);

            if (length < rhythm + measure * 64 + position)
            {
                length = rhythm + measure * 64 + position;
            }
        }