Karya, built on 2022-03-21T01:30:44 (patch 89d1651424c35e564138d93424a157ff87457245)
Safe HaskellSafe-Inferred

Instrument.Browser

Description

The instrument browser is a standalone program to browse the instrument database.

Instruments are in the left pane, and the right pane has information on the selected instrument. A search box above the instrument list accepts a simple query language, documneted at Search.Query.

If you double click on an instrument name, choose_instrument is called on the instrument.

The instrument info is basically just a pretty-printed version of the contents of Patch.Patch.

Some parts of the instrument db may be generated offline, by Instrument.MakeDb.

Synopsis

Documentation

select_command :: Text Source #

Send this to the REPL when on a double-click on an instrument.

data Flag Source #

Instances

Instances details
Show Flag Source # 
Instance details

Defined in Instrument.Browser

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

Eq Flag Source # 
Instance details

Defined in Instrument.Browser

Methods

(==) :: Flag -> Flag -> Bool #

(/=) :: Flag -> Flag -> Bool #

main :: IO () Source #

data Db Source #

Bundle a Db along with its search index.

Constructors

Db 

data State Source #

Constructors

State 

Instances

Instances details
Show State Source # 
Instance details

Defined in Instrument.Browser

Methods

showsPrec :: Int -> State -> ShowS #

show :: State -> String #

showList :: [State] -> ShowS #

show_info :: Fltk.Channel -> BrowserC.Window -> Db -> InstT.Qualified -> IO () Source #

Look up the instrument, generate a info sheet on it, and send to the UI.

choose_instrument :: InstT.Qualified -> IO () Source #

Send the chosen instrument to the sequencer. This will send change_instrument "synth/inst" to the REPL port.

process_query :: Fltk.Channel -> BrowserC.Window -> Db -> [InstT.Qualified] -> Text -> IO [InstT.Qualified] Source #

Find instruments that match the query, and update the UI incrementally.