Since the changes to stream/clock, tidal has become more difficult to configure.
There used to be a single config structure defined in Sound.Tidal.Config, in the currently released v1.9.5:
data Config = Config {cCtrlListen :: Bool,
cCtrlAddr :: String,
cCtrlPort :: Int,
cCtrlBroadcast :: Bool,
cFrameTimespan :: Double,
cEnableLink :: Bool,
cProcessAhead :: Double,
cTempoAddr :: String,
cTempoPort :: Int,
cTempoClientPort :: Int,
cSkipTicks :: Int64,
cVerbose :: Bool,
cQuantum :: CDouble,
cBeatsPerCycle :: CDouble
}
Now there is this in Sound.Tidal.Stream.Config:
data Config = Config
{ cCtrlListen :: Bool,
cCtrlAddr :: String,
cCtrlPort :: Int,
cCtrlBroadcast :: Bool,
cVerbose :: Bool,
cClockConfig :: Clock.ClockConfig
}
and this is the the tidal-link package, under Sound.Tidal.Clock.Config:
data ClockConfig = ClockConfig
{ cQuantum :: CDouble,
cBeatsPerCycle :: CDouble,
cFrameTimespan :: Double,
cEnableLink :: Bool,
cSkipTicks :: Int64,
cProcessAhead :: Double
}
I expect this split was to allow tidal-link to be used separately from tidal, however this makes configuration more difficult.
We can add setters like in #1162
But this is not too easy to deal with either, as different parameters have to be set in a different way.
Since the changes to stream/clock, tidal has become more difficult to configure.
There used to be a single config structure defined in Sound.Tidal.Config, in the currently released
v1.9.5:Now there is this in Sound.Tidal.Stream.Config:
and this is the the tidal-link package, under Sound.Tidal.Clock.Config:
I expect this split was to allow tidal-link to be used separately from tidal, however this makes configuration more difficult.
We can add setters like in #1162
But this is not too easy to deal with either, as different parameters have to be set in a different way.