packages feed

phonetic-languages-simplified-properties-array 0.8.1.0 → 0.9.0.0

raw patch · 4 files changed

+289/−24 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Phonetic.Languages.Array.Ukrainian.PropertiesFuncRepG2: procRhythmicity23FH :: Ord c => Double -> (Double -> c) -> [[[[UZPP2]]] -> [[Double]]] -> String -> Coeffs2 -> FuncRep2 String Double c
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicity0FH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicity0H :: ([[[UZPP2]]] -> [[Double]]) -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityGH :: ([[[UZPP2]]] -> [[Double]]) -> ([[Double]] -> Double) -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityH :: Double -> String -> [[[[UZPP2]]] -> [[Double]]] -> Coeffs2 -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityH' :: Double -> String -> [[[[UZPP2]]] -> [[Double]]] -> Coeffs2 -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityKFH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> Double -> Double -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityKH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> Double -> String -> Double
- Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityG :: ([[[UZPP2]]] -> [[Double]]) -> ([[Double]] -> Double) -> String -> Double
+ Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2: rhythmicityG :: ([[[UZPP2]]] -> [[Double]]) -> String -> [Double]

Files

CHANGELOG.md view
@@ -59,5 +59,10 @@  ## 0.8.1.0 -- 2021-08-24 -* Eigth version. Switched to the new version of the phonetic-languages-rhythmicity that fixed the issues with+* Eigth version revised A. Switched to the new version of the phonetic-languages-rhythmicity that fixed the issues with custom user defined new polyrhythmicity choices.++## 0.9.0.0 -- 2021-09-18++* Ninth version. Added the new functions that allows the user to define and use his / her own syllableDurationsD+functions. They are used with the properties encoding string starting with "H".
Phonetic/Languages/Array/Ukrainian/PropertiesFuncRepG2.hs view
@@ -42,6 +42,8 @@   , procBoth4InvFF   -- * Working with rhythmicity   , procRhythmicity23F+  -- ** Working with rhythmicity that can be defined by the user+  , procRhythmicity23FH ) where  #ifdef __GLASGOW_HASKELL__@@ -112,7 +114,7 @@ {-# INLINE procB2F #-}  procB2FF-  :: (Ord c) => Double +  :: (Ord c) => Double   -> (Double -> c)   -> ([[[S.UZPP2]]] -> [[Double]])   -> Coeffs2@@ -169,6 +171,25 @@   -> FuncRep2 String Double c procRhythmicity23F k g choice coeffs = procRhythm23F g choice (rhythmicity k) coeffs {-# INLINE procRhythmicity23F #-}++procRhythm23FH+  :: (Ord c) => (Double -> c)+  -> String+  -> (String -> Double)+  -> Coeffs2+  -> FuncRep2 String Double c+procRhythm23FH h choice g coeffs = D g h+{-# INLINE procRhythm23FH #-}++procRhythmicity23FH+  :: (Ord c) => Double+  -> (Double -> c)+  -> [[[[S.UZPP2]]] -> [[Double]]]+  -> String+  -> Coeffs2+  -> FuncRep2 String Double c+procRhythmicity23FH k g syllableDurationsDs choice coeffs = procRhythm23FH g choice (rhythmicityH k choice syllableDurationsDs coeffs) coeffs+{-# INLINE procRhythmicity23FH #-}  procBothF   :: (Ord c) => (Double -> c)
Phonetic/Languages/Array/Ukrainian/PropertiesSyllablesG2.hs view
@@ -24,6 +24,11 @@   , sndCF   , readCF   -- * Rhythmicity properties (semi-empirical)+  -- ** General ones+  , rhythmicity0H+  , rhythmicity0FH+  , rhythmicityKH+  , rhythmicityKFH   -- ** Simple one   , rhythmicity0   , rhythmicity0F@@ -50,7 +55,10 @@   , rhythmicityKF4   -- * General   , rhythmicityG+  , rhythmicityGH   , rhythmicity+  , rhythmicityH+  , rhythmicityH' ) where  #ifdef __GLASGOW_HASKELL__@@ -116,86 +124,114 @@ eval23KF k k2 k3 = evalRhythmicity23KF k k2 k3 . mconcat {-# INLINE eval23KF #-} -rhythmicityG :: ([[[UZPP2]]] -> [[Double]]) -> ([[Double]] -> Double) -> String -> Double-rhythmicityG f g xs+rhythmicityGH :: ([[[UZPP2]]] -> [[Double]]) -> ([[Double]] -> Double) -> String -> Double+rhythmicityGH f g xs  | null xs = 0.0  | otherwise = g . f . createSyllablesUkrS $ xs-{-# INLINE rhythmicityG #-}+{-# INLINE rhythmicityGH #-}  ------------------------------------------------------- +rhythmicity0H :: ([[[UZPP2]]] -> [[Double]]) -> String -> Double+rhythmicity0H f = rhythmicityGH f eval23+{-# INLINE rhythmicity0H #-}+ rhythmicity0 :: String -> Double-rhythmicity0 = rhythmicityG syllableDurationsD eval23+rhythmicity0 = rhythmicity0H syllableDurationsD {-# INLINE rhythmicity0 #-}  rhythmicity02 :: String -> Double-rhythmicity02 = rhythmicityG syllableDurationsD2 eval23+rhythmicity02 = rhythmicity0H syllableDurationsD2 {-# INLINE rhythmicity02 #-}  rhythmicity03 :: String -> Double-rhythmicity03 = rhythmicityG syllableDurationsD3 eval23+rhythmicity03 = rhythmicity0H syllableDurationsD3 {-# INLINE rhythmicity03 #-}  rhythmicity04 :: String -> Double-rhythmicity04 = rhythmicityG syllableDurationsD4 eval23+rhythmicity04 = rhythmicity0H syllableDurationsD4 {-# INLINE rhythmicity04 #-}  ------------------------------------------------------- +rhythmicityKH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> Double -> String -> Double+rhythmicityKH f k2 k3 = rhythmicityGH f (eval23K k2 k3)+{-# INLINE rhythmicityKH #-}+ rhythmicityK :: Double -> Double -> String -> Double-rhythmicityK k2 k3 = rhythmicityG syllableDurationsD (eval23K k2 k3)+rhythmicityK k2 k3 = rhythmicityKH syllableDurationsD k2 k3 {-# INLINE rhythmicityK #-}  rhythmicityK2 :: Double -> Double -> String -> Double-rhythmicityK2 k2 k3 = rhythmicityG syllableDurationsD2 (eval23K k2 k3)+rhythmicityK2 k2 k3 = rhythmicityKH syllableDurationsD2 k2 k3 {-# INLINE rhythmicityK2 #-}  rhythmicityK3 :: Double -> Double -> String -> Double-rhythmicityK3 k2 k3 = rhythmicityG syllableDurationsD3 (eval23K k2 k3)+rhythmicityK3 k2 k3 = rhythmicityKH syllableDurationsD3 k2 k3 {-# INLINE rhythmicityK3 #-}  rhythmicityK4 :: Double -> Double -> String -> Double-rhythmicityK4 k2 k3 = rhythmicityG syllableDurationsD4 (eval23K k2 k3)+rhythmicityK4 k2 k3 = rhythmicityKH syllableDurationsD4 k2 k3 {-# INLINE rhythmicityK4 #-}  -------------------------------------------------------- +rhythmicity0FH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> String -> Double+rhythmicity0FH f k = rhythmicityGH f (eval23F k)+{-# INLINE rhythmicity0FH #-}+ rhythmicity0F :: Double -> String -> Double-rhythmicity0F k = rhythmicityG syllableDurationsD (eval23F k)+rhythmicity0F k = rhythmicity0FH syllableDurationsD k {-# INLINE rhythmicity0F #-}  rhythmicity02F :: Double -> String -> Double-rhythmicity02F k = rhythmicityG syllableDurationsD2 (eval23F k)+rhythmicity02F k = rhythmicity0FH syllableDurationsD2 k {-# INLINE rhythmicity02F #-}  rhythmicity03F :: Double -> String -> Double-rhythmicity03F k = rhythmicityG syllableDurationsD3 (eval23F k)+rhythmicity03F k = rhythmicity0FH syllableDurationsD3 k {-# INLINE rhythmicity03F #-}  rhythmicity04F :: Double -> String -> Double-rhythmicity04F k = rhythmicityG syllableDurationsD4 (eval23F k)+rhythmicity04F k = rhythmicity0FH syllableDurationsD4 k {-# INLINE rhythmicity04F #-}  -------------------------------------------------------- +rhythmicityKFH :: ([[[UZPP2]]] -> [[Double]]) -> Double -> Double -> Double -> String -> Double+rhythmicityKFH f k k2 k3 = rhythmicityGH f (eval23KF k k2 k3)+{-# INLINE rhythmicityKFH #-}+ rhythmicityKF :: Double -> Double -> Double -> String -> Double-rhythmicityKF k k2 k3 = rhythmicityG syllableDurationsD (eval23KF k k2 k3)+rhythmicityKF k k2 k3 = rhythmicityKFH syllableDurationsD k k2 k3 {-# INLINE rhythmicityKF #-}  rhythmicityKF2 :: Double -> Double -> Double -> String -> Double-rhythmicityKF2 k k2 k3 = rhythmicityG syllableDurationsD2 (eval23KF k k2 k3)+rhythmicityKF2 k k2 k3 = rhythmicityKFH syllableDurationsD2 k k2 k3 {-# INLINE rhythmicityKF2 #-}  rhythmicityKF3 :: Double -> Double -> Double -> String -> Double-rhythmicityKF3 k k2 k3 = rhythmicityG syllableDurationsD3 (eval23KF k k2 k3)+rhythmicityKF3 k k2 k3 = rhythmicityKFH syllableDurationsD3 k k2 k3 {-# INLINE rhythmicityKF3 #-}  rhythmicityKF4 :: Double -> Double -> Double -> String -> Double-rhythmicityKF4 k k2 k3 = rhythmicityG syllableDurationsD4 (eval23KF k k2 k3)+rhythmicityKF4 k k2 k3 = rhythmicityKFH syllableDurationsD4 k k2 k3 {-# INLINE rhythmicityKF4 #-}  -------------------------------------------------------- +rhythmicityG+  :: ([[[UZPP2]]] -> [[Double]])-- ^ A function that specifies the syllables durations, analogue of (or one of) the+  -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package.+  -> String+  -> [Double]+rhythmicityG f xs+ | null xs = []+ | otherwise = mconcat . f . createSyllablesUkrS $ xs+{-# INLINE rhythmicityG #-}++--------------------------------------------------------+ rhythmicity :: Double -> String -> Coeffs2 -> String -> Double rhythmicity k choice CF0 = if  | take 1 choice `elem` ["c","M","N"] || (take 1 choice >= "A" && take 1 choice <= "F") -> let just_probe = readRhythmicity choice in@@ -239,7 +275,7 @@               _ -> rhythmicity04           | otherwise -> rhythmicity04  | otherwise -> if-    | take 1 choice == "b" || ((take 1 choice >= "d" && take 1 choice <= "v") || (take 1 choice >= "I" && take 1 choice <= "Z")) && (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->+    | (take 1 choice == "b" || ((take 1 choice >= "d" && take 1 choice <= "v") || (take 1 choice >= "I" && take 1 choice <= "Z"))) && (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->         case take 1 choice of           "b" -> g rhythmicityPolyWeightedLEF3 5 1           "d" -> g rhythmicityPolyWeightedLEF30 5 1@@ -367,3 +403,206 @@ parseChRhEndMaybe (P0 _) = Nothing parseChRhEndMaybe (P1 _ _ n) = Just n parseChRhEndMaybe (P2 _ _ _ n) = Just n++----------------------------------------------------------------++rhythmicityH+  :: Double+  -> String+  -> [[[[UZPP2]]] -> [[Double]]]+  -> Coeffs2+  -> String+  -> Double+rhythmicityH k choice syllableDurationsDs coeffs+  | take 1 choice == "H" = rhythmicityH' k (drop 1 choice) syllableDurationsDs coeffs+  | otherwise = rhythmicity k choice coeffs++rhythmicityH'+  :: Double+  -> String+  -> [[[[UZPP2]]] -> [[Double]]]+  -> Coeffs2+  -> String+  -> Double+rhythmicityH' k choice syllableDurationsDs CF0 = if+ | take 1 choice `elem` ["c","M","N"] || (take 1 choice >= "A" && take 1 choice <= "F") -> let just_probe = readRhythmicity choice in+           case just_probe of+             Just (P1 ch rh n) -> rhythmicityABC 1.0 2.0 0.125 ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+             Just (P2 ch rh r n) -> case take 1 choice of+                   "A" -> rhythmicityPolyWeightedLEF2 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "D" -> rhythmicityPolyWeightedLF2 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "E" -> rhythmicityPolyWeightedLEF3 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "F" -> rhythmicityPolyWeightedLF3 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "B" -> rhythmicityPolyWeightedEF2 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "C" -> rhythmicityPolyWeightedF2 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "M" -> rhythmicityPolyWeightedEF3 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "N" -> rhythmicityPolyWeightedF3 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+                   "c" -> rhythmicityPoly 1.0 r ch rh . rhythmicityG (helperHF4 n syllableDurationsDs)+             _ -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | choice == "0y" -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | take 1 choice == "0" && drop 2 (take 3 choice) == "y" ->+    let n2 = readMaybe (drop 1 . take 2 $ choice)::Maybe Int in+      case n2 of+        Just n3 -> rhythmicity0H (helperHF4 n3 syllableDurationsDs)+        Nothing -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | choice == "0z" -> rhythmicity0FH (helperHF4 1 syllableDurationsDs) k+ | take 1 choice == "0" && drop 2 (take 3 choice) == "z" ->+    let n2 = readMaybe (drop 1 . take 2 $ choice)::Maybe Int in+      case n2 of+        Just n3 -> rhythmicity0FH (helperHF4 n3 syllableDurationsDs) k+        Nothing -> rhythmicity0FH (helperHF4 1 syllableDurationsDs) k+ | take 1 choice == "0" -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | take 1 choice == "w" -> if+          | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->+             case take 2 choice of+              "w0" -> wwF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)+              "w1" -> wwF (drop 2 . take 3 $ choice) (Ch 1 0 4) (Rhythm 2 1 1)+              "w2" -> wwF (drop 2 . take 3 $ choice) (Ch 0 1 4) (Rhythm 1 2 1)+              "w3" -> wwF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)+              _ -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+          | otherwise -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | take 1 choice == "x" -> if+          | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->+             case take 2 choice of+              "x0" -> xxF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)+              "x1" -> xxF (drop 2 . take 3 $ choice) (Ch 1 0 4) (Rhythm 2 1 1)+              "x2" -> xxF (drop 2 . take 3 $ choice) (Ch 0 1 4) (Rhythm 1 2 1)+              "x3" -> xxF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)+              _ -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+          | otherwise -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+ | otherwise -> if+    | (take 1 choice == "b" || ((take 1 choice >= "d" && take 1 choice <= "v") || (take 1 choice >= "I" && take 1 choice <= "Z"))) && (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "9" ->+        case take 1 choice of+          "b" -> g rhythmicityPolyWeightedLEF3 5 1+          "d" -> g rhythmicityPolyWeightedLEF30 5 1+          "e" -> g rhythmicityPolyWeightedLEF3 6 2+          "f" -> g rhythmicityPolyWeightedLEF30 6 2+          "g" -> g rhythmicityPolyWeightedLEF2 5 1+          "h" -> g rhythmicityPolyWeightedLEF20 5 1+          "i" -> g rhythmicityPolyWeightedLEF2 6 2+          "j" -> g rhythmicityPolyWeightedLEF20 6 2+          "k" -> g rhythmicityPolyWeightedLF3 5 1+          "l" -> g rhythmicityPolyWeightedLF30 5 1+          "m" -> g rhythmicityPolyWeightedLF3 6 2+          "n" -> g rhythmicityPolyWeightedLF30 6 2+          "o" -> g rhythmicityPolyWeightedLF2 5 1+          "p" -> g rhythmicityPolyWeightedLF20 5 1+          "q" -> g rhythmicityPolyWeightedLF2 6 2+          "r" -> g rhythmicityPolyWeightedLF20 6 2+          "I" -> g rhythmicityPolyWeightedEF3 5 1+          "J" -> g rhythmicityPolyWeightedEF30 5 1+          "K" -> g rhythmicityPolyWeightedEF3 6 2+          "L" -> g rhythmicityPolyWeightedEF30 6 2+          "O" -> g rhythmicityPolyWeightedEF2 5 1+          "P" -> g rhythmicityPolyWeightedEF20 5 1+          "Q" -> g rhythmicityPolyWeightedEF2 6 2+          "R" -> g rhythmicityPolyWeightedEF20 6 2+          "W" -> g rhythmicityPolyWeightedF3 5 1+          "X" -> g rhythmicityPolyWeightedF30 5 1+          "Y" -> g rhythmicityPolyWeightedF3 6 2+          "Z" -> g rhythmicityPolyWeightedF30 6 2+          "U" -> g rhythmicityPolyWeightedF2 5 1+          "V" -> g rhythmicityPolyWeightedF20 5 1+          "S" -> g rhythmicityPolyWeightedF2 6 2+          "T" -> g rhythmicityPolyWeightedF20 6 2+          "u" -> g rhythmicityPoly 5 1+          "v" -> g rhythmicityPoly0 5 1+          "s" -> g rhythmicityPoly 6 2+          "t" -> g rhythmicityPoly0 6 2+    | otherwise -> rhythmicity0H+       (let ts = drop 2 . take 3 $ choice in+          case ts of { [] -> syllableDurationsD4 ; ks ->+            let q = readMaybe ks::Maybe Int in+              case q of {Just q' -> helperHF4 q' syllableDurationsDs; ~Nothing -> syllableDurationsD4 }})+        where h1 f ts xs m n = f 1.0 4 (PolyCh xs m) (PolyRhythm [1,2,1,n]) . mconcat .+                  (case ts of { [] -> syllableDurationsD4 ; ks -> let q = readMaybe ks::Maybe Int in+                      case q of {Just q' -> helperHF4 q' syllableDurationsDs; ~Nothing -> syllableDurationsD4 }}) .+                        createSyllablesUkrS+              h2 f ts xs m n = f 1.0 4 (PolyCh xs m) (PolyRhythm [2,1,1,n]) . mconcat .+                  (case ts of { [] -> syllableDurationsD4 ; ks -> let q = readMaybe ks::Maybe Int in+                      case q of {Just q' -> helperHF4 q' syllableDurationsDs; ~Nothing -> syllableDurationsD4 }}) .+                        createSyllablesUkrS+              g f m n+                | drop 1 (take 2 choice) == "0" = h1 f (drop 2 . take 3 $ choice) [True,True,True] m n+                | drop 1 (take 2 choice) == "1" = h1 f (drop 2 . take 3 $ choice) [True,True,False] m n+                | drop 1 (take 2 choice) == "2" = h1 f (drop 2 . take 3 $ choice) [True,False,True] m n+                | drop 1 (take 2 choice) == "3" = h1 f (drop 2 . take 3 $ choice) [True,False,False] m n+                | drop 1 (take 2 choice) == "4" = h2 f (drop 2 . take 3 $ choice) [True,True,True] m n+                | drop 1 (take 2 choice) == "5" = h2 f (drop 2 . take 3 $ choice) [True,True,False] m n+                | drop 1 (take 2 choice) == "6" = h2 f (drop 2 . take 3 $ choice) [True,False,True] m n+                | drop 1 (take 2 choice) == "7" = h2 f (drop 2 . take 3 $ choice) [True,False,False] m n+                | otherwise = rhythmicity0H (helperHF4 n syllableDurationsDs)+              w1F f ch rh = rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS+              wwF2 g2 xs =+                let n1 = readMaybe xs::Maybe Int in+                   case n1 of+                     Just n2 -> g2 (helperHF4 n2 syllableDurationsDs)+                     Nothing -> g2 syllableDurationsD4+              x1F f ch rh = rhythmicityABC0 1.0 2.0 0.125 ch rh . mconcat . f . createSyllablesUkrS+              xxF = wwF2 x1F+              wwF = wwF2 w1F+              {-# INLINE w1F #-}+              {-# INLINE wwF2 #-}+              {-# INLINE x1F #-}+              {-# INLINE xxF #-}+              {-# INLINE wwF #-}+rhythmicityH' k choice syllableDurationsDs (CF2 x y) =+ case take 1 choice of+  "0" -> case choice of+           "0y" -> rhythmicityKH (helperHF4 1 syllableDurationsDs) (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "02y" -> rhythmicityKH (helperHF4 2 syllableDurationsDs) (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "03y" -> rhythmicityKH (helperHF4 3 syllableDurationsDs) (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "0z" -> rhythmicityKFH (helperHF4 1 syllableDurationsDs) k (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "02z" -> rhythmicityKFH (helperHF4 2 syllableDurationsDs) k (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "03z" -> rhythmicityKFH (helperHF4 3 syllableDurationsDs) k (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           "04z" -> rhythmicityKFH (helperHF4 4 syllableDurationsDs) k (fromMaybe 1.0 x) (fromMaybe 1.0 y)+           _ -> rhythmicityKH (helperHF4 1 syllableDurationsDs) (fromMaybe 1.0 x) (fromMaybe 1.0 y)+  "w" -> if+          | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->+             case take 2 choice of+              "w0" -> wwF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)+              "w1" -> wwF (drop 2 . take 3 $ choice) (Ch 1 0 4) (Rhythm 2 1 1)+              "w2" -> wwF (drop 2 . take 3 $ choice) (Ch 0 1 4) (Rhythm 1 2 1)+              "w3" -> wwF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)+              _ -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+          | otherwise -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+              where w1F f ch rh = rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) ch rh . mconcat . f . createSyllablesUkrS+                    wwF xs =+                      let n1 = readMaybe xs::Maybe Int in+                        case n1 of+                         Just n2 -> w1F (helperHF4 n2 syllableDurationsDs)+                         Nothing -> w1F syllableDurationsD4+                    {-# INLINE w1F #-}+                    {-# INLINE wwF #-}+  "x" -> if+          | (drop 2 . take 3 $ choice) >= "1" && (drop 2 . take 3 $ choice) <= "4" ->+             case take 2 choice of+              "x0" -> xxF (drop 2 . take 3 $ choice) (Ch 1 1 4) (Rhythm 1 1 2)+              "x1" -> xxF (drop 2 . take 3 $ choice) (Ch 1 0 4) (Rhythm 2 1 1)+              "x2" -> xxF (drop 2 . take 3 $ choice) (Ch 0 1 4) (Rhythm 1 2 1)+              "x3" -> xxF (drop 2 . take 3 $ choice) (Ch 0 0 4) (Rhythm 1 1 2)+              _ -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+          | otherwise -> rhythmicity0H (helperHF4 1 syllableDurationsDs)+              where x1F f ch rh = rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) ch rh . mconcat . f . createSyllablesUkrS+                    xxF xs =+                      let n1 = readMaybe xs::Maybe Int in+                        case n1 of+                         Just n2 -> x1F (helperHF4 n2 syllableDurationsDs)+                         Nothing -> x1F syllableDurationsD4+                    {-# INLINE x1F #-}+                    {-# INLINE xxF #-}+  _ -> if+     | ((take 1 choice >= "b" && take 1 choice <= "v") || (take 1 choice >= "A" && take 1 choice <= "Z" && take 1 choice `notElem` ["G","H"])) -> rhythmicityH' k choice syllableDurationsDs CF0+     | otherwise -> rhythmicityKH+        (let ts = drop 2 . take 3 $ choice in+          case ts of { [] -> syllableDurationsD4 ; ks ->+            let q = readMaybe ks::Maybe Int in+              case q of {Just q' -> helperHF4 q' syllableDurationsDs; ~Nothing -> syllableDurationsD4 }})+                (fromMaybe 1.0 x) (fromMaybe 1.0 y)+++helperHF4 :: Int -> [[[[UZPP2]]] -> [[Double]]] -> [[[UZPP2]]] -> [[Double]]+helperHF4 n xs+  | null xs = syllableDurationsD4+  | (n `rem` length xs) == 0 = head xs+  | otherwise = xs !! ((n `rem` length xs) - 1)
phonetic-languages-simplified-properties-array.cabal view
@@ -2,7 +2,7 @@ -- For further documentation, see http://haskell.org/cabal/users-guide/  name:                phonetic-languages-simplified-properties-array-version:             0.8.1.0+version:             0.9.0.0 synopsis:            A generalization of the uniqueness-periods-vector-properties package. description:         Is a simplified version of the functionality of the former one. Uses lists and arrays as main processment data types. Uses Double whenever applicable. homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-properties-array@@ -11,7 +11,7 @@ author:              OleksandrZhabenko maintainer:          olexandr543@yahoo.com copyright:           Oleksandr Zhabenko-category:            Language, Math+category:            Language, Math, Game build-type:          Simple extra-source-files:  CHANGELOG.md cabal-version:       >=1.10