mmsyn6ukr-array 0.2.1.0 → 0.3.0.0
raw patch · 8 files changed
+36/−31 lines, 8 filesdep ~basedep ~mmsyn2-arraydep ~ukrainian-phonetics-basic-arrayPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, mmsyn2-array, ukrainian-phonetics-basic-array
API changes (from Hackage documentation)
- Melodics.Ukrainian.Arr: appendULFile :: [String] -> Handle -> IO ()
+ Melodics.Ukrainian.Arr: appendULFile :: FlowSound -> Handle -> IO ()
Files
- -.ul +0/−1
- 1.ul +0/−1
- ChangeLog.md +5/−0
- LICENSE +1/−1
- MMSyn6Ukr/Show7s/Arr.hs +2/−2
- Melodics/Executable/Arr.hs +3/−2
- Melodics/Ukrainian/Arr.hs +18/−17
- mmsyn6ukr-array.cabal +7/−7
− -.ul
@@ -1,1 +0,0 @@-ÿÿÿþ~þÿÿþ~ÿÿÿÿþ~ÿÿþÿ~þ~þ~þ~þþÿÿÿÿÿþ~ÿ~þÿÿ~þÿþÿÿþ~þ~ÿÿþ~þ~ÿÿÿÿÿÿþÿÿÿÿÿÿÿþ~þÿþÿÿÿÿþÿÿþ~þ~þÿþÿÿÿÿÿþ~þÿ~ÿÿÿÿþ~þÿÿÿÿÿþÿÿþÿÿ~þ~þÿÿþÿÿÿÿÿÿþÿÿ~þ~þÿÿÿ~þÿÿþÿÿ~ÿÿþ~ÿÿÿÿÿÿÿ~þÿ~~þÿþÿÿÿÿÿÿÿþÿþÿÿÿÿþ~þ~þÿþ~ÿ~ÿ~ÿ~ÿ~ÿÿÿÿþ~þ~ÿ~þÿÿÿÿÿþÿþ~þÿþ~ÿ~þ~þ~þ~þ~þÿ~þÿþÿþþÿþ~ÿÿ~ÿþ~þÿÿÿ~ÿÿÿÿ~ÿÿÿÿþÿþÿÿÿÿÿÿþ~þ~þ~þÿÿÿþÿÿ~ÿÿÿÿÿþ~~ÿÿÿ~ÿÿ~ÿÿÿÿÿÿ~þ~ÿ~þ~þ~þÿþÿÿþÿÿÿÿÿþ~þ~ÿÿþ~ÿÿþÿþÿþÿ~þ~ÿÿþÿÿÿÿ~ÿþÿÿþ~~ÿ~þ~ÿÿÿÿÿ~þ~ÿþ~ÿþÿþ~þÿÿ~þÿÿÿ~þ~ÿÿþ~þ~þÿÿÿÿÿþÿþþÿÿÿ~ÿÿþ~ÿÿ~ÿ~ÿ~ÿÿÿÿ~þ~ÿÿ~ÿÿÿÿÿþ~þÿÿ~ÿþ~þþÿ~þ~þ~ÿÿþ~ÿ~ÿÿþÿÿÿþÿÿ~þÿÿÿÿÿÿÿ~ÿÿÿÿÿ~þ~þ~þþÿÿþÿþ~ÿÿÿÿ~þ~ÿÿþ~ÿ~þÿÿÿÿÿÿþÿÿÿ~ÿÿÿÿÿÿÿþÿÿ~ÿÿÿÿÿÿþ~ÿ~ÿÿ~~ÿÿÿÿÿÿ~þÿ~ÿþÿÿÿ~ÿÿÿÿÿÿÿ~þÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ÿ~þ~ÿÿÿÿ~þÿþÿÿÿþ~þÿÿþ~þ~þþ~þÿþÿ~þ~þþÿÿÿÿÿþÿþÿþÿþÿÿ~ÿÿÿÿÿÿÿÿ~~ÿ~ÿÿÿÿ~þÿþÿ~ÿÿÿþÿÿÿÿ~þÿþ~þ~ÿ~ÿÿÿ~ÿ~ÿÿÿÿþÿþÿÿÿÿ~ÿÿþÿþÿÿÿ~þ~þÿ~þÿþÿ~þ~þ~þ~ÿÿþÿÿÿ~þÿÿÿ~ÿÿ~ÿÿÿ~ÿÿÿ~ÿÿÿþ~ÿÿÿþÿ~ÿÿþÿþÿþ~ÿ~~þÿþÿÿÿ~ÿ~þ~þ~ÿþÿÿ~~ÿ~ÿÿÿÿþ~þÿÿÿ~ÿ~ÿþÿþ~þ~ÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿ~ÿÿ~ÿ~ÿþ~þÿÿÿÿþ~~ÿÿ~ÿÿþ~ÿ~þÿÿÿ~ÿ~þ~þþ~ÿþÿÿÿÿ~þ~þÿþ~ÿÿÿÿÿþÿÿþÿþ~þÿ~ÿÿ~þþ~ÿÿÿþÿÿþÿÿþÿþ~ÿ~þ~þÿþÿÿÿþÿÿþþ~þ~þ~ÿþÿÿÿÿÿþÿÿÿÿþÿÿÿþÿþÿ~ÿÿÿ~ÿÿ~ÿ~ÿÿ~ÿÿ~ÿ~þÿþÿÿþ~ÿÿÿ~þ~ÿÿ~þÿÿ~ÿÿÿÿÿÿÿ~ÿÿÿþÿÿÿ~ÿþÿÿþ~ÿ~þÿ~ÿ~ÿ~þÿþÿþ~ÿÿ~þÿþÿÿÿþÿþÿÿÿþ~þÿþÿþÿ~ÿÿÿÿÿÿ~ÿ~ÿÿ~þÿÿþÿÿþ~þ~þÿþ~ÿÿþÿþÿþÿþ~þ~þ~ÿÿÿÿþ~þ~ÿÿþÿÿþ~þÿÿ~þ~þ~þÿÿÿÿÿþ~ÿÿ~þÿþÿÿÿÿ~ÿÿþÿþÿÿÿþ~þ~ÿÿÿÿÿþÿÿÿþÿÿ~ÿÿÿÿÿÿÿÿÿÿ~ÿþÿþ~ÿÿÿ~þ~þÿÿþÿÿþ~ÿ~þÿþ~ÿÿÿÿÿþ~þÿÿÿþ~ÿ~þ~ÿ~þÿÿþÿÿÿÿÿ~ÿþ~þÿÿ~þÿÿÿÿÿÿÿþ~ÿÿþÿþ~þÿ~ÿ~ÿÿÿÿÿ~ÿ~ÿÿ~ÿÿÿÿÿþÿÿÿ~þ~þ~ÿ~ÿ~þ~þÿþ~þ~þÿþÿÿÿÿÿÿÿÿþÿ~þÿþÿ~ÿþÿþÿÿÿÿþÿÿÿÿ~þÿÿ~ÿÿÿþÿþÿÿÿÿÿ~þ~þ~ÿþ~þ~þÿ~ÿÿ~þÿÿÿÿÿþ~þÿÿÿÿþ~~ÿÿÿþ~ÿÿÿÿÿÿ~ÿ~ÿ~ÿÿ~ÿþ~þ~þÿÿÿÿ~ÿ~þÿþÿÿÿ~ÿþ~þÿþÿ~þÿþ~þÿþÿþÿÿ~þÿÿþÿÿÿÿÿÿÿÿ~þÿ~þ~þÿ~ÿ~ÿÿÿþÿþ~ÿÿÿþÿþ~þ~þÿþÿÿÿ~þ~ÿÿÿÿÿÿÿþÿÿÿÿÿþ~þ~þÿÿþÿÿÿ~~ÿÿÿÿ~ÿÿÿÿÿþÿÿÿþ~þÿÿÿþ~þ~ÿÿ~þ~þÿÿÿÿÿ~ÿ~þ~þ~þ~ÿÿ~þ~þ~þþÿÿÿþ~þ~ÿÿÿ~ÿ~þÿÿ~ÿ~þ~þ~ÿÿÿÿÿÿþ~ÿþÿþÿ~~ÿÿÿÿÿþÿÿÿÿÿÿ~ÿÿ~þ~ÿÿþÿþÿ~þ~þÿ~ÿÿ~þþ~þ~þ~þ~þÿÿ~þ~þ~þÿÿ~ÿÿÿÿÿþÿÿÿ~ÿÿÿÿÿÿþÿÿÿþ~þ~ÿÿÿþÿÿÿþÿþ~ÿÿÿÿÿ~ÿ~þÿþÿþ~ÿÿÿþþÿÿÿÿÿÿÿÿþþÿÿ~ÿ~ÿÿÿþ~ÿ~þ~ÿÿ~ÿ~þÿÿ~ÿ~ÿ~ÿ~þÿÿÿþ~þ~ÿ~ÿÿÿ~ÿÿ~þ~þ~þ~þÿþÿþÿþ~ÿÿ~þ~ÿÿÿ~ÿÿÿ~ÿ~þÿÿÿ~þ~þ~ÿÿÿÿÿÿÿÿÿÿ~ÿ~ÿ~ÿ~ÿÿÿþ~þ~ÿÿÿÿ~þ~ÿÿ~ÿÿþÿÿÿÿÿ~ÿÿ~þÿþ~ÿ~ÿÿÿþÿÿ~ÿÿÿÿ~ÿÿþ~ÿþÿþÿ~ÿÿ~ÿÿþÿÿÿþ~þÿÿ~~ÿÿÿ~ÿ~ÿþþÿþ~þÿÿÿþÿÿþ~þ~þÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ~þ~ÿÿÿÿþÿÿ~ÿ~þÿÿÿ~ÿÿÿÿÿÿ~~þÿÿÿÿ~þÿÿÿþÿÿÿÿÿÿÿþÿþÿ~þ~ÿþ~þÿÿÿÿÿþÿþÿÿ~þÿþ~þ~ÿ~þ~ÿÿ~þÿÿþÿÿ~þÿ~þ~þÿÿÿ~þ~þ~þ~þÿÿÿþÿ~ÿþ~þÿÿÿÿþ~þ~þÿþ~þ~þþÿÿÿ~ÿÿÿÿÿÿÿÿ~þ~þÿÿÿÿÿ~þ~þÿ~ÿÿÿÿÿÿÿÿÿÿÿ~þþ~ÿÿÿÿÿþÿþÿþÿÿ~ÿ~þÿÿÿÿÿþÿþ~ÿÿ~ÿÿÿÿÿÿÿÿÿþÿÿþ~þ~ÿ~þÿÿ~ÿ~ÿ~ÿÿÿÿÿÿ~ÿþ~~ÿÿÿÿÿÿÿ~þÿÿÿþ~ÿ~ÿÿÿÿÿ~ÿþÿÿÿþÿþÿþþ~ÿ~ÿÿ~~ÿÿÿÿÿÿÿ~~ÿÿÿþÿþ~ÿ~ÿÿÿ~ÿÿÿÿÿÿ~þ~ÿþÿÿÿÿþÿÿþÿþÿþÿ
− 1.ul
@@ -1,1 +0,0 @@-~þÿþ~ÿ~ÿÿÿ~ÿ~þÿ~þ~þ~ÿþÿþ~ÿ~ÿÿÿÿÿÿÿþ~þ~þÿþÿþÿ~þ~ÿÿ~þ~þ~þÿÿÿ~þÿÿÿþÿÿÿ~þ~ÿ~þÿ~þ~þ~ÿþ~ÿÿÿÿþÿþÿþÿþÿþþÿþ~þ~ÿÿÿÿ~ÿÿ~þÿ~þ~þ~ÿ~ÿþÿÿÿÿþ~þ~ÿÿ~þ~þÿÿþ~þÿÿ~þ~þ~þÿÿþÿþ~þ~þÿþÿþÿÿþ~þ~ÿ~~ÿþÿÿþ~ÿ~þ~ÿ~þÿ~þÿÿ~ÿÿ~ÿÿ~ÿ~ÿÿþþ~þ~ý~ÿÿÿþÿÿÿÿÿÿþÿÿÿÿþ~ÿÿ~þ~þ~þ~þÿþ~ÿ~þÿÿÿÿÿÿÿþ~þ~þ~ÿÿÿþ~þÿÿÿÿÿþ~ÿÿÿ~ÿ~ÿÿÿÿÿÿÿÿÿÿþþ~ÿþþÿÿ~þÿþÿÿÿÿÿÿÿ~þ~þ~~þ~~þ~þ~þ~ÿþÿþÿ~ÿþ~þ~þÿþÿþ~þ~þÿþÿÿÿ~~ÿþÿÿÿþÿÿÿþÿÿÿÿþÿþ~þÿÿÿÿ~þ~þÿÿÿÿ~þÿÿÿÿÿÿÿÿ~~þ~þ~þ~ÿ~ÿþ~þ~ÿÿÿ~ÿþ~þ~ÿÿÿÿÿÿÿÿ~þ~þ~ÿÿÿÿþÿÿÿþ~þ~þÿþÿþ~ÿÿÿÿÿþ~þ~ÿÿÿÿÿÿÿþ~ÿÿÿÿ~ÿÿÿÿÿþÿ~ÿ~ÿÿÿÿ~ÿ~þ~þ~þÿþ~þ~ÿÿ~þ~þ~ÿÿþ~þÿÿþ~þ~ÿÿÿþ~ÿþ~þ~þÿ~ÿÿÿÿÿ~þ~þ~þ~ÿÿ~ÿÿÿÿÿÿþ~þþ~ÿ~þ~ÿÿþÿÿ~ÿþÿÿþÿÿ~ÿ~ÿÿÿþ~þÿþ~ÿþ~þÿ~þ~þÿ~þ~þÿþ~þÿþÿ~þ~þ~ÿÿÿþþ~þ~þÿÿÿÿ~þ~þ~þ~~ÿ~þ~þ~þþÿÿ~ÿÿ~þÿþ~ÿ~þÿþÿ~ÿÿÿþ~þÿÿÿÿÿþ~þÿÿþÿ~þ~þÿþ~ÿ~þ~þþ~þ~þÿÿÿÿÿþ~þ~þÿ~þÿþÿþþ~þ~þ~ÿþþ~þÿÿþÿÿ~ÿÿþÿþ~þ~þ~ý}þÿÿÿÿ~þ~þÿþ~þ~þ~þÿÿÿÿþÿÿþ~þþ~þ~þ~ÿ~þþþþÿÿ~þ~þÿÿÿÿÿÿÿ~þ~þ~~þÿÿÿþÿÿÿ~ÿÿÿÿÿþ~þ~þ~þ~þ~þ~ÿÿÿ~þ~þþ~þ~þ~ÿ~þÿþþ~þ~ÿÿþþÿþÿÿÿÿþ~ÿÿÿ~þÿÿÿ~þÿÿÿ~þ~þÿþÿþ~ÿÿ~þ~þÿÿþÿÿÿÿÿÿþÿÿ~ÿÿþ~þ~ÿÿþ~þÿþÿÿÿþþÿÿþ~ÿ~þ~ÿÿþÿþÿÿ~þ~þ~þ~ÿÿ~ÿÿ~þ~þÿþþÿÿÿ~þ~þ~ÿ~þÿþ~ÿ~þ~ÿþÿþ~ÿÿÿÿÿÿþ~ÿ~ÿÿÿ~ÿÿÿÿÿ~þ~þÿÿÿÿÿÿ~þ~þ~þÿÿÿ~þÿÿþÿÿÿÿÿþ~ÿÿ~ÿ~þÿÿÿþ~ÿÿ~ÿ~þ~þ~ÿÿÿÿ~ÿþÿÿÿÿþ~ÿÿ~þÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþ~þ~þ~þÿþ~ÿÿÿÿÿÿ~þ~ÿþ~þ~ÿÿ~þ~ÿÿÿÿþÿþ~þþ~ÿÿÿ~þ~þ~ÿÿÿÿÿþ~þ~ÿþÿÿÿÿþ~þÿþÿÿþ~ÿÿþÿÿ~~þ~ÿþÿÿþ~ÿÿÿþÿÿÿ~ÿÿÿÿÿÿ~~~ÿÿÿÿÿÿÿÿ~þþ~þ~ÿÿ~þ~þ~ÿÿÿ~þÿÿþ~þÿÿÿþÿþÿÿÿÿÿþ~þÿÿÿ~þ~þÿþÿÿþ~þ~ÿþÿ~ÿ~ÿþ~ÿ~ÿ~ÿÿþ~þ~þ~þ~ÿþÿÿÿÿþÿÿ~ÿ~ÿ~þ~þÿÿÿÿþÿþÿÿþþ~ÿÿÿÿÿþ~þ~ÿ~ÿþÿÿþÿþ~ÿþ~þ~ÿÿÿÿÿ~þ~þ~þÿÿÿÿþ~þ~þÿ~þ~þ~þÿÿÿ~þ~þ~þÿþ~þÿÿ~ÿÿ~þ~ÿÿÿÿ~ÿ~þ~þ~ÿþ~ÿÿÿÿÿÿÿ~þ~þ~ÿÿ~ÿþÿÿ~ÿÿþÿþÿÿþ~þ~þ~þ~þþÿþ~þ~þ~þ~ÿÿÿÿÿÿ~ÿÿþ~þÿÿÿÿ~þ~þ~þÿÿÿÿ~ÿÿÿ~ÿÿþÿÿÿÿ~ÿ~þÿÿÿþ~ÿ~ÿ~þþþ~~ÿÿÿÿ~ÿÿþÿÿþ~ÿÿ~þ~ÿÿÿþ~ÿ~þ~ÿ~ÿÿÿ~ÿ~þÿ~þ~þ~ÿÿÿ~þÿÿÿþ~ÿ~þ~þ~þ~þ~þ~þ~þÿÿÿ~ÿÿÿþÿÿ~ÿ~þÿþþ~ÿÿÿ~ÿÿ~þ~þÿ~þ}þ~þ~ÿÿÿÿ~þ~þÿ~þ~þ~~ÿÿþ~þ~ÿþ~þ~ÿÿÿþ~þ~þ~þÿ~ÿþÿþÿ~ÿÿþÿÿÿ~þÿÿÿ~þ~þ~þÿÿþ~ÿ~þ~þ~þÿþ~ÿÿ~þ~þ~ÿ~þ~ÿÿÿ~þ~þ}þ~þ~þþ~þ~ÿÿÿþ~ÿþ~þ~þ~þ~þÿþÿÿþÿÿÿþÿÿÿÿþ~ÿÿÿÿþÿÿÿ~ÿ~þ~þ~ÿÿ~þ~þÿÿÿþ~ÿÿþ~þÿþ~ÿÿ~þÿþ~~þ~þ~ÿÿÿþ~ÿÿÿÿ~þÿÿÿþÿþÿþ~þÿþ~þ~ÿÿÿÿÿÿÿÿ~ÿÿ~þ~þ~ÿÿÿ~þ~þ~ÿ~ÿ~þ~þ~þ~ÿþÿÿ~ÿ~þÿþ~~ÿÿþ~þÿÿÿþÿÿ~þÿÿÿÿþÿþþÿþÿ~ÿÿ~ÿÿÿÿ~þ~þ~þ~ÿþÿÿÿ~ÿ~þ~ÿÿÿÿÿ~ÿ~þÿÿþÿþ~þ~þ~þ~ÿ~þ~þ~þ~þ~þ~þþÿþ~þÿ~ÿþÿþÿ~ÿ~ÿÿÿþ~ÿÿÿÿ~þÿÿ~þ~ÿÿÿ~ÿ~þÿþÿÿÿÿÿÿ~ÿ~þ~þ~þÿÿ~ÿ~ÿÿÿÿþ~þ~ÿþ~þ~þ~þ~þÿÿÿÿ~ÿÿ~ÿ~þÿÿÿÿÿÿÿÿ~þ~ÿþ~þ~ÿ~ÿÿÿ~ÿÿÿÿÿÿ~þÿÿÿ~þÿÿ~þ~þ~þ~þÿÿþþ~ÿ~þÿÿÿÿ~þÿþÿ~ÿÿþÿþ~ÿÿÿÿÿÿ~þ~þ~þÿÿþ~þ~ÿÿÿþ~ÿÿ~þ~ÿ~ÿÿ~ÿþÿþÿÿÿÿ~þ~þ~þ~ÿÿÿ~ÿÿÿþ~ÿ~ÿ~þ~ÿ~ÿÿþÿÿþÿþ~þþ~þ~þþ~þ~þÿþ~þ~þ~þ~þ~þÿþ~þ~þ~þÿÿ~ÿÿþÿÿþÿÿÿ~ÿÿþÿþ~þÿ~þÿÿ~þ~þÿÿþ~þ~ÿÿÿÿÿ~ÿ~þ~ÿ~ÿ~þÿÿþ~ÿÿÿÿ~þ~þ~ÿÿÿ~þ~þÿ~ÿ~ÿþÿ~þ~ÿÿ~þÿÿþÿþ~þÿþÿþÿþþ~þÿþ~þÿ~þ~þ~ÿ~þÿ~þ~ÿþÿ~þÿÿÿÿþÿÿþÿþ~þ~ÿÿÿþÿÿÿÿþ~ÿÿþÿ~ÿÿÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~þ~þ~þÿÿÿ~þÿÿÿÿþ~þ~þÿþÿÿÿþÿþ~þÿ~þ~þ~þ~ÿþ~þ~ÿÿÿþÿÿÿÿ~ÿÿ~þ~þ~þ~þÿþ~ÿ~ÿÿþ~ÿ~þÿ~ÿÿþ~ÿþ~ÿÿ~ÿÿ~þ~ÿÿÿþ~þÿþÿÿÿÿÿ~þÿþÿ~þÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿ~ÿÿ~þ~þ~þÿþÿÿÿÿÿÿÿ~ÿþÿÿ~ÿÿÿþ~þÿÿÿ~ÿÿ~þ~þÿþÿþ~þÿþÿÿÿ~þ~þÿÿÿ~ÿÿÿþÿÿÿÿþÿÿ~þÿÿ~ÿ~þ~þ~ÿ~ÿÿÿ~ÿ~þ~þ~ÿÿþ~ÿþ~ÿÿ~þ~þ~þ~þ~þ~þ~ÿÿþ~ÿ~þ~ÿÿ~þ~ÿþÿþ~ÿ~þ~ÿÿÿÿ~þ~ÿþ~þ~ÿ~ÿþþÿÿÿ~ÿ~þ~þÿÿÿÿþ~þÿþÿ~þÿÿ~ÿþ~þÿÿÿþ~þ~ÿ~ÿþÿþÿ~ÿÿþÿþ~þÿþÿþ~þ~þ~þ~ÿÿ~þ~ÿþÿ~ÿþÿÿÿþÿþ~þ~þÿÿÿÿ~ÿþ~~þ~þ~þÿÿÿ~ÿþþ~ÿÿÿÿÿþ~ÿþ~þ~ÿþ~ÿÿÿþþÿþ~ÿÿÿÿÿ~ÿ~þÿÿÿÿÿÿ~þ~þÿþ~þ~þ~ÿ~þÿ~ÿ~þ~ÿÿÿÿÿ~þ~þ~þ~þ~ÿÿÿþÿþÿÿ~ÿÿ~þ~ÿ~ÿÿ~þ~þ~þ~þ~þ~~þ~þÿþÿþ~þ~ÿÿ~þ~þÿÿþÿÿÿ~þ~þÿþ~þ~þ~ÿÿÿ~ÿ~ÿÿÿÿ~ÿ~ÿÿÿþÿÿÿÿþ~ÿ~ÿÿ~þþÿÿ~ÿ~ÿÿþ~þÿ~þ~þ~þ~ÿÿþÿÿ~~þ~ÿÿÿÿÿÿÿÿþÿþÿÿ~þÿÿÿ~þÿÿÿ~þÿ~ÿ~þÿÿÿÿÿÿþ~þÿþ~ÿÿÿÿ~ÿ~þÿÿÿþ~þ~þ~ÿÿÿ~þ~þ~ÿ~ÿÿþ~ÿÿ~ÿÿþ~ÿþÿÿ~ÿÿÿþ~þ~þ~þþ~þ~ÿÿþÿÿ~þ~þ~þ~þÿþ~þÿþÿ~ÿ~ÿÿÿ~þ~þ~þþ~þ~þ~ÿÿÿÿÿþ~þþ~þ~~ÿ~þ~þ~ÿþ~þ~þ~þ~þÿþÿÿ~ÿÿþÿÿ~ÿÿþÿÿÿþ~þ~þ~þÿÿÿ~ÿ~þ~þÿ~þÿþ~þ~þÿþ~þ~þþÿþ~ÿÿÿÿÿ~þ~ÿ~þ~þ~þ~þÿÿÿþ~þ~ÿÿþÿÿÿÿÿÿÿÿÿþ~þ~þÿ~þ~þ~þÿÿÿþÿÿþ~þ~ÿ~þÿÿÿþ~þ~ÿÿ~þÿÿþ~ÿ~ÿÿþÿÿ~ÿÿÿÿÿ~þ~þ~þÿþ~ÿÿÿÿÿÿÿ~þ~þ~ÿþ~þ~~þ~þÿÿÿÿÿÿÿÿþ~þ~þ~þ~þ~þÿÿÿ~þ~þ~ÿþÿÿÿÿÿÿÿÿÿÿÿ~þ~ÿ~ÿþþÿÿÿ~þ~þ~þ~þÿÿþ~ÿ~þÿþÿÿÿÿ~ÿÿÿþ~þÿþÿÿ~þ~ÿÿþÿ~~ÿþÿÿÿÿÿ~ÿÿ~~ÿÿÿ~ÿ~þ~þÿ~ÿþ~þ~þÿÿþ~þ~
ChangeLog.md view
@@ -17,3 +17,8 @@ ## 0.2.1.0 -- 2020-12-18 * Second version revised A. Fixed issue with incorrectly defined arguments in Main.hs.++## 0.3.0.0 -- 2021-11-04++* Third version. Switched to the new modules from the ukrainian-phonetics-basic-array. Updated dependencies. Changed the+type of Melodics.Ukrainian.Arr.appendULFile function.
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2019-2020 OleksandrZhabenko+Copyright (c) 2019-2021 OleksandrZhabenko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
MMSyn6Ukr/Show7s/Arr.hs view
@@ -1,6 +1,6 @@ -- | -- Module : MMSyn6Ukr.Show7s.Arr--- Copyright : (c) OleksandrZhabenko 2020+-- Copyright : (c) OleksandrZhabenko 2020-2021 -- License : MIT -- Stability : Experimental -- Maintainer : olexandr543@yahoo.com@@ -20,4 +20,4 @@ -- | Function takes a Ukrainian text being a @String@ and returns a sorted list of the Ukrainian sounds representations that can be used further in mmsyn7 series of -- programs. show7s :: String -> [String]-show7s = sort . nub . filter (\x -> x /= "-" && x /= "1" && x /= "0") . convertToProperUkrainian+show7s = sort . nub . filter (/= "-") . convertToProperUkrainian
Melodics/Executable/Arr.hs view
@@ -27,7 +27,8 @@ import System.Directory (removeFile) import Control.Exception (onException) import EndOfExe (showE)-import Melodics.Ukrainian.Arr (appendULFile, convertToProperUkrainian)+import Melodics.Ukrainian.Arr (appendULFile)+import Melodics.Ukrainian.ArrInt8 import UkrainianLControl.Arr -- | Is used to repeat the cycle of creation of the sound files in the current directory for the @mmsyn6ukr@ executable.@@ -47,7 +48,7 @@ workWithInput :: String -> Bool -> FilePath -> Int -> IO () workWithInput zs onepass file _ = do [nameSF,ys] <- if null file then nameAndControl zs onepass file [1,2] else nameAndControl zs onepass file [1,3]- withBinaryFile (nameSF ++ ".ul") AppendMode (appendULFile (convertToProperUkrainian (if onepass then unwords . words $ ys else ys)))+ withBinaryFile (nameSF ++ ".ul") AppendMode (appendULFile (convertToProperUkrainianI8 (if onepass then unwords . words $ ys else ys))) putStrLn "The .ul file was created by the program. If there is SoX installed then it will run further. " let ts = showE "sox" if isJust ts
Melodics/Ukrainian/Arr.hs view
@@ -3,7 +3,7 @@ -- | -- Module : Melodics.Ukrainian.Arr--- Copyright : (c) OleksandrZhabenko 2019-2020+-- Copyright : (c) OleksandrZhabenko 2019-2021 -- License : MIT -- Maintainer : olexandr543@yahoo.com --@@ -22,24 +22,24 @@ import CaseBi.Arr import qualified Data.Foldable as F import GHC.Arr-import qualified Melodics.ByteString.Ukrainian.Arr as MU (convertToProperUkrainianS,isUkrainianL)+import Melodics.Ukrainian.ArrInt8 import Paths_mmsyn6ukr_array {-| The first version has been initially inspired by: https://mail.haskell.org/pipermail/beginners/2011-October/008649.html -} --- | The function that actually produces a .raw file. The mapping table is given in the @Map.txt@ file.-appendULFile :: [String] -> Handle -> IO ()+-- | The function that actually produces a .raw file. Since 0.3.0.0 version changed the type.+appendULFile :: FlowSound -> Handle -> IO () appendULFile xss hdl | not (null xss) = do dataFileList <- mapM getDataFileName- ["-.ul", "0.ul", "1.ul", "A.ul", "B.ul", "C.ul", "D.ul", "E.ul", "F.ul", "G.ul", "H.ul",+ ["0.ul", "A.ul", "B.ul", "C.ul", "D.ul", "E.ul", "F.ul", "G.ul", "H.ul", "I.ul", "J.ul", "K.ul", "L.ul", "M.ul", "N.ul", "O.ul", "P.ul", "Q.ul", "R.ul", "S.ul", "T.ul", "U.ul", "V.ul", "W.ul", "X.ul", "Y.ul", "Z.ul", "a.ul", "b.ul", "c.ul", "d.ul", "e.ul", "f.ul"] dataArray0 <- mapM B.readFile $! dataFileList- let !dataArray = listArray (0,34) dataArray0+ let !dataArray = listArray (0,32) dataArray0 mapM_ (\u -> if F.all (\z -> B.length z > 0) dataArray then let rs = tail . dropWhile (/= ' ') . takeWhile (/= '}') . show $ hdl in do@@ -47,11 +47,10 @@ closedHdl <- hIsClosed hdl if closedHdl then do- B.appendFile rs $ unsafeAt dataArray . getBFstLSorted' 0 [("-", 0), ("0", 1), ("1", 2), ("а", 3), ("б", 4),- ("в", 5), ("г", 6), ("д", 7), ("дж", 8), ("дз", 9), ("е", 10), ("ж", 11), ("з", 12), ("и", 13),- ("й", 14), ("к", 15), ("л", 16), ("м", 17), ("н", 18), ("о", 19), ("п", 20), ("р", 21),- ("с", 22), ("сь", 23), ("т", 24), ("у", 25), ("ф", 26), ("х", 27), ("ц", 28), ("ць", 29),- ("ч", 30), ("ш", 31), ("ь", 32), ("і", 33), ("ґ", 34)] $ u+ B.appendFile rs $ unsafeAt dataArray . getBFstLSorted' 0 [(-1,0),(1,1),(2,8),(3,17),(4,23),(5,11),(6,31),+ (7,30),(8,7),(10,9),(15,2),(17,5),(19,32),(21,4),(23,6),(25,10),(27,12),(28,14),(30,15),(32,16),+ (34,19),(36,3),(38,26),(39,28),(41,29),(43,24),(45,13),(47,18),(49,20),(50,22),(52,25),(54,21),+ (66,27)] $ u else error "File is not closed!" else error "Data sound file is not read!") xss hClose hdl@@ -60,12 +59,14 @@ -- | The function that converts a written Ukrainian text into the sounding in the program phonetical respesentation. -- It is not exact phonetically but you can make for yourself a general impression of the Ukrainian sounding. convertToProperUkrainian :: String -> [String]-convertToProperUkrainian xs = new2OldRepresentation . MU.convertToProperUkrainianS $ xs- where new2OldRepresentation :: String -> [String]+convertToProperUkrainian xs = new2OldRepresentation . convertToProperUkrainianI8 $ xs+ where new2OldRepresentation :: FlowSound -> [String] new2OldRepresentation ys = map f $ ys- where f = getBFstLSorted' "" (zip "-01ABCDEFabcdefghijklmnopqrstuvwxyz" ["-","0","1","дз","ж","й","сь",- "ч","ш","а","б","ц","д","е","ф","ґ","г","і","дж","к","л","м","н","о","п","ь","р","с","т","у","в",- "ць","х","и","з"])+ where f = getBFstLSorted' "" [(-1,"-"),(1,"\1072"),(2,"\1077"),(3,"\1086"),(4,"\1091"),(5,"\1080"),(6,"\1110"),+ (7,"\1100"),(8,"\1076\1079"),(10,"\1078"),(15,"\1073"),(17,"\1076"),(19,"\1169"),(21,"\1075"),+ (23,"\1076\1078"),(25,"\1079"),(27,"\1081"),(28,"\1083"),(30,"\1084"),(32,"\1085"),(34,"\1088"),+ (36,"\1074"),(38,"\1094"),(39,"\1095"),(41,"\1096"),(43,"\1092"),(45,"\1082"),(47,"\1087"),+ (49,"\1089"),(50,"\1090"),(52,"\1093"),(54,"\1089\1100"),(66,"\1094\1100")] isUkrainian :: Char -> Bool-isUkrainian = MU.isUkrainianL+isUkrainian = isUkrainianL
mmsyn6ukr-array.cabal view
@@ -2,26 +2,26 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: mmsyn6ukr-array-version: 0.2.1.0+version: 0.3.0.0 synopsis: A musical instrument synthesizer or a tool for Ukrainian language listening description: A program can be used as a musical instrument synthesizer or for Ukrainian speech synthesis especially for poets and writers. Uses arrays and .ul RAW sound file formats and SoX inside. Since the 0.2.0.0 version it supports reading from the file and multiline input.-homepage: https://hackage.haskell.org/package/mmsyn6ukr+homepage: https://hackage.haskell.org/package/mmsyn6ukr-array license: MIT license-file: LICENSE author: OleksandrZhabenko maintainer: olexandr543@yahoo.com-copyright: (c) OleksandrZhabenko 2019-2020+copyright: (c) OleksandrZhabenko 2019-2021 category: Language build-type: Simple extra-source-files: ChangeLog.md, README.md, Map.txt-data-files: -.ul, 0.ul, 1.ul, A.ul, B.ul, C.ul, D.ul, E.ul, F.ul, G.ul, H.ul, I.ul, J.ul, K.ul, L.ul, M.ul, N.ul, O.ul, P.ul, Q.ul, R.ul, S.ul, T.ul, U.ul, V.ul, W.ul, X.ul, Y.ul, Z.ul, a.ul, b.ul, c.ul, d.ul, e.ul, f.ul+data-files: 0.ul, A.ul, B.ul, C.ul, D.ul, E.ul, F.ul, G.ul, H.ul, I.ul, J.ul, K.ul, L.ul, M.ul, N.ul, O.ul, P.ul, Q.ul, R.ul, S.ul, T.ul, U.ul, V.ul, W.ul, X.ul, Y.ul, Z.ul, a.ul, b.ul, c.ul, d.ul, e.ul, f.ul cabal-version: >=1.10 library exposed-modules: Main, Paths_mmsyn6ukr_array, Melodics.Ukrainian.Arr, Melodics.Executable.Arr, UkrainianLControl.Arr, MMSyn6Ukr.Show7s.Arr- other-modules: + other-modules: other-extensions: BangPatterns- build-depends: base >=4.8 && <4.15, process >=1.4 && <1.9, mmsyn3 >=0.1.5.0 && <1, directory >= 1 && < 1.5, bytestring >=0.10 && <0.13, mmsyn2-array >=0.1.1 && <1, mmsyn5 >=0.5 && <1, ukrainian-phonetics-basic-array >=0.1.1 && <1+ build-depends: base >=4.8 && <4.16, process >=1.4 && <1.9, mmsyn3 >=0.1.5.0 && <1, directory >= 1 && < 1.5, bytestring >=0.10 && <0.13, mmsyn2-array >=0.3 && <1, mmsyn5 >=0.5 && <1, ukrainian-phonetics-basic-array >=0.4.1 && <1 -- hs-source-dirs: default-language: Haskell2010 @@ -29,6 +29,6 @@ main-is: Main.hs other-modules: Melodics.Executable.Arr, Melodics.Ukrainian.Arr, Paths_mmsyn6ukr_array, UkrainianLControl.Arr, MMSyn6Ukr.Show7s.Arr other-extensions: BangPatterns- build-depends: base >=4.8 && <4.15, process >=1.4 && <1.9, mmsyn3 >=0.1.5.0 && <1, directory >= 1 && < 1.5, bytestring >=0.10 && <0.13, mmsyn2-array >=0.1.1 && <1, mmsyn5 >=0.5 && <1, ukrainian-phonetics-basic-array >=0.1.1 && <1+ build-depends: base >=4.8 && <4.16, process >=1.4 && <1.9, mmsyn3 >=0.1.5.0 && <1, directory >= 1 && < 1.5, bytestring >=0.10 && <0.13, mmsyn2-array >=0.3 && <1, mmsyn5 >=0.5 && <1, ukrainian-phonetics-basic-array >=0.4.1 && <1 -- hs-source-dirs: default-language: Haskell2010