├── .gitignore
├── Build.proj
├── Build.props
├── GitVersion.yml
├── LICENSE.md
├── README.md
├── build.cmd
├── build
├── Base.props
├── Bootstrap.proj
├── Common.props
├── Common.targets
├── ConsoleExe.props
├── Exe.props
├── Test.props
├── build.targets
├── secrets.props
└── task
│ ├── AssemblyInfo.cs
│ ├── AssemblyInfo.task
│ ├── Nuget.cs
│ ├── Nuget.task
│ ├── Zip.cs
│ └── Zip.task
├── codeanalysis.ruleset
├── doc
├── example.pdf
├── scans
│ ├── Chrome 55.0.2883.87 m - Samsung SCX-4500.jpg
│ ├── Firefox Version 50.1.0 - Samsung SCX-4500.jpg
│ ├── Internet Explorer Version 11.576 - Samsung SCX-4500.jpg
│ └── Microsoft Edge 38.14393.0.0 - Samsung SCX-4500.jpg
├── screenshot_html_output.png
└── screenshot_mainform.png
├── header.txt
├── install_test
└── install.ps1
├── nuget.config
├── ttaenc
├── Album.cs
├── AlbumReader.cs
├── App.config
├── Context.cs
├── Firefox.cs
├── IOidCode.cs
├── IPackageDirectoryStructure.cs
├── IProductIdProvider.cs
├── MediaFileConverter.cs
├── Oid.cs
├── OidSvgWriter.cs
├── Package.cs
├── PackageBuilder.cs
├── PackageDirectoryStructure.cs
├── Picture.cs
├── ProductIdProvider.cs
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
├── Settings.cs
├── TestResult.xml
├── TipToiPen.cs
├── Track.cs
├── default-album-art.svg
├── media
│ ├── 2-columns-large.css
│ ├── 2-columns.css
│ ├── compact.css
│ ├── default-album-art.png
│ ├── default.css
│ ├── ding.ogg
│ ├── kids.css
│ ├── note_to_pen.png
│ ├── power-symbol.svg
│ ├── power.svg
│ ├── stop.svg
│ └── style.css
├── packages.config
├── tools
│ ├── mpg123-1.23.8-x86
│ │ ├── COPYING.txt
│ │ ├── NEWS.txt
│ │ ├── README.txt
│ │ ├── fmt123.h
│ │ ├── libgcc_s_sjlj-1.dll
│ │ ├── libltdl-7.dll
│ │ ├── libmpg123-0.dll
│ │ ├── libmpg123-0.dll.def
│ │ ├── libout123-0.dll
│ │ ├── mpg123.exe
│ │ ├── mpg123.h
│ │ ├── out123.exe
│ │ ├── out123.h
│ │ └── plugins
│ │ │ ├── output_dummy.dll
│ │ │ ├── output_win32.dll
│ │ │ └── output_win32_wasapi.dll
│ ├── oggdec.exe
│ ├── oggenc2.exe
│ ├── style.css
│ └── tttool-win32-1.8
│ │ ├── Audio
│ │ └── digits
│ │ │ ├── blob.ogg
│ │ │ ├── english_0.ogg
│ │ │ ├── english_1.ogg
│ │ │ ├── english_2.ogg
│ │ │ ├── english_3.ogg
│ │ │ ├── english_4.ogg
│ │ │ ├── english_5.ogg
│ │ │ ├── english_6.ogg
│ │ │ ├── english_7.ogg
│ │ │ ├── english_8.ogg
│ │ │ └── english_9.ogg
│ │ ├── Changelog.md
│ │ ├── Debug.yaml
│ │ ├── README.md
│ │ ├── contrib
│ │ ├── LICENSE.FLAC.txt
│ │ ├── LICENSE.mikmod.txt
│ │ ├── LICENSE.ogg-vorbis.txt
│ │ ├── LICENSE.smpeg.txt
│ │ ├── README-SDL.txt
│ │ ├── SDL.dll
│ │ ├── SDL_mixer.dll
│ │ ├── espeak-data
│ │ │ ├── af_dict
│ │ │ ├── am_dict
│ │ │ ├── an_dict
│ │ │ ├── as_dict
│ │ │ ├── az_dict
│ │ │ ├── bg_dict
│ │ │ ├── bn_dict
│ │ │ ├── ca_dict
│ │ │ ├── cs_dict
│ │ │ ├── cy_dict
│ │ │ ├── da_dict
│ │ │ ├── de_dict
│ │ │ ├── el_dict
│ │ │ ├── en_dict
│ │ │ ├── eo_dict
│ │ │ ├── es_dict
│ │ │ ├── et_dict
│ │ │ ├── eu_dict
│ │ │ ├── fa_dict
│ │ │ ├── fi_dict
│ │ │ ├── fr_dict
│ │ │ ├── ga_dict
│ │ │ ├── gd_dict
│ │ │ ├── grc_dict
│ │ │ ├── gu_dict
│ │ │ ├── hbs_dict
│ │ │ ├── hi_dict
│ │ │ ├── hu_dict
│ │ │ ├── hy_dict
│ │ │ ├── id_dict
│ │ │ ├── intonations
│ │ │ ├── is_dict
│ │ │ ├── it_dict
│ │ │ ├── jbo_dict
│ │ │ ├── ka_dict
│ │ │ ├── kl_dict
│ │ │ ├── kn_dict
│ │ │ ├── ko_dict
│ │ │ ├── ku_dict
│ │ │ ├── la_dict
│ │ │ ├── lfn_dict
│ │ │ ├── lt_dict
│ │ │ ├── lv_dict
│ │ │ ├── mbrola_ph
│ │ │ │ ├── af1_phtrans
│ │ │ │ ├── ca1_phtrans
│ │ │ │ ├── cr1_phtrans
│ │ │ │ ├── cs_phtrans
│ │ │ │ ├── de2_phtrans
│ │ │ │ ├── de4_phtrans
│ │ │ │ ├── de6_phtrans
│ │ │ │ ├── ee1_phtrans
│ │ │ │ ├── en1_phtrans
│ │ │ │ ├── es_phtrans
│ │ │ │ ├── fr1_phtrans
│ │ │ │ ├── gr2_phtrans
│ │ │ │ ├── grc-de6_phtrans
│ │ │ │ ├── hn1_phtrans
│ │ │ │ ├── hu1_phtrans
│ │ │ │ ├── ic1_phtrans
│ │ │ │ ├── id1_phtrans
│ │ │ │ ├── in1_phtrans
│ │ │ │ ├── ir1_phtrans
│ │ │ │ ├── it3_phtrans
│ │ │ │ ├── la1_phtrans
│ │ │ │ ├── lt1_phtrans
│ │ │ │ ├── lt2_phtrans
│ │ │ │ ├── mx1_phtrans
│ │ │ │ ├── mx2_phtrans
│ │ │ │ ├── nl_phtrans
│ │ │ │ ├── pl1_phtrans
│ │ │ │ ├── pt1_phtrans
│ │ │ │ ├── pt_phtrans
│ │ │ │ ├── ptbr4_phtrans
│ │ │ │ ├── ptbr_phtrans
│ │ │ │ ├── ro1_phtrans
│ │ │ │ ├── sv2_phtrans
│ │ │ │ ├── sv_phtrans
│ │ │ │ ├── tr1_phtrans
│ │ │ │ ├── us3_phtrans
│ │ │ │ ├── us_phtrans
│ │ │ │ └── vz_phtrans
│ │ │ ├── mk_dict
│ │ │ ├── ml_dict
│ │ │ ├── ms_dict
│ │ │ ├── nci_dict
│ │ │ ├── ne_dict
│ │ │ ├── nl_dict
│ │ │ ├── no_dict
│ │ │ ├── or_dict
│ │ │ ├── pa_dict
│ │ │ ├── pap_dict
│ │ │ ├── phondata
│ │ │ ├── phondata-manifest
│ │ │ ├── phonindex
│ │ │ ├── phontab
│ │ │ ├── pl_dict
│ │ │ ├── pt_dict
│ │ │ ├── ro_dict
│ │ │ ├── ru_dict
│ │ │ ├── si_dict
│ │ │ ├── sk_dict
│ │ │ ├── sl_dict
│ │ │ ├── sq_dict
│ │ │ ├── sv_dict
│ │ │ ├── sw_dict
│ │ │ ├── ta_dict
│ │ │ ├── te_dict
│ │ │ ├── tr_dict
│ │ │ ├── ur_dict
│ │ │ ├── vi_dict
│ │ │ ├── voices
│ │ │ │ ├── !v
│ │ │ │ │ ├── croak
│ │ │ │ │ ├── f1
│ │ │ │ │ ├── f2
│ │ │ │ │ ├── f3
│ │ │ │ │ ├── f4
│ │ │ │ │ ├── f5
│ │ │ │ │ ├── klatt
│ │ │ │ │ ├── klatt2
│ │ │ │ │ ├── klatt3
│ │ │ │ │ ├── klatt4
│ │ │ │ │ ├── m1
│ │ │ │ │ ├── m2
│ │ │ │ │ ├── m3
│ │ │ │ │ ├── m4
│ │ │ │ │ ├── m5
│ │ │ │ │ ├── m6
│ │ │ │ │ ├── m7
│ │ │ │ │ ├── whisper
│ │ │ │ │ └── whisperf
│ │ │ │ ├── asia
│ │ │ │ │ ├── fa
│ │ │ │ │ ├── fa-pin
│ │ │ │ │ ├── hi
│ │ │ │ │ ├── hy
│ │ │ │ │ ├── hy-west
│ │ │ │ │ ├── id
│ │ │ │ │ ├── ka
│ │ │ │ │ ├── kn
│ │ │ │ │ ├── ku
│ │ │ │ │ ├── ml
│ │ │ │ │ ├── ms
│ │ │ │ │ ├── ne
│ │ │ │ │ ├── pa
│ │ │ │ │ ├── ta
│ │ │ │ │ ├── tr
│ │ │ │ │ ├── vi
│ │ │ │ │ ├── vi-hue
│ │ │ │ │ ├── vi-sgn
│ │ │ │ │ ├── zh
│ │ │ │ │ └── zh-yue
│ │ │ │ ├── de
│ │ │ │ ├── default
│ │ │ │ ├── en
│ │ │ │ ├── en-us
│ │ │ │ ├── es-la
│ │ │ │ ├── europe
│ │ │ │ │ ├── an
│ │ │ │ │ ├── bg
│ │ │ │ │ ├── bs
│ │ │ │ │ ├── ca
│ │ │ │ │ ├── cs
│ │ │ │ │ ├── cy
│ │ │ │ │ ├── da
│ │ │ │ │ ├── el
│ │ │ │ │ ├── es
│ │ │ │ │ ├── et
│ │ │ │ │ ├── fi
│ │ │ │ │ ├── fr-be
│ │ │ │ │ ├── ga
│ │ │ │ │ ├── hr
│ │ │ │ │ ├── hu
│ │ │ │ │ ├── is
│ │ │ │ │ ├── it
│ │ │ │ │ ├── lt
│ │ │ │ │ ├── lv
│ │ │ │ │ ├── mk
│ │ │ │ │ ├── nl
│ │ │ │ │ ├── no
│ │ │ │ │ ├── pl
│ │ │ │ │ ├── pt-pt
│ │ │ │ │ ├── ro
│ │ │ │ │ ├── ru
│ │ │ │ │ ├── sk
│ │ │ │ │ ├── sq
│ │ │ │ │ ├── sr
│ │ │ │ │ └── sv
│ │ │ │ ├── fr
│ │ │ │ ├── mb
│ │ │ │ │ ├── mb-af1
│ │ │ │ │ ├── mb-af1-en
│ │ │ │ │ ├── mb-br1
│ │ │ │ │ ├── mb-br3
│ │ │ │ │ ├── mb-br4
│ │ │ │ │ ├── mb-cr1
│ │ │ │ │ ├── mb-cz2
│ │ │ │ │ ├── mb-de2
│ │ │ │ │ ├── mb-de3
│ │ │ │ │ ├── mb-de4
│ │ │ │ │ ├── mb-de4-en
│ │ │ │ │ ├── mb-de5
│ │ │ │ │ ├── mb-de5-en
│ │ │ │ │ ├── mb-de6
│ │ │ │ │ ├── mb-de6-grc
│ │ │ │ │ ├── mb-de7
│ │ │ │ │ ├── mb-ee1
│ │ │ │ │ ├── mb-en1
│ │ │ │ │ ├── mb-es1
│ │ │ │ │ ├── mb-es2
│ │ │ │ │ ├── mb-fr1
│ │ │ │ │ ├── mb-fr1-en
│ │ │ │ │ ├── mb-fr4
│ │ │ │ │ ├── mb-fr4-en
│ │ │ │ │ ├── mb-gr2
│ │ │ │ │ ├── mb-gr2-en
│ │ │ │ │ ├── mb-hu1
│ │ │ │ │ ├── mb-hu1-en
│ │ │ │ │ ├── mb-ic1
│ │ │ │ │ ├── mb-id1
│ │ │ │ │ ├── mb-ir1
│ │ │ │ │ ├── mb-ir2
│ │ │ │ │ ├── mb-it3
│ │ │ │ │ ├── mb-it4
│ │ │ │ │ ├── mb-la1
│ │ │ │ │ ├── mb-mx1
│ │ │ │ │ ├── mb-mx2
│ │ │ │ │ ├── mb-nl2
│ │ │ │ │ ├── mb-nl2-en
│ │ │ │ │ ├── mb-pl1
│ │ │ │ │ ├── mb-pl1-en
│ │ │ │ │ ├── mb-pt1
│ │ │ │ │ ├── mb-ro1
│ │ │ │ │ ├── mb-ro1-en
│ │ │ │ │ ├── mb-sw1
│ │ │ │ │ ├── mb-sw1-en
│ │ │ │ │ ├── mb-sw2
│ │ │ │ │ ├── mb-sw2-en
│ │ │ │ │ ├── mb-tr1
│ │ │ │ │ ├── mb-tr2
│ │ │ │ │ ├── mb-us1
│ │ │ │ │ ├── mb-us2
│ │ │ │ │ ├── mb-us3
│ │ │ │ │ └── mb-vz1
│ │ │ │ ├── other
│ │ │ │ │ ├── af
│ │ │ │ │ ├── en-n
│ │ │ │ │ ├── en-rp
│ │ │ │ │ ├── en-sc
│ │ │ │ │ ├── en-wi
│ │ │ │ │ ├── en-wm
│ │ │ │ │ ├── eo
│ │ │ │ │ ├── grc
│ │ │ │ │ ├── jbo
│ │ │ │ │ ├── la
│ │ │ │ │ ├── lfn
│ │ │ │ │ └── sw
│ │ │ │ ├── pt
│ │ │ │ └── test
│ │ │ │ │ ├── am
│ │ │ │ │ ├── as
│ │ │ │ │ ├── az
│ │ │ │ │ ├── bn
│ │ │ │ │ ├── eu
│ │ │ │ │ ├── gd
│ │ │ │ │ ├── gu
│ │ │ │ │ ├── kl
│ │ │ │ │ ├── ko
│ │ │ │ │ ├── nci
│ │ │ │ │ ├── or
│ │ │ │ │ ├── pap
│ │ │ │ │ ├── si
│ │ │ │ │ ├── sl
│ │ │ │ │ ├── te
│ │ │ │ │ └── ur
│ │ │ ├── zh_dict
│ │ │ └── zhy_dict
│ │ ├── espeak.exe
│ │ ├── libFLAC-8.dll
│ │ ├── libmikmod-2.dll
│ │ ├── libogg-0.dll
│ │ ├── libvorbis-0.dll
│ │ ├── libvorbisfile-3.dll
│ │ ├── oggenc.exe
│ │ ├── playmus.exe
│ │ └── smpeg.dll
│ │ ├── example.yaml
│ │ ├── example
│ │ ├── README
│ │ ├── back.ogg
│ │ ├── bing.ogg
│ │ ├── hello.ogg
│ │ ├── one.ogg
│ │ ├── three.ogg
│ │ └── two.ogg
│ │ ├── oid-decoder.html
│ │ ├── templates
│ │ ├── README.md
│ │ ├── Spielfiguren3.yaml
│ │ ├── WWW_Bauernhof.yaml
│ │ └── WWW_Weltatlas.yaml
│ │ ├── transcript
│ │ └── WWW_Bauernhof.csv
│ │ ├── tttool.exe
│ │ └── wip
│ │ ├── Firmware.md
│ │ ├── Hardware.md
│ │ ├── Header.md
│ │ ├── Tiptoi code.xls
│ │ ├── bytecode2oid.csv
│ │ ├── bytecode2oid.xls
│ │ └── games.txt
├── ttaenc.csproj
└── util
│ ├── About.cs
│ ├── DateTimeExtensions.cs
│ ├── Digest.cs
│ ├── Extensions.cs
│ ├── FileTransaction.cs
│ ├── HtmlGenerator.cs
│ ├── LogScope.cs
│ ├── PathUtil.cs
│ ├── Rfc3339Converter.cs
│ ├── SubProcess.cs
│ └── XmlSerializerUtil.cs
├── ttaencTests
├── AlbumReaderTests.cs
├── MediaFileConverterTests.cs
├── OidSvgWriterTests.cs
├── PackageBuilderTests.cs
├── PackageTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── TestHelper.cs
├── packages.config
├── test-data
│ ├── audio
│ │ ├── 187950__soundmatch24__rnb-beat.mp3
│ │ ├── 268049__sceza__bass-sine-sweep-10-400hz.ogg
│ │ ├── 268049__sceza__bass-sine-sweep-10-400hz.wav
│ │ ├── front.png
│ │ └── mono
│ │ │ └── ding.ogg
│ ├── tiptoi_code_A4_0_to_563.svg
│ ├── tiptoi_code_A4_10250_to_10810.svg
│ ├── tiptoi_code_A4_10811_to_11370.svg
│ ├── tiptoi_code_A4_11370_to_11930.svg
│ ├── tiptoi_code_A4_11931_to_12490.svg
│ ├── tiptoi_code_A4_12491_to_13046.svg
│ ├── tiptoi_code_A4_13047_to_13606.svg
│ ├── tiptoi_code_A4_13607_to_14166.svg
│ ├── tiptoi_code_A4_14167_to_14726.svg
│ ├── tiptoi_code_A4_14727_to_14999.svg
│ ├── tiptoi_code_A4_5211_to_5770.svg
│ ├── tiptoi_code_A4_564_to_5210.svg
│ ├── tiptoi_code_A4_5770_to_6330.svg
│ ├── tiptoi_code_A4_6331_to_6890.svg
│ ├── tiptoi_code_A4_6891_to_7450.svg
│ ├── tiptoi_code_A4_7451_to_8010.svg
│ ├── tiptoi_code_A4_8011_to_8570.svg
│ ├── tiptoi_code_A4_8571_to_9130.svg
│ ├── tiptoi_code_A4_9131_to_9690.svg
│ └── tiptoi_code_A4_9691_to_10250.svg
├── ttaencTests.csproj
└── util
│ ├── DateTimeExtensionsTests.cs
│ └── XmlSerializerUtilTests.cs
├── ttaudio.ico
├── ttaudio.sln
├── ttaudio
├── About.Designer.cs
├── About.cs
├── About.resx
├── App.config
├── AssignOids.Designer.cs
├── AssignOids.cs
├── AssignOids.resx
├── CueProvider.cs
├── Document.cs
├── Editor.Designer.cs
├── Editor.cs
├── Editor.resx
├── Options.Designer.cs
├── Options.cs
├── Options.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── TaskExtensions.cs
├── TaskForm.Designer.cs
├── TaskForm.cs
├── TaskForm.resx
├── TextboxAppender.cs
├── icon.png
├── icon.svg
├── icon32.png
├── note_to_pen.png
├── note_to_pen.svg
├── note_to_pen_36.png
├── packages.config
├── printer-36-000000.png
├── ttaudio.csproj
└── ttaudio.csproj.user
└── wix
├── License.rtf
├── Product.wxs
└── wix.wixproj
/.gitignore:
--------------------------------------------------------------------------------
1 | /ttaenc/*.user
2 | /.vs
3 | out
4 |
--------------------------------------------------------------------------------
/Build.proj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | sidiandi
5 | ttaudio
6 | 729eb7d7-fbfc-4261-bf6f-bb4fa59c4d6f
7 | ttaudio
8 |
9 |
10 |
--------------------------------------------------------------------------------
/GitVersion.yml:
--------------------------------------------------------------------------------
1 | mode: Mainline
2 | next-version: 0.0.1
3 | branches: {}
4 | ignore:
5 | sha: []
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ttaudio - TipToi Audio
2 |
3 | ttaudio converts a collection of *.mp3 or *.ogg audio files into a single *.gme file to play on the [Ravensburger TipToi](https://www.ravensburger.de/shop/tiptoi/index.html) pen.
4 |
5 | **IMPORTANT:**
6 | ttaudio is neither offered nor supported by Ravensburger. All information shown here was consolidated by independent hobbyists and only for educational purposes. The authors do not take any liability for possible damages.
7 |
8 | ## Installation
9 |
10 | Download the .msi file of the latest release [here](https://github.com/sidiandi/ttaudio/releases/latest).
11 |
12 | Save the .msi file to your computer and open it to start the installation.
13 |
14 | ## Main Window
15 |
16 | 
17 |
18 | ## HTML output
19 |
20 | 
21 |
22 | ## Instructions
23 | * Attach the TipToi pen to the USB port of your computer
24 | * Start ttaudio
25 | * Drop audio files into the file list
26 | * Click `menu -> Build -> Upload to Pen`
27 | * The conversion of audio files starts
28 | * A web page with optical IDs to play the audio files opens
29 | * Print the web page
30 | * Use a printer with at least 600 dpi black-and-white resolution.
31 | * Disable all "Toner Saving" or "Eco-Mode" settings.
32 | * Check the [list of supported printers](https://github.com/entropia/tip-toi-reveng/wiki/Printing)
33 | * Wait until ttaudio has copied the *.gme file to the pen
34 |
35 | ## More possibilities
36 |
37 | ttaenc.exe is a command line version of ttaudio. It is contained in the ttaudio installation.
38 |
39 | ttaudio is based on [tttool](http://tttool.entropia.de/), a universal, command line based tool to create and analyze GME files.
40 | Check out http://tttool.entropia.de/ if you want to do more than just upload some MP3 files, e.g. print your own interactive books or toys.
41 |
42 | ## Alternatives
43 |
44 | [ttmp32gme](https://github.com/thawn/ttmp32gme) is a great alternative to ttaudio. It is HTTP-server-based and also runs on Linux and MacOS.
45 |
46 | ## Dependencies
47 |
48 | Internally, ttaudio uses following tools:
49 | * [mpg123](http://www.mpg123.de/download.shtml) to decode mp3 files
50 | * [oggenc2.exe](http://www.rarewares.org/ogg-oggenc.php) to encode the ogg files for the audio pen
51 | * [oggdec.exe](http://www.rarewares.org/ogg-oggdec.php) to decode input *.ogg files
52 | * [tttool](https://github.com/entropia/tip-toi-reveng) to assemble the *.gme files
53 |
54 | ## How to Compile
55 |
56 | Install prerequisites:
57 | * Visual Studio 2017
58 | * nuget
59 | * WiX Toolset
60 |
61 | With [chocolatey](https://chocolatey.org/):
62 | ~~~~
63 | choco install visualstudio2017community wixtoolset
64 | ~~~~
65 |
66 | Build, test, create msi:
67 | ~~~~
68 | cd $(SourceRoot)
69 | build Setup
70 | ~~~~
71 |
72 |
--------------------------------------------------------------------------------
/build.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem script to start the build pipeline
4 | rem usage: build [Target]
5 | rem Target: build target. Default: Release. See build/build.targets for available targets
6 |
7 | set Target=%1
8 | if "%Target%" == "" (
9 | set Target=Setup
10 | )
11 |
12 | set msbuild="%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
13 | set SourceDir=%~dp0.
14 | call :file_name_from_path DirName %SourceDir%
15 | %msbuild% "%SourceDir%\build\Bootstrap.proj" /p:BuildTarget=%Target% || exit /b 1
16 | goto :eof
17 |
18 | :file_name_from_path
19 | (
20 | set "%~1=%~nx2"
21 | exit /b
22 | )
23 |
24 | :eof
25 |
--------------------------------------------------------------------------------
/build/Base.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Release
7 | Any CPU
8 | https://www.nuget.org/api/v2/package
9 |
10 |
11 |
12 |
13 |
14 |
15 | $(HOMEPATH)\Documents\$(ProductName)-secrets.props
16 |
17 |
18 |
19 |
20 |
21 |
22 | $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(MSBuildThisFileFullPath)))))
23 | $(SourceDir)\$(Productname).sln
24 | $(OutDir)
25 | $(SourceDir)\out\$(Configuration)
26 | $(BuildDir)\bin
27 | $(OutDir)
28 | $(BuildDir)\obj
29 | $(SolutionDir)lib\
30 | $(SourceDir)\setup\setup.wixproj
31 |
32 |
33 |
--------------------------------------------------------------------------------
/build/Bootstrap.proj:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/build/Common.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(BuildDir)\$(MSBuildProjectName)
6 | $(ProjectBuildDir)\bin
7 | $(OutputPath)
8 | $(ProjectBuildDir)\obj
9 | AnyCPU
10 | 1591
11 | $(OutputPath)\$(AssemblyName).xml
12 | true
13 | $(MSBuildProjectName)
14 | Library
15 | Properties
16 | $(ProductName)
17 |
21 | v4.6.1
22 | true
23 | $(OutputPath)\$(AssemblyName).xml
24 |
25 |
26 | true
27 | DEBUG;TRACE
28 | full
29 |
30 |
31 | TRACE
32 | true
33 | pdbonly
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/build/Common.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/build/ConsoleExe.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Exe
6 |
7 |
--------------------------------------------------------------------------------
/build/Exe.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WinExe
6 |
7 |
--------------------------------------------------------------------------------
/build/Test.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UnitTest
6 | {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
7 | $(ProductName).Test
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | $(OutDir)\..\test-data
16 |
17 |
18 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/build/secrets.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | xxx
5 | xxx
6 | xxx
7 |
8 |
--------------------------------------------------------------------------------
/build/task/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.Build.Framework;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Xml.Serialization;
6 | using System.Collections.Generic;
7 | using System.Text.RegularExpressions;
8 | using Microsoft.Build.Utilities;
9 |
10 | public class WriteCommonAssemblyInfo: Task
11 | {
12 | static string Quote(string x)
13 | {
14 | return "\"" + x + "\"";
15 | }
16 |
17 | public string CompanyName { get; set; }
18 | public string ProductName { get; set; }
19 | public string Copyright {get; set; }
20 | public string Output { get; set; }
21 |
22 | override public bool Execute()
23 | {
24 | File.WriteAllText(Output, @"// Generated. Changes will be lost.
25 | [assembly: System.Reflection.AssemblyCopyright(" + Quote(String.Format("Copyright (c) {0} {1}", CompanyName, DateTime.Now.Year)) + @")]
26 | [assembly: System.Reflection.AssemblyCompany(" + Quote(CompanyName) + @")]
27 | [assembly: System.Reflection.AssemblyProduct(" + Quote(ProductName) + @")]
28 | ");
29 | return true;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/build/task/AssemblyInfo.task:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/build/task/Zip.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.Build.Framework;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Xml.Serialization;
6 | using System.Collections.Generic;
7 | using System.Text.RegularExpressions;
8 | using System.IO.Compression;
9 | using Microsoft.Build.Utilities;
10 |
11 | public class ZipProductFiles: Task
12 | {
13 | static string Quote(string x)
14 | {
15 | return "\"" + x + "\"";
16 | }
17 |
18 | public string Version { get; set; }
19 | public string OutputDirectory { get; set; }
20 | public ITaskItem[] Targets { get; set; }
21 | public ITaskItem[] Output { get; set; }
22 |
23 | public ZipProductFiles()
24 | {
25 | OutputDirectory = ".";
26 | }
27 |
28 | static void Dump(ITaskItem taskItem, TextWriter w)
29 | {
30 | w.WriteLine("# {0}", taskItem.ItemSpec);
31 | foreach (string n in taskItem.MetadataNames)
32 | {
33 | w.WriteLine("{0}: {1}", n, taskItem.GetMetadata(n));
34 | }
35 | }
36 |
37 | static bool IsExtension(FileInfo f, string extension)
38 | {
39 | return string.Equals(f.Extension, extension);
40 | }
41 |
42 | static string ReplaceExtension(string path, string extension)
43 | {
44 | return Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path) + extension);
45 | }
46 |
47 | static IEnumerable GetProductFiles(string targetDir)
48 | {
49 | return new DirectoryInfo(targetDir).GetFiles("*", SearchOption.AllDirectories)
50 | .Where(_ => !IsExtension(_, ".pdb"))
51 | .Where(_ => (!IsExtension(_, ".xml") || !File.Exists(ReplaceExtension(_.FullName, ".xml"))));
52 | }
53 |
54 | static ITaskItem Zip(ITaskItem target, string OutputDirectory, string version)
55 | {
56 | var zipFile = Path.Combine(OutputDirectory, String.Join("-", Path.GetFileNameWithoutExtension(target.ItemSpec), version) + ".zip");
57 | if (File.Exists(zipFile))
58 | {
59 | File.Delete(zipFile);
60 | }
61 | using (var archive = ZipFile.Open(zipFile, ZipArchiveMode.Create))
62 | {
63 | var targetDir = Path.GetDirectoryName(target.ItemSpec);
64 | Console.WriteLine("Zipping {0} to {1}", targetDir, zipFile);
65 | foreach (var f in GetProductFiles(targetDir))
66 | {
67 | var name = f.FullName.Substring(targetDir.Length+1);
68 | archive.CreateEntryFromFile(f.FullName, name);
69 | }
70 | }
71 | // Dump(target, Console.Out);
72 | return new TaskItem(zipFile);
73 | }
74 |
75 | override public bool Execute()
76 | {
77 | Output = Targets.Select(_ => Zip(_, OutputDirectory, Version)).ToArray();
78 | return true;
79 | }
80 | }
--------------------------------------------------------------------------------
/build/task/Zip.task:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/doc/example.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/example.pdf
--------------------------------------------------------------------------------
/doc/scans/Chrome 55.0.2883.87 m - Samsung SCX-4500.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/scans/Chrome 55.0.2883.87 m - Samsung SCX-4500.jpg
--------------------------------------------------------------------------------
/doc/scans/Firefox Version 50.1.0 - Samsung SCX-4500.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/scans/Firefox Version 50.1.0 - Samsung SCX-4500.jpg
--------------------------------------------------------------------------------
/doc/scans/Internet Explorer Version 11.576 - Samsung SCX-4500.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/scans/Internet Explorer Version 11.576 - Samsung SCX-4500.jpg
--------------------------------------------------------------------------------
/doc/scans/Microsoft Edge 38.14393.0.0 - Samsung SCX-4500.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/scans/Microsoft Edge 38.14393.0.0 - Samsung SCX-4500.jpg
--------------------------------------------------------------------------------
/doc/screenshot_html_output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/screenshot_html_output.png
--------------------------------------------------------------------------------
/doc/screenshot_mainform.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/doc/screenshot_mainform.png
--------------------------------------------------------------------------------
/header.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) https://github.com/sidiandi 2016-2018
2 |
3 | This file is part of ttaudio.
4 |
5 | ttaudio is free software: you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation, either version 3 of the License, or
8 | (at your option) any later version.
9 |
10 | ttaudio is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License
16 | along with ttaudio. If not, see .
--------------------------------------------------------------------------------
/install_test/install.ps1:
--------------------------------------------------------------------------------
1 | $productName = "ttaudio"
2 | $msi = dir '.\out\Release-Any CPU\*.msi'
3 |
4 | "Will test installation of $msi"
5 |
6 | function uninstall($appName)
7 | {
8 | "Looking for already installed $appName"
9 |
10 | $app = Get-WmiObject -Class Win32_Product -Filter "Name = 'ttaudio'" | Where-Object { $_.Name -match $appName }
11 |
12 | if ($app)
13 | {
14 | "Found already installed $appName"
15 | $app.Uninstall()
16 | "$appName was uninstalled"
17 | }
18 | else
19 | {
20 | "$appName is not installed."
21 | }
22 | }
23 |
24 | function install($file)
25 | {
26 | $DataStamp = get-date -Format yyyyMMddTHHmmss
27 | $logFile = '{0}-{1}.log' -f $file.fullname,$DataStamp
28 | $MSIArguments = @(
29 | "/norestart"
30 | "/lv"
31 | """$logFile"""
32 | "/quiet"
33 | "/i"
34 | ('"{0}"' -f $file.fullname)
35 | )
36 | $MSIArguments
37 | Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow
38 | "$file was installed. Log in $logFile"
39 | }
40 |
41 | uninstall($productName)
42 | install($msi)
43 |
44 |
45 |
--------------------------------------------------------------------------------
/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ttaenc/Album.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.Linq;
21 | using System.Text;
22 | using System.Threading.Tasks;
23 | using TagLib;
24 |
25 | namespace ttaenc
26 | {
27 | public class Album
28 | {
29 | public string Artist
30 | {
31 | get
32 | {
33 | return String.Join(", ", Tracks.SelectMany(_ => _.Artists).Distinct());
34 | }
35 | }
36 |
37 | public string Title;
38 |
39 | public IPicture GetPicture()
40 | {
41 | return Tracks.SelectMany(t => t.GetPictures())
42 | .Concat(GetAlbumPictures())
43 | .FirstOrDefault();
44 | }
45 |
46 | IEnumerable GetAlbumPictures()
47 | {
48 | return Tracks.Select(t => System.IO.Path.GetDirectoryName(t.Path)).Distinct()
49 | .SelectMany(d => new System.IO.DirectoryInfo(d).GetFiles())
50 | .Where(f => AlbumReader.IsImageFile(f))
51 | .OrderByDescending(f => AlbumReader.IsFrontCover(f))
52 | .Select(f => new Picture(f));
53 | }
54 |
55 | public Track[] Tracks;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/ttaenc/App.config:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/ttaenc/Context.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ttaenc
9 | {
10 | public class Context
11 | {
12 | public static MediaFileConverter GetDefaultMediaFileConverter()
13 | {
14 | var cacheDirectory = Path.Combine(About.Get().LocalApplicationDataDirectory, "cache");
15 | var converter = new MediaFileConverter(cacheDirectory);
16 | return converter;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ttaenc/Firefox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ttaenc
10 | {
11 | public class Firefox
12 | {
13 | public static string Executable => Path.Combine(Environment.ExpandEnvironmentVariables("%ProgramW6432%"), @"Mozilla Firefox\firefox.exe");
14 |
15 | public static bool IsInstalled => File.Exists(Executable);
16 |
17 | public static void OpenHtmlPage(string htmlPage)
18 | {
19 | Process.Start(Executable, htmlPage);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ttaenc/IOidCode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.Linq;
21 | using System.Text;
22 | using System.Threading.Tasks;
23 |
24 | namespace ttaenc
25 | {
26 | ///
27 | /// Translates between the 9-digit representation of an OID code to its integer representation
28 | ///
29 | public interface IOidCode
30 | {
31 | ///
32 | /// Converts an OID code from its 9-digit form to an integer ID
33 | ///
34 | ///
35 | ///
36 | int FromDigits(int[] digits);
37 |
38 | ///
39 | /// Converts an id into its 9-digit OID representation
40 | ///
41 | ///
42 | ///
43 | int[] ToDigits(int oid);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/ttaenc/IPackageDirectoryStructure.cs:
--------------------------------------------------------------------------------
1 | namespace ttaenc
2 | {
3 | public interface IPackageDirectoryStructure
4 | {
5 | Package Package
6 | {
7 | get;
8 | }
9 |
10 | string GmeFile { get; }
11 | string HtmlFile { get; }
12 | string HtmlMediaDirectory { get; }
13 | }
14 | }
--------------------------------------------------------------------------------
/ttaenc/IProductIdProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ttaenc
8 | {
9 | public interface IProductIdProvider
10 | {
11 | int GetNextAvailableProductId();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ttaenc/OidSvgWriter.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/OidSvgWriter.cs
--------------------------------------------------------------------------------
/ttaenc/PackageDirectoryStructure.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.IO;
21 | using System.Linq;
22 | using System.Text;
23 | using System.Threading.Tasks;
24 |
25 | namespace ttaenc
26 | {
27 | public class PackageDirectoryStructure : IPackageDirectoryStructure
28 | {
29 | public PackageDirectoryStructure(string rootDirectory, Package package)
30 | {
31 | this.package = package;
32 | this.rootDirectory = Path.Combine(rootDirectory, FileName);
33 | }
34 |
35 | readonly string rootDirectory;
36 | readonly Package package;
37 |
38 | string FileName
39 | {
40 | get
41 | {
42 | return String.Join("_", gmePrefix, this.package.ProductId, PathUtil.GetValidFileName(this.package.Title)).Truncate(64);
43 | }
44 | }
45 |
46 | const string gmeExtension = ".gme";
47 | const string gmePrefix = "ttaudio";
48 |
49 | const string ttaExtension = ".tta";
50 | const string htmlExtension = ".html";
51 |
52 | public Package Package { get { return package; } }
53 |
54 | public string GmeFile
55 | {
56 | get { return Path.Combine(rootDirectory, FileName + gmeExtension); }
57 | }
58 |
59 | string HtmlDirectory
60 | {
61 | get
62 | {
63 | return rootDirectory;
64 | }
65 | }
66 |
67 | public string HtmlFile
68 | {
69 | get
70 | {
71 | return Path.Combine(HtmlDirectory, FileName + htmlExtension);
72 | }
73 | }
74 |
75 | public string HtmlMediaDirectory
76 | {
77 | get
78 | {
79 | return Path.Combine(HtmlDirectory, "media");
80 | }
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/ttaenc/Picture.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using TagLib;
7 |
8 | namespace ttaenc
9 | {
10 | class Picture : IPicture
11 | {
12 | public Picture(System.IO.FileInfo file)
13 | {
14 | using (var r = System.IO.File.OpenRead(file.FullName))
15 | {
16 | Data = new ByteVector(PathUtil.ReadAll(r));
17 | }
18 | MimeType = "image/" + file.Extension.Substring(1);
19 | }
20 | public ByteVector Data { get; set; }
21 |
22 | public string Description
23 | {
24 | get; set;
25 | }
26 |
27 | public string MimeType { get; set; }
28 |
29 | public PictureType Type
30 | {
31 | get
32 | {
33 | return PictureType.FrontCover;
34 | }
35 |
36 | set
37 | {
38 | throw new NotImplementedException();
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/ttaenc/ProductIdProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Xml.Serialization;
8 |
9 | namespace ttaenc
10 | {
11 | public class ProductIdProvider : IProductIdProvider
12 | {
13 | public int GetNextAvailableProductId()
14 | {
15 | var s = Settings.Read();
16 | var id = s.NextProductId++;
17 | s.Write();
18 | return id;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ttaenc/Program.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using Sidi.GetOpt;
19 | using System;
20 | using System.Collections.Generic;
21 | using System.Diagnostics;
22 | using System.IO;
23 | using System.Linq;
24 | using System.Text;
25 | using System.Text.RegularExpressions;
26 | using System.Threading;
27 | using System.Threading.Tasks;
28 |
29 | namespace ttaenc
30 | {
31 | class Program
32 | {
33 | private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
34 |
35 | static int Main(string[] args)
36 | {
37 | log4net.Config.BasicConfigurator.Configure();
38 | return Sidi.GetOpt.GetOpt.Run(new Program(), args);
39 | }
40 |
41 | [Usage("Upload audio files to TipToi pen.\r\nSee https://github.com/sidiandi/ttaudio for details.")]
42 | public async Task Build(string[] mp3FilesOrDirectories)
43 | {
44 | if (!mp3FilesOrDirectories.Any())
45 | {
46 | throw new ArgumentOutOfRangeException(nameof(mp3FilesOrDirectories), String.Empty, "You must specify at least one audio file.");
47 | }
48 |
49 | var pen = TipToiPen.GetAll().FirstOrDefault();
50 | if (pen == null)
51 | {
52 | pen = TipToiPen.Simulated;
53 | log.InfoFormat("Pen is not attached. Output will be written to {0}", pen.RootDirectory);
54 | }
55 |
56 | var package = Package.CreateFromInputPaths(mp3FilesOrDirectories);
57 |
58 | var cacheDirectory = Path.Combine(About.Get().LocalApplicationDataDirectory, "cache");
59 | var converter = new MediaFileConverter(cacheDirectory);
60 |
61 | var structure = new PackageDirectoryStructure(pen.RootDirectory, package);
62 | var packageBuilder = new PackageBuilder(structure, converter, Settings.Read().CreateOidSvgWriter());
63 | await packageBuilder.Build(CancellationToken.None);
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/ttaenc/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System.Reflection;
19 | using System.Runtime.CompilerServices;
20 | using System.Runtime.InteropServices;
21 |
22 | // General Information about an assembly is controlled through the following
23 | // set of attributes. Change these attribute values to modify the information
24 | // associated with an assembly.
25 | [assembly: AssemblyTitle("ttab")]
26 | [assembly: AssemblyDescription("")]
27 | [assembly: AssemblyConfiguration("")]
28 | // Setting ComVisible to false makes the types in this assembly not visible
29 | // to COM components. If you need to access a type in this assembly from
30 | // COM, set the ComVisible attribute to true on that type.
31 | [assembly: ComVisible(false)]
32 |
33 | // The following GUID is for the ID of the typelib if this project is exposed to COM
34 | [assembly: Guid("b1021896-02ad-4539-96ae-8cc43bd2599c")]
35 |
--------------------------------------------------------------------------------
/ttaenc/Settings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ttaenc
9 | {
10 | public class Settings
11 | {
12 | public Settings()
13 | {
14 | NextProductId = 800;
15 | var w = new OidSvgWriter(new TiptoiOidCode());
16 | OidDotSize = w.DotSize;
17 | OidGridSpacing = w.GridSpacing;
18 | }
19 |
20 | public int NextProductId { set; get; }
21 |
22 | public float OidDotSize
23 | {
24 | get; set;
25 | }
26 |
27 | public float OidGridSpacing
28 | {
29 | get; set;
30 | }
31 |
32 | public OidSvgWriter CreateOidSvgWriter()
33 | {
34 | return new OidSvgWriter(new TiptoiOidCode())
35 | {
36 | DotSize = OidDotSize,
37 | GridSpacing = OidGridSpacing
38 | };
39 | }
40 |
41 | static string SettingsFile
42 | {
43 | get
44 | {
45 | var about = About.Get();
46 | return Path.Combine(about.LocalApplicationDataDirectory, PathUtil.GetValidFileName(about.Product) + ".settings.xml");
47 | }
48 | }
49 |
50 | public static Settings Read()
51 | {
52 | return XmlSerializerUtil.SafeRead(SettingsFile);
53 | }
54 |
55 | public void Write()
56 | {
57 | XmlSerializerUtil.Write(SettingsFile, this);
58 | }
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/ttaenc/TipToiPen.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.IO;
21 | using System.Linq;
22 | using System.Text;
23 | using System.Threading.Tasks;
24 |
25 | namespace ttaenc
26 | {
27 | public class TipToiPen
28 | {
29 | TipToiPen(string root)
30 | {
31 | RootDirectory = root;
32 | }
33 |
34 | public string RootDirectory
35 | {
36 | get; private set;
37 | }
38 |
39 | public static TipToiPen Simulated
40 | {
41 | get
42 | {
43 | return new TipToiPen(Path.Combine(About.Get().DocumentsDirectory, "pen"));
44 | }
45 | }
46 |
47 | public static TipToiPen Get()
48 | {
49 | var pen = GetAll().FirstOrDefault();
50 | if (pen == null)
51 | {
52 | pen = Simulated;
53 | }
54 | return pen;
55 | }
56 |
57 | public static IEnumerable GetAll()
58 | {
59 | // copy to stick, if possible
60 | var stickFile = @".tiptoi.log";
61 | return DriveInfo.GetDrives()
62 | .Select(d => d.RootDirectory.FullName)
63 | .Where(_ => File.Exists(Path.Combine(_, stickFile)))
64 | .Select(_ => new TipToiPen(_));
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/ttaenc/Track.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) https://github.com/sidiandi 2016
2 | //
3 | // This file is part of tta.
4 | //
5 | // tta is free software: you can redistribute it and/or modify
6 | // it under the terms of the GNU General Public License as published by
7 | // the Free Software Foundation, either version 3 of the License, or
8 | // (at your option) any later version.
9 | //
10 | // tta is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with Foobar. If not, see .
17 |
18 | using System;
19 | using System.Collections.Generic;
20 | using System.Linq;
21 | using System.Text;
22 | using System.Threading.Tasks;
23 | using TagLib;
24 |
25 | namespace ttaenc
26 | {
27 | public class Track
28 | {
29 | public string[] Artists;
30 | public string Album;
31 | public string Title;
32 | public string Path;
33 | public uint TrackNumber;
34 | public TimeSpan Duration;
35 |
36 | public string PenAudioFile { get; set; }
37 | public int Oid { get; set; }
38 |
39 | public TagLib.IPicture[] GetPictures()
40 | {
41 | try
42 | {
43 | using (var f = TagLib.File.Create(this.Path))
44 | {
45 | if (!f.Tag.IsEmpty)
46 | {
47 | return f.Tag.Pictures;
48 | }
49 | }
50 | }
51 | catch (Exception)
52 | {
53 | }
54 |
55 | return new IPicture[] { };
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/ttaenc/media/2-columns-large.css:
--------------------------------------------------------------------------------
1 | .album {
2 | width: 8cm;
3 | display: inline-block;
4 | vertical-align: top;
5 | }
6 |
7 | .album-art {
8 | float: left;
9 | width: 4cm;
10 | height: 4cm;
11 | margin: 4px;
12 | }
13 |
14 | .album-title {
15 | display: block;
16 | }
17 |
18 | .track-list {
19 | clear: left;
20 | list-style:none;
21 | padding-left:0;
22 | display: block;
23 | }
24 |
25 | .track-list li {
26 | display: block;
27 | }
28 |
29 | .album-clear {
30 | display: none;
31 | }
32 |
--------------------------------------------------------------------------------
/ttaenc/media/2-columns.css:
--------------------------------------------------------------------------------
1 | .album {
2 | width: 8cm;
3 | display: inline-block;
4 | vertical-align: top;
5 | }
6 |
7 | .album-art {
8 | float: left;
9 | }
10 |
11 | .album-title {
12 | display: block;
13 | }
14 |
15 | .track-list {
16 | clear: left;
17 | list-style:none;
18 | padding-left:0;
19 | display: block;
20 | }
21 |
22 | .track-list li {
23 | display: block;
24 | }
25 |
26 | .album-clear {
27 | display: none;
28 | }
29 |
--------------------------------------------------------------------------------
/ttaenc/media/compact.css:
--------------------------------------------------------------------------------
1 | .album {
2 | width: 5cm;
3 | display: inline-block;
4 | }
5 |
6 | .track-number {
7 | display: none;
8 | }
9 |
10 | .track-title {
11 | display: none;
12 | }
13 |
14 | .track-duration {
15 | display: none;
16 | }
17 |
18 | .track-list li {
19 | style: none;
20 | display: inline;
21 | }
22 |
--------------------------------------------------------------------------------
/ttaenc/media/default-album-art.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/media/default-album-art.png
--------------------------------------------------------------------------------
/ttaenc/media/default.css:
--------------------------------------------------------------------------------
1 | .track-list li {
2 | display: inline;
3 | }
4 |
--------------------------------------------------------------------------------
/ttaenc/media/ding.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/media/ding.ogg
--------------------------------------------------------------------------------
/ttaenc/media/kids.css:
--------------------------------------------------------------------------------
1 | .album {
2 | clear:left;
3 | display: block;
4 | }
5 |
6 | .album-title {
7 | display: none;
8 | }
9 |
10 | .album-art {
11 | margin: 0px;
12 | }
13 |
14 | .track-list {
15 | list-style:none;
16 | padding-left:0;
17 | }
18 |
19 | .track-number {
20 | display: none;
21 | }
22 |
23 | .track-title {
24 | display: none;
25 | }
26 |
27 | .track-duration {
28 | display: none;
29 | }
30 |
31 | .track-list li {
32 | style: none;
33 | display: inline;
34 | }
35 |
36 | .oid-area {
37 | width: 2cm;
38 | height: 2cm;
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/ttaenc/media/note_to_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/media/note_to_pen.png
--------------------------------------------------------------------------------
/ttaenc/media/power-symbol.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/ttaenc/media/power.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/ttaenc/media/stop.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
26 |
--------------------------------------------------------------------------------
/ttaenc/media/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: helvetica;
3 | font-size: 10px;
4 | }
5 |
6 | h2
7 | {
8 | font-size: 1.0em;
9 | }
10 |
11 | .printInstructions img {
12 | float: left;
13 | }
14 |
15 | .printInstructions {
16 | font-size: 12px;
17 | border: solid;
18 | border-width: 1px;
19 |
20 | background-color: lightyellow;
21 |
22 | padding: 4px;
23 | margin: 4px;
24 | }
25 |
26 | .oidDebug {
27 | display: none;
28 | font-size: 12px;
29 | border: solid;
30 | border-width: 1px;
31 | background-color: lightyellow;
32 | padding: 4px;
33 | margin: 4px;
34 | }
35 |
36 | @media print {
37 |
38 | .printInstructions {
39 | display: none;
40 | }
41 |
42 | .oidDebug {
43 | display: none;
44 | }
45 | }
46 |
47 | .album {
48 | border: solid;
49 | border-width: 1px;
50 |
51 | padding: 0.1cm;
52 | margin: 0.05cm;
53 |
54 | page-break-inside: avoid;
55 | clear:left;
56 | display: block;
57 | vertical-align: top;
58 | }
59 |
60 | .album-art {
61 | float: left;
62 | width: 2cm;
63 | height: 2cm;
64 | margin: 4px;
65 | }
66 |
67 | .album-title {
68 | display: inline;
69 | }
70 |
71 | .album-clear {
72 | clear: both;
73 | display: inline-block;
74 | }
75 |
76 | .track-list {
77 | display: inline;
78 | list-style:none;
79 | padding-left:0;
80 | }
81 |
82 | .oid-area {
83 | width: 0.5cm;
84 | height: 0.5cm;
85 | }
86 |
87 | .oid-button {
88 | border: solid;
89 | border-width: 1px;
90 | display: inline-block;
91 |
92 | padding: 4px;
93 | margin: 4px;
94 | }
95 |
--------------------------------------------------------------------------------
/ttaenc/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/libgcc_s_sjlj-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/libgcc_s_sjlj-1.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/libltdl-7.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/libltdl-7.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/libmpg123-0.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/libmpg123-0.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/libout123-0.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/libout123-0.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/mpg123.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/mpg123.exe
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/out123.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/out123.exe
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_dummy.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_dummy.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_win32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_win32.dll
--------------------------------------------------------------------------------
/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_win32_wasapi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/mpg123-1.23.8-x86/plugins/output_win32_wasapi.dll
--------------------------------------------------------------------------------
/ttaenc/tools/oggdec.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/oggdec.exe
--------------------------------------------------------------------------------
/ttaenc/tools/oggenc2.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/oggenc2.exe
--------------------------------------------------------------------------------
/ttaenc/tools/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: helvetica;
3 | font-size: 10px;
4 | }
5 |
6 | .album-art {
7 | float: left;
8 | width: 2cm;
9 | height: 2cm;
10 |
11 | padding: 4px;
12 | margin: 4px;
13 | }
14 |
15 | .album {
16 | width: 5cm;
17 | border: solid;
18 | border-width: 1px;
19 |
20 | padding: 4px;
21 | margin: 4px;
22 |
23 | page-break-inside: avoid;
24 | display: inline-block;
25 | vertical-align: top;
26 | }
27 |
28 | .OidButton {
29 | border: solid;
30 | border-width: 1px;
31 | display: inline-block;
32 |
33 | padding: 4px;
34 | margin: 4px;
35 | }
36 |
37 | h2
38 | {
39 | font-size: 1.0em;
40 | }
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/blob.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/blob.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_0.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_0.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_1.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_1.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_2.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_2.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_3.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_3.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_4.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_4.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_5.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_5.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_6.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_6.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_7.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_7.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_8.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_8.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_9.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/Audio/digits/english_9.ogg
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/LICENSE.FLAC.txt:
--------------------------------------------------------------------------------
1 | The source code to this library used with SDL_mixer can be found here:
2 | http://www.libsdl.org/projects/SDL_mixer/libs/
3 | ---
4 |
5 | Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
6 |
7 | Redistribution and use in source and binary forms, with or without
8 | modification, are permitted provided that the following conditions
9 | are met:
10 |
11 | - Redistributions of source code must retain the above copyright
12 | notice, this list of conditions and the following disclaimer.
13 |
14 | - Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 |
18 | - Neither the name of the Xiph.org Foundation nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
26 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
29 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 |
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/LICENSE.ogg-vorbis.txt:
--------------------------------------------------------------------------------
1 | The source code to this library used with SDL_mixer can be found here:
2 | http://www.libsdl.org/projects/SDL_mixer/libs/
3 | ---
4 |
5 | Copyright (c) 2002-2008 Xiph.org Foundation
6 |
7 | Redistribution and use in source and binary forms, with or without
8 | modification, are permitted provided that the following conditions
9 | are met:
10 |
11 | - Redistributions of source code must retain the above copyright
12 | notice, this list of conditions and the following disclaimer.
13 |
14 | - Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 |
18 | - Neither the name of the Xiph.org Foundation nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
26 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 |
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/README-SDL.txt:
--------------------------------------------------------------------------------
1 |
2 | Please distribute this file with the SDL runtime environment:
3 |
4 | The Simple DirectMedia Layer (SDL for short) is a cross-platfrom library
5 | designed to make it easy to write multi-media software, such as games and
6 | emulators.
7 |
8 | The Simple DirectMedia Layer library source code is available from:
9 | http://www.libsdl.org/
10 |
11 | This library is distributed under the terms of the GNU LGPL license:
12 | http://www.gnu.org/copyleft/lesser.html
13 |
14 |
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/SDL.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/SDL.dll
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/SDL_mixer.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/SDL_mixer.dll
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/af_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/af_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/am_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/am_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/an_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/an_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/as_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/as_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/az_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/az_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/bg_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/bg_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/bn_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/bn_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ca_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ca_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/cs_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/cs_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/cy_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/cy_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/da_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/da_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/de_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/de_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/el_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/el_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/en_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/en_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/eo_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/eo_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/es_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/es_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/et_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/et_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/eu_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/eu_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fa_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fa_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fi_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fi_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fr_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/fr_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ga_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ga_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/gd_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/gd_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/grc_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/grc_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/gu_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/gu_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hbs_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hbs_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hi_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hi_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hu_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hu_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hy_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/hy_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/id_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/id_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/intonations:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/intonations
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/is_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/is_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/it_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/it_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/jbo_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/jbo_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ka_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ka_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/kl_dict:
--------------------------------------------------------------------------------
1 | Q AGl AYl AHl
_dpt1'A#
2 | AlS A9% A k# A(9l A,1# A0l7 A4lA A8l2 A@0l ADh# AHl" ALlY AP/l AXTl _1M4$2G%7%9'2 A\:l _1M1$H/(Y2 A`%1Y _1M2$2A%7%9'2 _1M3$2A%7%9#H AhXl _3Xo/"nS/
_ords _11ol7SHs _10o/%
2s
_10nh(7%/
_12o/o7SHs _7Xokn7S9n"Y$2Y/qT
2
_3X/3nVT
_0Ck(2
V _1C$Hk(2"
V _192$H2 _18nH2 _11l7T
_10/%
_13/3nH2
3 | _12/o7
_15S$A/2 _14S9'"H2 _17YrH2 _16Y#9YH2 _7Xkn7S9n"Y _1oSr"YHs _1n#/#Ylh
4 | _2on2
2
_2nA#"7(1 _3o/"lH9s _3n0%D#Y(/ _2X/q: _5oSlA/s _5n/#i%A#/ _4XSro _6oY9lHs _6n#"S%2%i%/ _5Xkn7/lY _7oYqT2s _7n#"S%2lhA#"7(1 _6X/lY _0n2(7( _9o2%
2s _9nh(7%D%7(#/ _8XS%"Y _9Xkn7SlAY
5 | _4oS9$o _4nY%Y#A#/ _0M4G%7%9'2s _8n#"S%2lh0%D#Y(/
6 | _8oo/2s _0M2A%7%9'2o _0M3A%7%9#Hs _0M1/(Y2 _2Xo/qT
2
_4XoSro/qT
2
_5Xokn7/lY$2Y/qT
2
_3/3$ _2/' _1$2 _02p7 _7Yq:
7 | _6YldY _5SlA _4S%o _92%
8 | _8pH
_6Xo/"lY$2Y/qT
2
_0ando _8XoS%"Y$2Y/qT
2
_9Xokn7SlAY$2Y/qT
2
Bnng ng å p æ n ø r a CC# # B a# aq ar i m t n/ p n0 k nQ b G c 1 eY i d H e CCl l B el f S fS g gic d ge h k hk i CC% % B i% j 9 j9 k 1 k1 l 7 li m A mA n 2 n2 a2# aa2# gD ngD o CC' ' B o' p 0 p0 q h qhh r " l"i rj s Y sY t / t/ i N lt iu s u CC( ( B u( v T vT w : x 1Y y CC% B% 9 z X $H'7#"
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/kn_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/kn_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ko_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ko_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ku_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/ku_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/la_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/la_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lfn_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lfn_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lt_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lt_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lv_dict:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/lv_dict
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/af1_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/af1_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/ca1_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/ca1_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/cr1_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/cr1_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/cs_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/cs_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/de2_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/de2_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/de4_phtrans:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sidiandi/ttaudio/ca882aec3a8999d27f945701654f33641e14dbdf/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/de4_phtrans
--------------------------------------------------------------------------------
/ttaenc/tools/tttool-win32-1.8/contrib/espeak-data/mbrola_ph/de6_phtrans:
--------------------------------------------------------------------------------
1 | w i: v l/2 l ( l/ l r/ 6 r- R l- l w/ w j/ j ; g- @- * R E2 E y Y W 9 A: a: A a: Y: 2: OI OY 3 6 _| ? _! ? pF pf r R V# R UR U R <