-- | Constants
module Csound.Dynamic.Const
  ( controlOpcodes
  , audioOpcodes
  ) where

import Data.HashSet (HashSet)
import Data.HashSet qualified as HashSet
import Data.Text

-- | Envelope generators are Kr by default
controlOpcodes :: HashSet Text
controlOpcodes :: HashSet Text
controlOpcodes =
  [Text] -> HashSet Text
forall a. (Eq a, Hashable a) => [a] -> HashSet a
HashSet.fromList
    [ Text
"adsr"
    , Text
"madsr"
    , Text
"xadsr"
    , Text
"linen"
    , Text
"linenr"
    , Text
"envlpx"
    , Text
"envlpxr"
    , Text
"expon"
    , Text
"expseg"
    , Text
"expsegr"
    , Text
"jspline"
    , Text
"line"
    , Text
"linseg"
    , Text
"linsegr"
    , Text
"rspline"
    , Text
"transeg"
    , Text
"bpf"
    , Text
"bpfcos"
    ]

-- | Oscillators and table access are Ar by default
audioOpcodes :: HashSet Text
audioOpcodes :: HashSet Text
audioOpcodes =
  [Text] -> HashSet Text
forall a. (Eq a, Hashable a) => [a] -> HashSet a
HashSet.fromList
    [ Text
"oscil"
    , Text
"oscili"
    , Text
"oscil3"
    , Text
"poscil"
    , Text
"poscil3"
    , Text
"oscilikt"
    , Text
"table"
    , Text
"tablei"
    , Text
"table3"
    , Text
"tab"
    , Text
"tabw"
    ]