Skip to main content
Version: Next

Developers

warning

This guide uses Linux/Unix commands.

Windows users may need to adapt paths and use PowerShell or WSL.

Prerequisites

Get codebase

git clone

# with HTTPS
git clone https://github.com/sound-scape-explorer/sound-scape-explorer.git

# with SSH
git clone git@github.com:sound-scape-explorer/sound-scape-explorer.git

Download zip

sound-scape-explorer-14.0.13.zip 125 MB

Monorepo structure

sound-scape-explorer/             # Monorepo root
├── .github/workflows # CI/CD pipeline definitions
├── audio # "Audio" module (Express app)
├── bin # User installation scripts
├── campaign # "Campaign" module (React app)
├── examples # Examples
├── front # "Visualisation" module (Vue app)
├── processing # "Processing CLI" module (Python app)
├── shared # Shared utils, enums and schemas for JS packages
└── visualisation # "Standalone" app (Electron app)

Python setup

cd processing
python3.11 -m venv venv
source venv/bin/activate
./install_deps_with_dev.sh

JS setup

# at monorepo root
./reinstall_npm_packages.sh
pnpm visualisation:prepare-bins

Starting a development environment

Python

The installation script sets up the environment with watch mode enabled.

Update your code and run sse commands from the activated venv shell to see changes immediately.

JS

You will need to start each module independently.

We recommend using a terminal multiplexer like tmux.

# Each terminal supposes monorepo root as current working directory

# First terminal - Visualisation module
# Will spawn at http://localhost:5530/
cd front
pnpm dev

# Second terminal - Audio module
# Will spawn at http://localhost:5531/
cd audio
pnpm dev $(which ffmpeg) $(which ffprobe) /path/to/audio/folder

# Third terminal - Campaign module
# Will spawn at http://localhost:5532/
cd campaign
pnpm dev

# Fourth terminal - Electron module
# Will spawn GUI
cd visualisation
npm run dev # !!!!! npm not pnpm

Build

Python package

cd processing
source venv/bin/activate
python -m build

Electron package

pnpm visualisation:prebuild
cd visualisation
npm run build

Run tests

./run_tests_all.sh