Skip to content

Commit a914c29

Browse files
committed
Note app Clock out
1 parent 951dd50 commit a914c29

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

Applications/Note/Note.cpp

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,33 @@ void Note::ArpConfigMenu() {
982982
});
983983
arpConfigMenu.AddUIComponent(bpmNumberModifier, Point(0, 7));
984984

985+
UIButton clockOutBtn;
986+
clockOutBtn.SetSize(Dimension(1, 1));
987+
clockOutBtn.SetColorFunc([&]() -> Color {
988+
if(clockMode == CLOCK_EXTERNAL)
989+
{
990+
return Color(0xFF00FF);
991+
}
992+
else if(clockMode == CLOCK_INTERNAL_CLOCKOUT)
993+
{
994+
return Color(0xFFFFFF);
995+
}
996+
else if(clockMode == CLOCK_INTERNAL)
997+
{
998+
return Color(0xFFFFFF).Dim();
999+
}
1000+
return Color(0xFF0000);
1001+
});
1002+
clockOutBtn.SetEnableFunc([&]() -> bool { return page == ARP_BPM; });
1003+
clockOutBtn.OnPress([&]() -> void {;
1004+
if (clockMode == CLOCK_INTERNAL) {
1005+
clockMode = CLOCK_INTERNAL_CLOCKOUT;
1006+
} else {
1007+
clockMode = CLOCK_INTERNAL;
1008+
}
1009+
});
1010+
arpConfigMenu.AddUIComponent(clockOutBtn, Point(7, 6));
1011+
9851012
// Swing selector
9861013
TimedDisplay swingTextDisplay(500);
9871014
swingTextDisplay.SetDimension(Dimension(8, 4));
@@ -1384,9 +1411,13 @@ void Note::ArpConfigMenu() {
13841411
arpConfigMenu.Start();
13851412
}
13861413

1387-
void Note::Tick() {
1414+
void Note::Tick() {
13881415
if(midiClock.Tick())
13891416
{
1417+
if(clockMode == CLOCK_INTERNAL_CLOCKOUT && midiClock.TickCount() % (EFFECT_TPQN / 24) == 0)
1418+
{
1419+
MatrixOS::MIDI::Send(MidiPacket::Clock(), MIDI_PORT_ALL);
1420+
}
13901421
runtimes[0].Tick();
13911422
runtimes[1].Tick();
13921423
}

Applications/Note/Note.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#define NOTE_CONFIGS_HASH StaticHash("203 Systems-Note-NotePadConfigs")
1313
#define CUSTOM_SCALES_HASH StaticHash("203 Systems-Note-CustomScales")
1414

15-
enum MidiClockMode {
15+
enum MidiClockMode : uint8_t {
1616
CLOCK_INTERNAL,
1717
CLOCK_INTERNAL_CLOCKOUT, // Send clock to external devices
1818
CLOCK_EXTERNAL
@@ -35,6 +35,7 @@ class Note : public Application {
3535
CreateSavedVar("Note", splitView, ESpiltView, SINGLE_VIEW);
3636
CreateSavedVar("Note", controlBar, bool, false);
3737
CreateSavedVar("Note", bpm, uint16_t, 120);
38+
CreateSavedVar("Note", clockMode, MidiClockMode, CLOCK_INTERNAL);
3839

3940
MidiClock midiClock = MidiClock(bpm, EFFECT_TPQN);
4041

0 commit comments

Comments
 (0)