about summary refs log tree commit diff
path: root/website/sandbox/learnpianochords/src/Main.elm
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-04-19T14·32+0100
committerWilliam Carroll <wpcarro@gmail.com>2020-04-19T14·32+0100
commitd134db700f0445e1d851904145833dbf70ed48ac (patch)
treeb7e09b3d3eb5195cfce916c3016966a014ffbd54 /website/sandbox/learnpianochords/src/Main.elm
parentf92fe97aff16fa65ed8d4587b74b132811ff04ec (diff)
Support a FlashCard before showing the notes that comprise a chord
My much anticipated feature: first prompt the user for a name of a chord, then
show the user that chord.

Cascading changes:
I changed the "Tap to practice" overlayButton's opacity from 30% to 100% because
pausing when showFlashCard is True causes the two piece

TIL:
You can batch Elm Subscriptions using the Sub.batch function.

What I haven't learned yet:
How to best handle rotating screens for mobile devices (i.e. portrait
vs. landscape modes). In time...

What's left?
- Support sound
- Support a fine-tune section of the preferences
- Support tablet and web browser variants
- Ask users for the "I chord" instead of asking "C major Root position"
- More styling (of course)
Diffstat (limited to 'website/sandbox/learnpianochords/src/Main.elm')
-rw-r--r--website/sandbox/learnpianochords/src/Main.elm5
1 files changed, 4 insertions, 1 deletions
diff --git a/website/sandbox/learnpianochords/src/Main.elm b/website/sandbox/learnpianochords/src/Main.elm
index d583e3fcf9a3..b066fb2f6f92 100644
--- a/website/sandbox/learnpianochords/src/Main.elm
+++ b/website/sandbox/learnpianochords/src/Main.elm
@@ -16,7 +16,10 @@ subscriptions model =
         Sub.none
 
     else
-        Time.every (model.tempo |> Misc.bpmToMilliseconds |> toFloat) (\_ -> State.NextChord)
+        Sub.batch
+            [ Time.every (model.tempo * 2 |> Misc.bpmToMilliseconds |> toFloat) (\_ -> State.ToggleFlashCard)
+            , Time.every (model.tempo |> Misc.bpmToMilliseconds |> toFloat) (\_ -> State.NextChord)
+            ]
 
 
 view : State.Model -> Html State.Msg