Copyright | (c) Jaime Arias, David Janin, 2015 |
---|---|
License | see the LICENSE file in the distribution |
Maintainer | jaime.arias@inria.fr |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
This module provides several widgets to build Musical User Interfaces
- getInterval :: UISF () Interval
- getTone :: UISF () Tone
- getWindow :: UISF () (MidiPitch, MidiPitch)
- bpmWidget :: UISF () BPM
- timelineWidget :: UISF (SEvent (), SEvent ()) ()
- frequencyDivider :: UISF (Integer, SEvent ()) (SEvent ())
- functionWidget :: Show b => [(a, b)] -> UISF () (Maybe a)
- entryRadioWidget :: String -> [(a, String)] -> UISF () (SEvent [Event a])
- startStopEventWidget :: UISF () (Maybe (Event e))
- run_1input_1output :: (Ord iv, Ord ov, Show iv, Show ov) => UISF (Maybe [Event ov]) (BPM, Maybe [Event iv], Maybe (Event iv)) -> (RTile Quarters iv iv -> RTile Quarters iv ov) -> UISF () ()
- run_0input_1output :: (Ord ov, Show ov) => UISF (Maybe [Event ov]) (BPM, Maybe (Event ())) -> (RTile Quarters () () -> RTile Quarters () ov) -> UISF () ()
- run_2input_1output :: (Ord iva, Ord ivb, Ord ova, Show iva, Show ivb, Show ova) => UISF (Maybe [Event ova]) (BPM, Maybe [Event iva], Maybe [Event ivb], Maybe (Event (Either iva ivb))) -> (RTile Quarters (Either iva ivb) (Either iva ivb) -> RTile Quarters (Either iva ivb) ova) -> UISF () ()
- run_2input_2output :: (Ord iva, Ord ivb, Ord ova, Ord ovb, Show iva, Show ivb, Show ova, Show ovb) => UISF (Maybe [Event ova], Maybe [Event ovb]) (BPM, Maybe [Event iva], Maybe [Event ivb], Maybe (Event (Either iva ivb))) -> (RTile Quarters (Either iva ivb) (Either iva ivb) -> RTile Quarters (Either iva ivb) (Either ova ovb)) -> UISF () ()
- mergeStream :: UISF (Maybe [a], Maybe [a]) (Maybe [a])
- eventize :: v -> UISF Bool [Event v]
- matrixToButtonMatrix :: (Int, Int) -> [[(String, a)]] -> UISF () (Maybe [Event a])
- filterEventA :: Ord a => UISF (Maybe [Event a]) (Maybe [Event a])
Documentation
getInterval :: UISF () Interval Source #
Widget that asks to the user for the interval of the transposition
getWindow :: UISF () (MidiPitch, MidiPitch) Source #
Widget that asks to the user for two pitches in order to define a window in which the transposition will be applied
bpmWidget :: UISF () BPM Source #
Widget that asks to the user for the tempo of the application. Moreover, it aks to the user for a number to divide the tempo
frequencyDivider :: UISF (Integer, SEvent ()) (SEvent ()) Source #
Signal function that takes a tick signal and divides its frequency by a number of ticks
functionWidget :: Show b => [(a, b)] -> UISF () (Maybe a) Source #
Widget that sends a function as an event each time it changes
entryRadioWidget :: String -> [(a, String)] -> UISF () (SEvent [Event a]) Source #
Widget that sends a on/off stream of its value
startStopEventWidget :: UISF () (Maybe (Event e)) Source #
Make a widget that add start/stop event in stream
run_1input_1output :: (Ord iv, Ord ov, Show iv, Show ov) => UISF (Maybe [Event ov]) (BPM, Maybe [Event iv], Maybe (Event iv)) -> (RTile Quarters iv iv -> RTile Quarters iv ov) -> UISF () () Source #
run_0input_1output :: (Ord ov, Show ov) => UISF (Maybe [Event ov]) (BPM, Maybe (Event ())) -> (RTile Quarters () () -> RTile Quarters () ov) -> UISF () () Source #
run_2input_1output :: (Ord iva, Ord ivb, Ord ova, Show iva, Show ivb, Show ova) => UISF (Maybe [Event ova]) (BPM, Maybe [Event iva], Maybe [Event ivb], Maybe (Event (Either iva ivb))) -> (RTile Quarters (Either iva ivb) (Either iva ivb) -> RTile Quarters (Either iva ivb) ova) -> UISF () () Source #
run_2input_2output :: (Ord iva, Ord ivb, Ord ova, Ord ovb, Show iva, Show ivb, Show ova, Show ovb) => UISF (Maybe [Event ova], Maybe [Event ovb]) (BPM, Maybe [Event iva], Maybe [Event ivb], Maybe (Event (Either iva ivb))) -> (RTile Quarters (Either iva ivb) (Either iva ivb) -> RTile Quarters (Either iva ivb) (Either ova ovb)) -> UISF () () Source #