phonetic-languages-rhythmicity: Allows to estimate the rhythmicity properties for the text

[ coherency, data, game, language, library, math, mit, phonetic-languages, polyrhythmicity, rap ] [ Propose Tags ]

Allows to estimate (somewhat to say, evaluate) the rhythmicity properties for the text. Inspired by the ancient Greek and Latin poetry. Since the version part of the functionality moved to the other package phladiprelio-rhythmicity-shared to reduce code duplication .

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,,,,,,,,,,,,,,,,,,,, (info)
Change log
Dependencies base (>=4.13 && <5) [details]
License MIT
Copyright Oleksandr Zhabenko
Author OleksandrZhabenko
Category Language, Math, Data, Game
Home page
Uploaded by OleksandrZhabenko at 2023-03-15T23:08:44Z
Distributions NixOS:
Reverse Dependencies 9 direct, 6 indirect [details]
Downloads 4106 total (52 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-03-15 [all 1 reports]

Readme for phonetic-languages-rhythmicity-

[back to package description]

Since the version the modules Phladiprelio.Rhythmicity.Simple and Phladiprelio.Rhythmicity.Factor moved to the other package phladiprelio-rhythmicity-shared so that it can be shared between different implementations of PhLADiPreLiO.

Polyrhythm as a Multi-Ordered Sequence Pattern

Let us have some sequence organized in the following way. Let us implement (generally speaking a conditional one) division of the sequence into compact single-connected subgroups with the same number of elements each in the subgroup, which actually means that we split the sequence into a sequence of subsequences with the same number of elements in each. Consider the internal ordering of each subsequence from the perspective of the placement of the values of its elements and repeatability of the some patterns of the placement of the elements. We assume that the elements can be compared in relation of order, that is, they are the elements of the data type that has an implemented instance of the class Ord.

Considering that the elements of the subsequences may be pairwise different (or in some cases equal), we will compare the positions on which the subgroups of elements that have a higher degree of relatedness ("closeness", "similarity") in value and order are located. Denote such subgroups by indices that have in the module code mostly a letter designation.

Then each subsequence will consist of the same number of elements of one nature (in particular, numbers of the type Double), in each subsequence there will be selected several subgroups of "similar" elements in value (and order, if the subsequences are sorted by the value), each of which will have its own index as a symbol (most often in the code -- the characters). Subgroups must have (actually approximately) the same number of elements (in the code it is not strictly used for simplification of the former one, but it is so in the vast majority of cases because of the excessive "accuracy" of numbers of type Double that are used). Consider the question of positions in the subsequences of the corresponding subgroups in case of they have been belonging to different subsequences.

To assess this, we introduce certain numerical functions (see the information below) that have regular behavior and allow us to determine whether the subsequences actually have elements that belong to the relevant corresponding subgroups in the same places, or on different ones. It can be shown that the situation "on different ones" corresponds to the presence of several rhythmimc patterns - for each subgroup will be their own, which do not mutually match, at the same time the ideal situation "completely in the same places" corresponds to the case when these rhythms are consistent with each other, as is the case of coherence in quantum physics, in particular spatial and temporal coherence, which is important in particular for understanding of lasers and masers. Polyrhythms consisting of such rhythms, which cohere with each other, form a more noticeable overall rhythm, as well as the presence of coherence in the radiation leads to a more structured latter one.

Coherent States of Polyrhythmicity as One of the Essential Sources of Rhythmicity

The described pattern of rhythmicity is one of the significant possible options for the formation of rhythmicity in particular in lyrics or music, but not the only one. It should be noted that the described mechanism of rhythm formation, as is noticed in the statistical experiments with texts using this code (the code of the library and its dependent packages on the Hackage site) may not be the only possible option, but in many cases it is crucial and influences the course of the rhythmization process (formation, change or disappearance of the rhythm). It is also known that the presence of the statistical relationship does not mean the existence of deeper connections between phenomena, in particular -- the causality. "Correlation does not mean causality." A deeper connection implies the presence of other than the statistical ones to confirm it.

Rap Music Consequences

The code of the library allows in practice to obtain rhythmic patterns that are often close to the lyrics in rap style. Therefore, this can be attributed to one of the direct applications of the library.

Increasing and Decreasing Functions

Since the version the increasing and decreasing functions for the polyrhythmicity evaluation have become more similar to be more likewise the inverse one to another. This leads to that fact that these functions now are expected to be smoother for usage for the beginning of the line, its middle and its ending.

Since the version these functions became more linearized and there is also library possibility to specify kernels for them to control which parts of the line are more important and which are less.

Since the version the program tries more completely include the information for analysis. Besides, there are first weighted increasing and decreasing functions and functionality respectively.

Since the version added the weighted functions that try to increase the importance of the line ending and to decrease the importance of the beginnings.


The author would like to devote this project to support the Foundation GASTROSTARS. If you would like to share some financial support, please, contact the foundation using the URL: