diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -282,3 +282,7 @@
 
 * Thirtieth version. Recent code in the DobutokO.Sound.Executable generalization. Added a new function 'soundGen3G_O2G' for this. It allows very general 
 approach to generation of the changing timbre for a solo sounds and their sequences. Some documentation improvements.
+
+## 0.31.0.0 -- 2020-04-16
+
+* Thirty-first version. Added a new functionality with splitting the 'OvertonesO' to the DobutokO.Sound.Functional module. 
diff --git a/DobutokO/Sound/Functional.hs b/DobutokO/Sound/Functional.hs
--- a/DobutokO/Sound/Functional.hs
+++ b/DobutokO/Sound/Functional.hs
@@ -123,6 +123,10 @@
   , elemsOverlapOvers
   , gAdds01
   , gAdds02
+  -- * Splitting and concatenating OvertonesO
+  , splitO
+  , splitO2
+  , overConcat
 ) where
 
 import Text.Read (readMaybe)
@@ -1201,3 +1205,45 @@
    if compare (V.length v1) 5 /= GT then renormF . V.generate 5 $ (\i -> (fromIntegral (i + 1) * note, halfwidth / fromIntegral (i + 3))) 
    else v1
      
+-- | Splits (with addition of the new overtones) a given 'OvertonesO' into a number @n@ (specified by the first 'Int' argument) of 'OvertonesO' 
+-- (represented finally as a 'V.Vector' of them repsectively) so that all except the first @n@ greatest by the amplitude tuples of Doubles are 
+-- considered overtones for the greatest one in the given 'OvertonesO' and all the next @n - 1@ are treated as the greatest and each of them 
+-- produces the similar by the @f :: Double -> OvertonesO@ function overtones.
+-- 
+-- It is expected to obtain by such a conversion a splitted one sound into several simultaneous similar ones with different heights. 
+-- To provide a rich result, the given first argument must be strictly less than the length of the given 'OvertonesO' minus one.
+splitO :: Int -> OvertonesO -> V.Vector OvertonesO
+splitO n v0 
+ | compare (V.length v0) (n + 1) == GT = 
+    let v1 = V.fromList . sortBy (\(x1,y1) (x2,y2) -> compare x2 x1) . V.toList $ v0
+        (x0, y0) = V.unsafeIndex v1 0
+        v2 = V.unsafeSlice 1 (n - 1) v1
+        v31 = V.map (\t -> (fst t) / x0) v2
+        v32 = V.map (\t -> (snd t) / y0) v2
+        v3 = V.zip v31 v32
+        f1Tup = (\(t1,w2) -> V.imap (\i (u1,u2) -> (fst (V.unsafeIndex v3 i) * t1, snd (V.unsafeIndex v3 i) * w2 )) v3)
+          in V.map f1Tup (V.unsafeSlice 0 n v1)
+  | otherwise = V.singleton v0
+
+-- | Splits (with addition of the new overtones) a given 'OvertonesO' into a number of 'OvertonesO' (represented finally as a 'V.Vector' of them repsectively) 
+-- so that it intermediately uses a special function before applying the \"similarization\" splitting function. Is a generalization of the 'splitO', 
+-- which can be considered a 'splitO2' with a first command line argument equals to 'id'.
+-- 
+-- It is expected to obtain by such a conversion a splitted one sound into several simultaneous similar (less or more, depending on @h :: OvertonesO -> OvertonesO@) 
+-- ones with different heights. To provide a rich result, the given first argument must be strictly less than the length of the given 'OvertonesO' minus one.
+splitO2 :: (OvertonesO -> OvertonesO) -> Int -> OvertonesO -> V.Vector OvertonesO
+splitO2 h n v0
+ | compare (V.length v0) (n + 1) == GT = 
+    let v1 = V.fromList . sortBy (\(x1,y1) (x2,y2) -> compare x2 x1) . V.toList $ v0
+        (x0, y0) = V.unsafeIndex v1 0
+        v2 = V.unsafeSlice 1 (n - 1) v1
+        v31 = V.map (\t -> (fst t) / x0) v2
+        v32 = V.map (\t -> (snd t) / y0) v2
+        v3 = V.zip v31 v32
+        f1Tup = (\(t1,w2) -> V.imap (\i (u1,u2) -> (fst (V.unsafeIndex v3 i) * t1, snd (V.unsafeIndex v3 i) * w2 )) v3)
+          in V.map f1Tup (h . V.unsafeSlice 0 n $ v1)
+  | otherwise = V.singleton v0
+
+-- | Concatenates a 'V.Vector' of 'OvertonesO' into a single 'OvertonesO'. Can be easily used with 'splitO'.
+overConcat :: V.Vector OvertonesO -> OvertonesO
+overConcat v = V.concat . V.toList $ v
diff --git a/dobutokO2.cabal b/dobutokO2.cabal
--- a/dobutokO2.cabal
+++ b/dobutokO2.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                dobutokO2
-version:             0.30.0.0
+version:             0.31.0.0
 synopsis:            A program and a library to create experimental music from a mono audio and a Ukrainian text
 description:         It can also create a timbre for the notes. Uses SoX inside.
 homepage:            https://hackage.haskell.org/package/dobutokO2
