Skip to content

Latest commit

 

History

47 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Media Tester

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.

Disclaimer

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.

Getting Started

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.

1. Clone the Repository:

git clone git@github.com:TobiasHafner/media-tester.git
cd media-tester

2. Create a Virtual Environment and Activate

python3 -m venv .venv

Linux / macOS

source .venv/bin/activate

Windows

.venv\Scripts\Activate.ps1

3. Install Dependencies

This 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 .

4. Launch the Application

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.

Usage Examples

1. Interactive selection of a partition (default)

python -m app.main -d cd400udab

The tool detects all removable drives. Prompts the user to select one. Runs all tests inside app/tests/cd400udab/.

2. Directly specify a partition

python -m app.main -d cd400udab -p /media/usb0

Bypasses the interactive menu. Runs tests on /media/usb0.

3. Force colored output

python -m app.main -d cd400udab --color

4. Disable colored output

python -m app.main -d cd400udab --no-color

This 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.txt

Test Cases

Tascam CD-400UDAB

Device Name: cd400udab

The following test cases are available for validating removable media compatibility with the Tascam CD-400UDAB professional rack media player.

Audio Files Present Test

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.


Critical File Extensions Test

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.


Directory Count Test

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.


Directory Levels Test

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.


Drive Size Test

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.


Filesystem Compatibility Test

Result: Fails for any filesystem other than FAT32.

Purpose: The player only supports media using a FAT32 file system.


Path Length Test

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.


Undisplayable Characters Test

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.


Unrelated File Extensions Test

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.


File Count Test

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.


Contributing

Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request.

License

Distributed under the Apache 2.0 License. See LICENSE for more information.

About

Command-line tool to test removable media for compatibility with professional rack media players.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages