• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

MIDI Chord Helper機能追加版(GOは五度圏や碁盤の「ご」。別に移動式じゃありません)


コミットメタ情報

リビジョン742d430dc69115d2d73f571a801b64089cb6fa23 (tree)
日時2022-11-15 02:14:24
作者k-hatano <kent.ruffle.mgj626@gmai...>
コミッターk-hatano

ログメッセージ

フリーエリアをミドルクリックした場合選択文字列のみコード再生、Altキーを押しながらスクロール時はランダムアルペジオ

変更サマリ

差分

--- a/src/camidion/chordhelper/ChordHelperApplet.java
+++ b/src/camidion/chordhelper/ChordHelperApplet.java
@@ -464,6 +464,20 @@ public class ChordHelperApplet extends JApplet {
464464 // 歌詞表示/コード入力フィールド
465465 (lyricDisplay = new ChordTextField(sequencerModel)).addActionListener(
466466 e -> chordMatrix.setSelectedChord(e.getActionCommand().trim().split("[ \t\r\n]")[0]));
467+ lyricDisplay.addMouseListener(
468+ new MouseAdapter(){
469+ public void mousePressed(MouseEvent e) {
470+ if (e.getButton() == MouseEvent.BUTTON2) {
471+ // テキストの一部を選択しながらミドルクリックした場合、選択箇所のみコードとして扱う
472+ if (lyricDisplay.getSelectedText() != null && lyricDisplay.getSelectedText().length() > 0) {
473+ chordMatrix.setSelectedChord(lyricDisplay.getSelectedText().trim().split("[ \t\r\n]")[0]);
474+ } else {
475+ chordMatrix.setSelectedChord(lyricDisplay.getText().trim().split("[ \t\r\n]")[0]);
476+ }
477+ }
478+ }
479+ }
480+ );
467481 Border lyricDisplayDefaultBorder = lyricDisplay.getBorder();
468482 Color lyricDisplayDefaultBgcolor = lyricDisplay.getBackground();
469483 //
--- a/src/camidion/chordhelper/chordmatrix/ChordMatrix.java
+++ b/src/camidion/chordhelper/chordmatrix/ChordMatrix.java
@@ -639,7 +639,15 @@ public class ChordMatrix extends JPanel
639639 intervals.add(Chord.Interval.MAJOR); // To cancel sus4
640640 intervals.add(Chord.Interval.SHARP5);
641641 } else
642- intervals.add(Chord.Interval.FLAT5);
642+ if (e.isAltDown() && (e.getButton() == 2)) {
643+ // Blackadder Chord
644+ intervals.add(Chord.Interval.OMIT3);
645+ intervals.add(Chord.Interval.FLAT5);
646+ intervals.add(Chord.Interval.SEVENTH);
647+ intervals.add(Chord.Interval.NINTH);
648+ } else {
649+ intervals.add(Chord.Interval.FLAT5);
650+ }
643651 }
644652 if (selectedChordLabel != null) {
645653 selectedChordLabel.setSelection(false);
@@ -781,15 +789,29 @@ public class ChordMatrix extends JPanel
781789
782790 public void mouseWheelMoved(MouseWheelEvent e) {
783791 if (selectedChord != null) {
784- if (e.getWheelRotation() > 0) { // Wheel moved down
785- if (--selectedNoteIndex < 0) {
786- selectedNoteIndex = selectedChord.numberOfNotes() - 1;
792+ if ((e.getModifiers() & ActionEvent.ALT_MASK) > 0) {
793+ // Altキーを押しながらの場合はランダム
794+ if (Math.random() < 0.5) {
795+ if (--selectedNoteIndex < 0) {
796+ selectedNoteIndex = selectedChord.numberOfNotes() - 1;
797+ }
798+ } else {
799+ if (++selectedNoteIndex >= selectedChord.numberOfNotes()) {
800+ selectedNoteIndex = 0;
801+ }
787802 }
788- } else { // Wheel moved up
789- if (++selectedNoteIndex >= selectedChord.numberOfNotes()) {
790- selectedNoteIndex = 0;
803+ } else {
804+ if (e.getWheelRotation() > 0) { // Wheel moved down
805+ if (--selectedNoteIndex < 0) {
806+ selectedNoteIndex = selectedChord.numberOfNotes() - 1;
807+ }
808+ } else { // Wheel moved up
809+ if (++selectedNoteIndex >= selectedChord.numberOfNotes()) {
810+ selectedNoteIndex = 0;
811+ }
791812 }
792813 }
814+
793815 fireChordChanged();
794816 }
795817 }