SynthMem is a web application designed for musicians to save and manage synthesizer settings and configurations. It provides an intuitive interface for creating custom control layouts, storing presets, and organizing your synthesizer patches.
Before you begin, ensure you have met the following requirements:
- You have git installed.
- You have docker installed.
- You can launch this app with
docker-compose up -d
or equivalent and you know what that means.
To install the project, clone the repository and install the necessary dependencies:
git clone https://github.com/yourusername/synthmem.git
cd synthmem
# Make scripts executable
chmod +x scripts/*.js scripts/*.sh
# Generate package-lock.json if needed
node scripts/generate-lockfile.js
# Start the application
docker-compose up -d
Once the Docker service is running, you can access the application in your web browser at http://localhost:1337
.
- Create custom control layouts for synthesizers and other equipment
- Save and load preset configurations
- Organize presets with tags and categories
- Add images and audio samples to your presets
- Works offline as a Progressive Web App (PWA)
We use Docker for both development and production environments. The development environment includes testing and linting capabilities.
# Start the development environment
docker-compose up dev
# Start the production environment
docker-compose up app
We use a custom self-testing system that runs automatically when the container starts. The system uses the following terminology:
- Bought: A set of tests (test suite)
- Required Bought: Must pass for the build to succeed
- Optional Bought: Can fail without failing the build
- Boast: A passed test
- Roast: A failed test
- Route: A failed Bought (test suite)
- Conquest: A passed Bought (test suite)
- Victory: All Boughts passed
- Partial Victory: All required Boughts passed, but some optional Boughts failed
The testing system runs automatically as part of the container startup and reports the results in the logs.
# Run all tests manually
docker-compose run --rm dev node scripts/run-tests.js
# Check the health of the system
docker-compose run --rm dev node scripts/health-check.js
The testing system runs automatically as part of the Docker build process:
# Run tests manually
docker-compose run --rm dev node scripts/run-tests.js
Note: This project uses Docker-based testing instead of git hooks to avoid stalling development.
Contributions are welcome! Please see CONTRIBUTING.md for detailed guidelines on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.
The application is designed to be deployed as a static set of files site on web server.
If you encounter an error about missing package-lock.json during the build process, run:
node scripts/generate-lockfile.js
This will generate the package-lock.json file needed for the build process.
If you encounter permission issues with the scripts, make them executable:
chmod +x scripts/*.js scripts/*.sh
If the Docker build fails, check the logs for specific errors:
docker-compose logs dev
See your local psychiatrist.