tcalculus-1.0.0: A DSL prototype for structured realtime/reactive functional programing

Copyright(c) Jaime Arias, David Janin, 2015
Licensesee the LICENSE file in the distribution
Maintainerjaime.arias@inria.fr
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

TScore.Widgets

Description

This module provides several widgets to build Musical User Interfaces

Synopsis

Documentation

getInterval :: UISF () Interval Source #

Widget that asks to the user for the interval of the transposition

getTone :: UISF () Tone Source #

Widget that shows a checkbox list for choosing a tone

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

timelineWidget :: UISF (SEvent (), SEvent ()) () Source #

Widget that shows the time-line

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 #

mergeStream :: UISF (Maybe [a], Maybe [a]) (Maybe [a]) Source #

matrixToButtonMatrix :: (Int, Int) -> [[(String, a)]] -> UISF () (Maybe [Event a]) Source #

Produce a matrix of stickyButtons of the dimension given as first parameter this arrow produce a well parenthised stream of pressed buttons

filterEventA :: Ord a => UISF (Maybe [Event a]) (Maybe [Event a]) Source #

Arrow that ensure that a stream of events is well parethesized