A work in progress DJ mixing webapp with streaming support
The program uses the settings defined in the settings.json
file.
{
"cert-file": "<optional path to cert file>",
"cert-password": "<optional cert file password>",
"bassnet-reg-email": "<optional bass registered email>",
"bassnet-reg-key": "<optional bass registration key>",
"webhost-url": "http[s]://[host|ip]:port",
"encoder": {
"enabled": true|false,
"port": <valid port number>,
"url": "<optional path to the stream>",
"bitrate": <64|128|192|320>
},
"media-providers": [
{
"type": "<local is the only supported type>",
"name": "<optional name of the provider>",
"root-directory": "<path to the folder contaning the media files>"
}
]
}
- To load a track into a player, click the
button.
- Click the
button to start playing.
- Click the
button to stop playback and move to the beginning of the track.
- Click the
button to define a cue point. At this moment, only one cue point can be defined, and it will always snap to the nearest beat marker.
- Click the
button to jump to the cue point. Leave the button pressed to temporarily play the track from the cue point.
- Click the
button to sync the track to the other player
- Use the
fader to change the volume.
- Use the
fader to change the tempo (BPM).
- Use the Lo/Mid/Hi knobs to change the track's equalization.
- Use the fader between the two players to cross-fade between them.
- Faders and knobs can be used by clicking and dragging or by moving the mouse over them and using the scroll wheel.
- Use the
and
buttons under the SYNC section to perform small tempo adjustments.
- You can click and drag over both waveforms (synced and full) to change the playback position.
- Use the textbox at the bottom of the files list to search for files. The search is recursive.
- Click the
button in the search bar to re-analyze a track. When re-analyzing a track, the program will ignore the BPM from the track's id3 tags and will recalculate it.
- Double click a track in the files list to open the Track Properties dialog.
- Configuration dialog (global settings)
- Loops
- A fancy screen for remote connections to the stream
- Synced playback
At this moment, when clicking thebutton, playback will start immediately instead of auto-syncing to the nearest beat marker.
- No drag & drop support to load files into a player.
Use the
button to load a track or press A or B on your keyboard.
- Searching is quite limited and a bit buggy.
- Audio device selection for audio monitoring (configuration dialog).
- Audio routing for main output, monitor, and stream (with volume adjustment)
- ...and many more
Platform | Architecture | Status | Download | Release Date |
---|---|---|---|---|
Windows | x64 | Working | ⭳ | 2025-04-10 |
MacOS | x64 | Working1 | ⭳ | 2025-04-03 |
MacOS | Arm | Not Tested1 | ⭳ | 2025-04-03 |
Linux | x64 | Working1 | ⭳ | 2025-04-03 |
Linux | Arm | Working1 | ⭳ | 2025-04-03 |
This project wouldn't have been possible without the following:
- BASS audio library
- AspNetCore.SassCompiler
- BlazorExtensions.Canvas
- Icons8
- Font Awesome