From c24c9b7fb940793ef75fa61d00abb31c3d56f94b Mon Sep 17 00:00:00 2001 From: William Carroll Date: Sat, 11 Apr 2020 17:46:46 +0100 Subject: Support BPM for tempo Using BPM as the unit for tempo. TODO: Consider a higher-fidelity way to calculate BPM, although I'm not sure this is critical functionality; an interesting problem is just seducing me, and this app would be better off resisting the temptation. --- website/sandbox/chord-drill-sergeant/src/Tempo.elm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 website/sandbox/chord-drill-sergeant/src/Tempo.elm (limited to 'website/sandbox/chord-drill-sergeant/src/Tempo.elm') diff --git a/website/sandbox/chord-drill-sergeant/src/Tempo.elm b/website/sandbox/chord-drill-sergeant/src/Tempo.elm new file mode 100644 index 000000000000..de4fa32795f9 --- /dev/null +++ b/website/sandbox/chord-drill-sergeant/src/Tempo.elm @@ -0,0 +1,22 @@ +module Tempo exposing (render) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) + +type alias Props msg = + { tempo : Int + , handleIncrease : msg + , handleDecrease : msg + , handleInput : String -> msg + } + +render : Props msg -> Html msg +render {tempo, handleIncrease, handleDecrease, handleInput} = + div [] [ p [] [ text ((String.fromInt tempo) ++ " BPM") ] + , button [ onClick handleDecrease ] [ text "Slower" ] + , input [ onInput handleInput + , placeholder "Set tempo..." + ] [] + , button [ onClick handleIncrease ] [ text "Faster" ] + ] -- cgit 1.4.1