Deluge Firmware
1.3.0
Build date: 2026.07.29
Toggle main menu visibility
Loading...
Searching...
No Matches
scale_mapper.h
1
#pragma once
2
3
#include "model/scale/note_set.h"
4
#include "model/scale/scale_change.h"
5
#include "util/const_functions.h"
6
7
#include <cstdint>
8
9
#if IN_UNIT_TESTS
10
#include <iostream>
11
#endif
12
13
class
ScaleMapper
{
14
public
:
23
bool
computeChangeFrom
(
NoteSet
notes,
NoteSet
sourceScale,
NoteSet
targetScale,
ScaleChange
& changes);
24
25
private
:
28
NoteSet
lastTransitionNotes
;
34
NoteSet
transitionScaleStore
[kMaxScaleSize];
35
NoteSet
initialTransitionScale(
NoteSet
sourceScale);
36
void
computeInitialChanges(
NoteSet
sourceScale,
NoteSet
initialScale,
ScaleChange
& changes);
37
void
flushTransitionScaleStore(
NoteSet
initialScale);
38
void
computeFinalChanges(
NoteSet
initialScale,
NoteSet
transitionScale,
NoteSet
targetScale,
ScaleChange
& changes);
39
NoteSet
nextTransitionScale(
NoteSet
notes,
NoteSet
transitionScale,
NoteSet
targetScale);
40
};
NoteSet
Definition
note_set.h:20
ScaleChange
Definition
scale_change.h:5
ScaleMapper
Definition
scale_mapper.h:13
ScaleMapper::lastTransitionNotes
NoteSet lastTransitionNotes
Definition
scale_mapper.h:28
ScaleMapper::computeChangeFrom
bool computeChangeFrom(NoteSet notes, NoteSet sourceScale, NoteSet targetScale, ScaleChange &changes)
Definition
scale_mapper.cpp:13
ScaleMapper::transitionScaleStore
NoteSet transitionScaleStore[kMaxScaleSize]
Definition
scale_mapper.h:34