{-# OPTIONS_HADDOCK show-extensions #-}
-- |
-- Module : Phladiprelio.Ukrainian.PropertiesSyllablesG201
-- Copyright : (c) Oleksandr Zhabenko 2020-2023
-- License : MIT
-- Stability : Experimental
-- Maintainer : oleksandr.zhabenko@yahoo.com
--
-- Generalization and extension of the functionality of the DobutokO.Poetry.Norms
-- and DobutokO.Poetry.Norms.Extended modules
-- from the @dobutokO-poetry@ package. Uses syllables information.
-- Instead of the vector-related, uses just arrays.
{-# LANGUAGE NoImplicitPrelude, BangPatterns, MultiWayIf #-}
module Phladiprelio.Ukrainian.PropertiesSyllablesG201 (
-- * Extended rhythmicity properties
-- ** Rhythmicity properties (semi-empirical)
-- *** General ones
rhythmicity0HTup
, rhythmicity0FHTup
, rhythmicityKHTup
, rhythmicityKFHTup
-- *** Simple one
, rhythmicity0Tup
, rhythmicity0FTup
-- *** With weight coefficients
, rhythmicityKTup
, rhythmicityKFTup
-- ** Rhythmicity properties from generated with r-glpk-phonetic-languages-ukrainian-durations package (since 0.2.0.0 version)
-- *** Simple one
, rhythmicity02Tup
, rhythmicity02FTup
-- *** With weight coefficients
, rhythmicityK2Tup
, rhythmicityKF2Tup
-- ** NEW Rhythmicity properties from generated with r-glpk-phonetic-languages-ukrainian-durations package
-- *** Simple ones
, rhythmicity03Tup
, rhythmicity03FTup
, rhythmicity04Tup
, rhythmicity04FTup
-- *** With weight coefficients
, rhythmicityK3Tup
, rhythmicityKF3Tup
, rhythmicityK4Tup
, rhythmicityKF4Tup
-- ** General
, rhythmicityGTup
) where
import GHC.Base
import Phladiprelio.Ukrainian.Common
import Phladiprelio.Ukrainian.SyllableDouble
import Phladiprelio.Ukrainian.Melodics (Sound8,FlowSound)
import Phladiprelio.Ukrainian.Syllable
import Phladiprelio.Ukrainian.PropertiesSyllablesG2Common
import GHC.Arr (Array)
import GHC.Int (Int8)
import Phladiprelio.Ukrainian.Emphasis
import Phladiprelio.Rhythmicity.Factor
rhythmicityGTup
:: ([[[Sound8]]] -> [[Double]])-- ^ A function that specifies the syllables durations, analogue of (or one of) the
-- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package.
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> [Double]
rhythmicityGTup f tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 (Str xs@(_:_)) = mconcat . f . createSyllablesUkrSTup tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 $ xs
rhythmicityGTup f tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 (FSL xsss@(_:_)) = mconcat . f $ xsss
rhythmicityGTup _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = []
{-# INLINE rhythmicityGTup #-}
-----------------------------------------------------
rhythmicity0HTup
:: ([[[Sound8]]] -> [[Double]])
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity0HTup f = rhythmicityGHTup f eval23
{-# INLINE rhythmicity0HTup #-}
rhythmicity0HNTup n = rhythmicity0HTup
(case n of
1 -> syllableDurationsD
2 -> syllableDurationsD2
3 -> syllableDurationsD3
_ -> syllableDurationsD4)
{-# INLINE rhythmicity0HNTup #-}
rhythmicity0Tup
:: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity0Tup = rhythmicity0HNTup 1
{-# INLINE rhythmicity0Tup #-}
rhythmicity02Tup
:: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity02Tup = rhythmicity0HNTup 3
{-# INLINE rhythmicity02Tup #-}
rhythmicity03Tup
:: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity03Tup = rhythmicity0HNTup 3
{-# INLINE rhythmicity03Tup #-}
rhythmicity04Tup
:: Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity04Tup = rhythmicity0HNTup 4
{-# INLINE rhythmicity04Tup #-}
-------------------------------------------------------
rhythmicityKHTup
:: ([[[Sound8]]] -> [[Double]])
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKHTup f k2 k3 = rhythmicityGHTup f (eval23K k2 k3)
{-# INLINE rhythmicityKHTup #-}
rhythmicityKHNTup n = rhythmicityKHTup
(case n of
1 -> syllableDurationsD
2 -> syllableDurationsD2
3 -> syllableDurationsD3
_ -> syllableDurationsD4)
{-# INLINE rhythmicityKHNTup #-}
rhythmicityKTup
:: Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKTup = rhythmicityKHNTup 1
{-# INLINE rhythmicityKTup #-}
rhythmicityK2Tup
:: Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityK2Tup = rhythmicityKHNTup 2
{-# INLINE rhythmicityK2Tup #-}
rhythmicityK3Tup
:: Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityK3Tup = rhythmicityKHNTup 3
{-# INLINE rhythmicityK3Tup #-}
rhythmicityK4Tup
:: Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityK4Tup = rhythmicityKHNTup 4
{-# INLINE rhythmicityK4Tup #-}
--------------------------------------------------------
rhythmicity0FHTup
:: ([[[Sound8]]] -> [[Double]])
-> Factors
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity0FHTup f ff k = rhythmicityGHTup f (eval23F ff k)
{-# INLINE rhythmicity0FHTup #-}
rhythmicity0FHNTup n = rhythmicity0FHTup
(case n of
1 -> syllableDurationsD
2 -> syllableDurationsD2
3 -> syllableDurationsD3
_ -> syllableDurationsD4)
{-# INLINE rhythmicity0FHNTup #-}
rhythmicity0FTup
:: Factors
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity0FTup = rhythmicity0FHNTup 1
{-# INLINE rhythmicity0FTup #-}
rhythmicity02FTup
:: Factors
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity02FTup = rhythmicity0FHNTup 2
{-# INLINE rhythmicity02FTup #-}
rhythmicity03FTup
:: Factors
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity03FTup = rhythmicity0FHNTup 3
{-# INLINE rhythmicity03FTup #-}
rhythmicity04FTup
:: Factors
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicity04FTup = rhythmicity0FHNTup 4
{-# INLINE rhythmicity04FTup #-}
--------------------------------------------------------
rhythmicityKFHTup
::([[[Sound8]]] -> [[Double]])
-> Factors
-> Double
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKFHTup f ff k k2 k3 = rhythmicityGHTup f (eval23KF ff k k2 k3)
{-# INLINE rhythmicityKFHTup #-}
rhythmicityKFHNTup n = rhythmicityKFHTup
(case n of
1 -> syllableDurationsD
2 -> syllableDurationsD2
3 -> syllableDurationsD3
_ -> syllableDurationsD4)
{-# INLINE rhythmicityKFHNTup #-}
rhythmicityKFTup
:: Factors
-> Double
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKFTup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKFTup #-}
rhythmicityKF2Tup
:: Factors
-> Double
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKF2Tup = rhythmicityKFHNTup 2
{-# INLINE rhythmicityKF2Tup #-}
rhythmicityKF3Tup
:: Factors
-> Double
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKF3Tup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKF3Tup #-}
rhythmicityKF4Tup
:: Factors
-> Double
-> Double
-> Double
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, FlowSound -> Sound8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char,Int8)
-> Array Int (Int8,[Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8,Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityKF4Tup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKF4Tup #-}