mmsyn6ukr 0.2.0.1 → 0.3.0.0
raw patch · 4 files changed
+28/−13 lines, 4 filesdep ~basedep ~bytestringdep ~mmsyn2
Dependency ranges changed: base, bytestring, mmsyn2, mmsyn3, mmsyn5, process, vector
Files
- ChangeLog.md +4/−0
- Main.hs +2/−2
- Melodics/Ukrainian.hs +11/−6
- mmsyn6ukr.cabal +11/−5
ChangeLog.md view
@@ -14,3 +14,7 @@ * Second version revised A. Some minor code changes. +## 0.3.0.0 -- 2019-11-28++* Third version. Fixed an issue with the unnecessary additional file. +Changed the package into executable and library format.
Main.hs view
@@ -38,9 +38,9 @@ let ys = take (nSymbols (let zs = take 1 args in if null zs then [] else head zs)) xs in withBinaryFile (nameOfSoundFile ++ ".raw") AppendMode (appendS16LEFile (convertToProperUkrainian ys)) let ts = showE "sox" in if isJust ts- then callCommand $ fromJust ts ++ " -r22050 -c1 -L -e signed-integer -b16 new." ++ nameOfSoundFile ++ ".raw new." ++ nameOfSoundFile ++ ".wav"+ then callCommand $ fromJust ts ++ " -r22050 -c1 -L -e signed-integer -b16 " ++ nameOfSoundFile ++ ".raw " ++ nameOfSoundFile ++ ".wav" else do - putStr "You have a resulting file, which name begins with \"new.\" in a raw PCM format with bitrate 22050 Hz and 1 channel (mono) in the .raw format. "+ putStr "You have a resulting file in a raw PCM format with bitrate 22050 Hz and 1 channel (mono) in the .raw format. " putStr "You can further process it by yourself manually, otherwise, please, install FFMpeg or LibAV executables in the directory mentioned in the variable PATH" putStrLn " and then run: " putStrLn "\"name_of_FFMpeg_or_LibAV_executable\" -f s16le -acodec pcm_s16le -ac 1 -ar 22050 -i \"name_Of_the_sound_file\" \"the_same_name_without_.raw_ending_and_with_.wav_ending\""
Melodics/Ukrainian.hs view
@@ -50,12 +50,17 @@ dataList <- V.mapM takeData . V.fromList $! dataFileList V.mapM_ (\u -> if V.all (\z -> B.length z > 0) dataList - then let rs = "new." ++ (tail . dropWhile (/= ' ') . takeWhile (/= '}') . show $ hdl) in do- B.appendFile rs $ dataList V.! (getBFst' (0, V.fromList [("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)]) u)+ then let rs = tail . dropWhile (/= ' ') . takeWhile (/= '}') . show $ hdl in do+ hClose hdl+ closedHdl <- hIsClosed hdl+ if closedHdl + then do + B.appendFile rs $ dataList V.! (getBFst' (0, V.fromList [("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)]) u)+ else error "File is not closed!" else error "Data sound file is not read!") xs hClose hdl | otherwise = return ()
mmsyn6ukr.cabal view
@@ -2,10 +2,9 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: mmsyn6ukr-version: 0.2.0.1+version: 0.3.0.0 synopsis: Can be used as a musical instrument synthesizer or for Ukrainian language listening description: A program that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis especially for poets and writers- homepage: https://hackage.haskell.org/package/mmsyn6ukr license: MIT license-file: LICENSE@@ -16,13 +15,20 @@ build-type: Simple extra-source-files: ChangeLog.md, README.md data-files: 0.wav, 1.wav, A.wav, B.wav, C.wav, D.wav, E.wav, F.wav, G.wav, H.wav, I.wav, J.wav, K.wav, L.wav, M.wav, N.wav, O.wav, P.wav, Q.wav, R.wav, S.wav, T.wav, U.wav, V.wav, W.wav, X.wav, Y.wav, Z.wav, a.wav, b.wav, c.wav, d.wav, e.wav, f.wav- cabal-version: >=1.10 +library+ exposed-modules: Paths_mmsyn6ukr, Main, Melodics.Ukrainian+ -- other-modules: Melodics.Ukrainian+ -- other-extensions:+ build-depends: base >=4.11 && <4.12, process >=1.6 && <1.7, mmsyn3 >=0.1 && <0.2, vector >=0.12 && <0.13, bytestring >=0.10 && <0.11, mmsyn2 >=0.1 && <0.2, mmsyn5 >=0.4 && <0.5+ -- hs-source-dirs:+ default-language: Haskell2010+ executable mmsyn6ukr main-is: Main.hs- other-modules: Paths_mmsyn6ukr, Melodics.Ukrainian+ -- other-modules: -- other-extensions:- build-depends: base >=4.7 && <4.13, vector >=0.11 && <0.13, bytestring >=0.10 && <0.11, process >=1.4 && <1.7, mmsyn2 >=0.1.6.1 && <0.2, mmsyn3 >=0.1.3.0 && <0.2, mmsyn5 >= 0.4 && < 1+ build-depends: base >=4.7 && <4.13, process >=1.4 && <1.8, mmsyn3 >=0.1.3.0 && <1, vector >=0.11 && <0.14, bytestring >=0.10 && <0.12, mmsyn2 >=0.1.6.1 && <1, mmsyn5 >=0.4 && <1 -- hs-source-dirs: default-language: Haskell2010