|
@@ -5,8 +5,8 @@ import qualified Data.Sequence as S
|
|
|
import Data.Text (Text)
|
|
|
|
|
|
data Instrument = Instrument
|
|
|
- { instrSource :: Oscillator }
|
|
|
- deriving (Eq, Show)
|
|
|
+ { _instrSource :: Oscillator
|
|
|
+ } deriving (Eq, Show)
|
|
|
|
|
|
newtype InstrRef = InstrRef { fromInstrRef :: Int }
|
|
|
deriving (Eq, Show)
|
|
@@ -17,15 +17,27 @@ data Oscillator
|
|
|
deriving (Eq, Show)
|
|
|
|
|
|
data Note = Note
|
|
|
- { noteCents :: Double
|
|
|
- , noteAppearance :: Text
|
|
|
+ { _noteCents :: Double
|
|
|
+ , _noteAppearance :: Text
|
|
|
} deriving (Eq, Show)
|
|
|
|
|
|
newtype NoteRef = NoteRef { fromNoteRef :: Int }
|
|
|
deriving (Eq, Show)
|
|
|
|
|
|
data Scale = Scale
|
|
|
- { scaleName :: Text
|
|
|
- , scaleTotalCents :: Double
|
|
|
- , scaleNotes :: Seq Note
|
|
|
+ { _scaleName :: Text
|
|
|
+ , _scaleTotalCents :: Double
|
|
|
+ , _scaleNotes :: Seq Note
|
|
|
+ } deriving (Eq, Show)
|
|
|
+
|
|
|
+data Event = Event
|
|
|
+ deriving (Eq, Show)
|
|
|
+
|
|
|
+data Track = Track
|
|
|
+ {
|
|
|
+ } deriving (Eq, Show)
|
|
|
+
|
|
|
+data Song = Song
|
|
|
+ { _songScale :: Scale
|
|
|
+ , _songTracks :: Seq Track
|
|
|
} deriving (Eq, Show)
|