mirror of
https://github.com/9x/sheetmusictrainer.git
synced 2026-11-03 22:03:54 +01:00
Arpeggio material for Phrase Mode (variant 1)
- music/arpeggioGenerator.ts: diatonic triads (I-vii*) built from the selected key/mode via the shared degree spelling; patterns up / down / up-down / 1-2-3-5; one or two octaves (cycle ends on the octave; two- octave path continues from the turning root). Quarter-note rhythm with final note extended to fill the bar; title is labeled 'Arpeggio - <tonic> <degree> (pattern, coverage)'. - Settings: PhraseMaterial 'arpeggio' + arpeggioDegree/Pattern/Coverage (defaults I / up / one-octave). - PhraseTrainer: material option 'Arpeggios (generated)' + Chord/Pattern/ Coverage/Meter selects; key/mode reuse the shared Target key controls. - Tests: 9 arpeggio cases (170 total).
This commit is contained in:
@@ -39,7 +39,7 @@ export interface RhythmSettings {
|
||||
volume: number;
|
||||
}
|
||||
|
||||
export type PhraseMaterial = 'melody' | 'scale' | 'library' | 'import';
|
||||
export type PhraseMaterial = 'melody' | 'scale' | 'arpeggio' | 'library' | 'import';
|
||||
export type PhrasePace = 'step' | 'tempo';
|
||||
|
||||
export interface PhraseSettings {
|
||||
@@ -53,6 +53,10 @@ export interface PhraseSettings {
|
||||
rhythmLevel: 1 | 2 | 3;
|
||||
scaleCoverage: 'one-octave' | 'two-octave' | 'position';
|
||||
scaleDirection: 'up' | 'down' | 'updown';
|
||||
/** Arpeggio settings (material = 'arpeggio'). */
|
||||
arpeggioDegree: string; // ArpeggioDegree
|
||||
arpeggioPattern: 'up' | 'down' | 'updown' | '1235';
|
||||
arpeggioCoverage: 'one-octave' | 'two-octave';
|
||||
/** Phrase-local fret window (guitar/bass) — overrides the note set. */
|
||||
fretWindowEnabled: boolean;
|
||||
fretMin: number;
|
||||
@@ -79,6 +83,9 @@ export const DEFAULT_PHRASE_SETTINGS: PhraseSettings = {
|
||||
rhythmLevel: 1,
|
||||
scaleCoverage: 'one-octave',
|
||||
scaleDirection: 'updown',
|
||||
arpeggioDegree: 'I',
|
||||
arpeggioPattern: 'up',
|
||||
arpeggioCoverage: 'one-octave',
|
||||
fretWindowEnabled: false,
|
||||
fretMin: 0,
|
||||
fretMax: 4,
|
||||
|
||||
Reference in New Issue
Block a user