CAS/README.md

61 lines
2.2 KiB
Markdown
Raw Normal View History

2022-07-09 16:22:58 -04:00
# CAS #
Compressed Audio Signals (CAS) is a lossless compression codec that can compress
full pcm audio into manageable file sizes or reasonable streaming bit rates with
0 loss in audio quality. This app was created to encode/decode cas formatted
files just as a proof of concept.
### Usage ###
With encoding selected, you can convert any audio file the Qt's gstreamer module
supports into a cas formatted file by selecting it on the input file and choosing
an output file to save (use .cas extension if you like). The other PCM settings
like bitdepth, channels, sample rate and endianness are coded into the cas
header and will be used when decoding.
When decoding, the file is converted into fully uncompressed PCM audio (use .wav
as the appropriate extension).
### Build Setup ###
For Linux you need the following packages to successfully build/install:
```
qtbase5-dev
libgl1-mesa-dev
libxcb1-dev
gcc
make
python3
```
For Windows support you need to have the following applications installed:
```
Qt5.12 or newer
Python3
```
### Build ###
To build this project from source you just need to run the build.py and then the
install.py python scripts. While running the build the script, it will try to
find the Qt API installed in your machine according to the PATH env variable. If
not found, it will ask you to input where it can find the Qt bin folder where
the qmake executable exists or you can bypass all of this by passing the -qt_dir
option on it's command line.
while running the install script, it will ask you to input 1 of 3 options:
***local machine*** - This option will install the built application onto the
local machine without creating an installer.
***create installer*** - This option creates an installer that can be
distributed to other machines for installation. The resulting installer is just
a regular .py script file that the target machine can run if it has Python3
installed. Only Python3 needs to be installed, an internet connection is not
required.
***exit*** - Cancel the installation.
-local or -installer can be passed as command line options for install.py to
explicitly select one of the above options without pausing for user input.