alga-0.2.1: Algorithmic automation for various DAWs

Safe HaskellNone
LanguageHaskell2010

Alga.Translation.Base

Synopsis

Documentation

type AlgaBackend = AutoMap -> IOSArrow XmlTree XmlTree Source

ALGA backend is a function that takes AutoMap and returns arrow that patches XML configuration accordingly for given DAW.

type AutoMap = Map String AutoBatch Source

Collection of automation parameters per track. Tracks are identified by names.

type AutoBatch = Map AutoType AutoTrack Source

Collection of various aspects of automation track.

data AutoType Source

Aspect of automation, it includes simple volume or stereo panorama controls as well as any arbitrary parameters supported by given instrument or effect.

Constructors

Volume

Volume control

Mute

“Mute” control

IGain

Input gain control

Pan

Stereo panorama control

InsertSlot Natural Natural

Index of insert slot/index of parameter

SendSlot Natural Natural

Index of send slot/index of parameter

SynthParam Natural

Synth parameter index

data AutoTrack Source

Automation track is combination of control values and delta times between them.

Constructors

AutoTrack 

Fields

atVal :: [Double]

Value of parameter

atDur :: [Double]

Delta time (duration of that “point”)

nullTrack :: AutoTrack -> Bool Source

Check if given track is empty.

totalDur :: AutoTrack -> Double Source

Calculate total duration of automation track.

topDefs :: HasEnv m => m [String] Source

Generate collection of “top-level” definitions (i.e. definitions that are directly represent aspects of automation track, not auxiliary parts in other definitions).

patchAuto Source

Arguments

:: (MonadIO m, HasEnv m) 
=> Natural

Seed for random number generator

-> Double

Duration as number of whole notes

-> Path Abs File

Path to file to patch

-> AlgaBackend

Backed (arrow that will patch XML)

-> m Int

Exit code

Patch XML document containing automation settings for given DAW.