-- | Miscellaneous utility functions. module Sound.Honk.Util ( freqToMidi , midiToFreq , loop ) where -- | Convert a frequency to a MIDI note value. freqToMidi :: Floating a => a -> a freqToMidi n = 69 + 12 * log2 (n / 440) -- | Convert a MIDI note value to a frequency. midiToFreq :: Floating a => a -> a midiToFreq n = 440 * 2 ** ((n - 69) / 12) log2 :: Floating a => a -> a log2 = logBase 2 -- | Repeat a sequence a specified number of times. loop :: Int -> [a] -> [a] loop n = concat . replicate n