Professional rack media players like the Tascam CD-400UDAB are capable of playing various file formats from removable media such as USB sticks and SD cards. However, these devices impose specific requirements on file formats, directory structures and file names that must be met for reliable playback.
Media Test is a command-line tool that scans removable media and runs a suite of tests to verify compatibility with the Tascam CD-400UDAB. Rather than discovering compatibility issues during live use, Media Test helps you validate your removable media and its content beforehand.
The tool features a modular architecture that makes it easy to add new tests as requirements evolve. Future development may include support for additional devices, making Media Test a versatile solution for validating removable media across different professional audio equipment.
This project is an independent, community-driven tool and is not affiliated with, endorsed by, or supported by Tascam or any other manufacturer of professional audio equipment. All product names, trademarks, and registered trademarks mentioned in this documentation are the property of their respective owners. This tool is provided as-is for informational and testing purposes only, with no warranties or guarantees of accuracy or compatibility.
This project is designed to run as a standalone Python application using a virtual environment. Follow the steps below to set up the environment, install all dependencies, and launch media tester.
git clone git@github.com:TobiasHafner/media-tester.git
cd media-testerpython3 -m venv .venvLinux / macOS
source .venv/bin/activateWindows
.venv\Scripts\Activate.ps1This project uses PEP 621 and pyproject.toml to define its dependencies.
Install all dependencies with:
pip install -e .The -e (editable mode) allows you to run the project directly from the source without reinstalling after changes.
Alternatively, to install only the declared dependencies:
pip install .The project provides an entry point via Python’s module system. From inside the activated virtual environment, run:
python -m app.main [OPTIONS]Where [OPTIONS] can be any combination of the following:
-d, --device: Required. Specifies the device name, which matches a set of tests inside app/tests/. All tests inside that directory will be run against the selected partition. As of now the only supported device is cd400udab.
-p, --partition: Optional. Specifies the mountpoint of the partition to test (e.g., /media/usb0 on Linux, /Volumes/USB on macOS, E:\ on Windows). If not provided, the tool will display a numbered menu of all removable partitions for interactive selection.
--color: Optional. Force colored output in the terminal. Useful if your terminal supports ANSI colors.
--no-color: Optional. Disable colored output in the terminal. Overrides --color if both are provided. Useful for terminals that do not support colors or when redirecting output to a file.
python -m app.main -d cd400udabThe tool detects all removable drives. Prompts the user to select one. Runs all tests inside app/tests/cd400udab/.
python -m app.main -d cd400udab -p /media/usb0Bypasses the interactive menu. Runs tests on /media/usb0.
python -m app.main -d cd400udab --colorpython -m app.main -d cd400udab --no-colorThis can be useful if the output is to be redirected to a file as shown below:
python -m app.main -d cd400udab --no-color > test_log.txtDevice Name: cd400udab
The following test cases are available for validating removable media compatibility with the Tascam CD-400UDAB professional rack media player.
Result: Succeeds if files with extensions .m4a, .mp3, .wav, .wma are found. Fails if no files with these extensions are present.
Purpose: Warns the user of empty removable media to prevent accidental use of media without any playable audio content.
Result: Issues a warning if any of the following file extensions are present on the removable media:
.aiff.aac.ogg.flac.alac.mp4.mov.avi.wmv.webm.flv.m4a
Purpose: These extensions represent audio and video file formats that cannot be played back by the CD-400UDAB. They may have been added accidentally or without knowledge that they are incompatible. These files might need conversion to a supported format.
Result: Fails if more than 50 directories are present on the media.
Purpose: Media with more than 50 directories might not play properly on the CD-400UDAB.
Result: Fails if the directory structure is deeper than 15 levels.
Purpose: Media with a directory structure of more than 15 levels might not play properly on the CD-400UDAB.
Result: Fails if the USB drive has a capacity above 32GB.
Purpose: Drives with a size beyond 32GB might not be detected properly by the CD-400UDAB.
Result: Fails for any filesystem other than FAT32.
Purpose: The player only supports media using a FAT32 file system.
Result: Fails if any path to a file exceeds 260 characters.
Purpose: Ensures all file paths remain within the maximum supported path length for proper playback.
Result: Issues a warning if filenames contain characters that cannot be displayed properly on the display of the CD-400UDAB.
Purpose: Alerts operators to potential display issues that may make navigation and file identification difficult.
Result: Issues a warning if non-media files are present on the removable media.
Purpose: While these files do not conflict with playback, they might be of large size, slowing down duplication and backup of the media data. It's important for operators to be aware of this.
Result: Fails if more than 300 files are present on the drive.
Purpose: Media with more than 300 files might not play properly on the CD-400UDAB.
Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request.
Distributed under the Apache 2.0 License. See LICENSE for more information.