Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Practice metronome #657

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open

Practice metronome #657

wants to merge 27 commits into from

Conversation

N4k4
Copy link
Contributor

@N4k4 N4k4 commented Nov 8, 2021

新機能の提案です。
「プラクティスモードにおけるメトロノーム機能」

概要

beatorajaに実装されているプラクティスモードでメトロノームを再生しながら練習をする機能です。

機能説明

プラクティスモードで選択できる設定に

  • METRONOME
  • METORNOME VOLUME
    を追加しました。METRONOMEをtrueにするとメトロノームが鳴ります。
    METORNOME VOLUMEで設定した音量でメトロノームが鳴ります。デフォルトは30としています。

音源について

強拍はm-down.wav、弱拍はm-up.wavとしています。defaultsoundディレクトリにテストで利用した音源を格納しています。そのほかの効果音と同様に、soundパスで設定したディレクトリの効果音セット内に同名の音源が存在する場合はそちらの音源の利用が優先されます。

バグ修正

本機能を実装するにあたり、バグの修正を行いました。
メトロノーム機能が正常に動くように行った修正になります。
src/bms/player/beatoraja/play/RhythmTimerProcessor.javaでの変更がそれに該当します。

小節のリセット

プラクティスモードで、

  • 曲を途中で終了させて再度最初から再生を始めた場合に、途中終了したところまでメトロノームが鳴らない(同様に、PMSについてノーツサイズが大きくならない)
  • プラクティスモードで曲を途中から再生した際に、再生を始めた時にメトロノームの音が短時間に何回も再生される
    問題がありました。
    Metronomeを鳴らすにあたって参照しているsectionsquarterNoteがプラクティスモードで練習を開始する度に適切なタイミングでリセットされていなかったためです。
    そこで、sectionsquarterNoteを、練習開始時にセットしなおすような処理(setAtStart)を追加しました。(src/bms/player/beatoraja/play/BMSPlayer.java617行目にて呼び出し)

除算方法の修正

FREQUENCYを変更した際にメトロノームが正常に動作しない問題を修正するために、freqに関する演算を修正しました。
int型どうしの除算による誤差が原因だったため、括弧を削除して演算の順序を変更しました。

以上、新機能の提案となります。導入のご検討、ご意見のほどよろしくお願いいたします。

PaulHowell and others added 26 commits October 11, 2021 14:53
…-tokyo.ac.jp:islands/beatoraja_eeic into PracticeMetronome
@N4k4 N4k4 marked this pull request as ready for review November 8, 2021 13:14
@N4k4 N4k4 changed the title WIP:Practice metronome Practice metronome Nov 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants