{-# OPTIONS_GHC -threaded #-}
module DobutokO.Sound.ToRange where
toRange :: Float -> Float -> Float
toRange :: Float -> Float -> Float
toRange Float
range Float
x
| Float
range Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 = (Float
x Float -> Float -> Float
forall a. Fractional a => a -> a -> a
/ Float
range Float -> Float -> Float
forall a. Num a => a -> a -> a
- Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float
x Float -> Float -> Float
forall a. Fractional a => a -> a -> a
/ Float
range))) Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
range
| Bool
otherwise = [Char] -> Float
forall a. HasCallStack => [Char] -> a
error [Char]
"DobutokO.Sound.ToRange.toRange: Zero range. "