jammer
jammer copied to clipboard
light-weight TUI music player with Soundcloud & Youtube support, with Effects. Win & Linux
Jammer — Play songs in cli with Youtube and Soundcloud support
Introduction
Tired of opening up a browser or app to play music, and even then you can't play local files or songs from different sites?
Jammer is a simple CLI music player that supports playing songs from your local files, Youtube and Soundcloud.
Compatible with Windows
, Linux
.
Jammer shines its best when using it as a playlist. That's why I created it, for the playlist feature across different platforms
- The player doesn't stream the songs, but downloads them to local storage.
- The Jammer folder is located in the user's home directory and contains the downloaded songs, playlists, settings, keybinds, locales and effects modification.
- Jammer uses Bass for playing the songs and ManagedBass for being able to use it in .NET, SoundCloudExplode, YoutubeExplode for downloading the songs and Spectre.Console for the UI.
Install/Update
Install
Github latest Release
Linux version of Jammer requires fuse2. Ubuntu 22.02 or newer install apt install libfuse2
.
Update existing
jammer update
Usage
jammer
jammer [song] ... [folder]
jammer https://soundcloud.com/username/track-name
jammer https://soundcloud.com/username/sets/playlist-name
jammer https://youtube.com/watch?v=video-id
jammer https://youtube.com/playlist?list=playlist-id
jammer --start opens jammer folder
jammer --update checks for updates and installs
jammer --help -h show help
jammer -d debug mode
jammer --version show version
when using Soundcloud or Youtube links dont forget to use https://
at the start.
jammer -p, --play <name> play playlist
jammer -c, --create <name> create playlist
jammer -d, --delete <name> delete playlist
jammer -a, --add <name> <song> ... add song to playlist
jammer -r, --remove <name> <song> ... remove song from playlist
jammer -s, --show <name>
jammer -l, --list list all playlists
jammer -f, --flush flushes all the songs in songs folder
jammer -sp, --set-path <path>, <default> set path for songs folder
Example usage
jammer "path/to/song.mp3" "path/to/folder" C:\Users\user\jammer\playlists\playlist.jammer
jammer https://soundcloud.com/angry-birds-2009-2014/haunted-hogs https://soundcloud.com/angrysausage/sets/undertale-toby-fox
jammer https://www.youtube.com/watch?v=4zjFDTIROhQ
Example of making a playlist in cli
jammer -c gd
jammer -a gd https://www.youtube.com/playlist?list=PLnaJlq-zKc0WUXhwhSowwJdpe1fZumJzd
jammer -p gd
you can do same opening the jammer
and pressing saving as by default keybinds shift + alt + s
and after that shift + a
to add the playlist by input
You can also use -d
flag that will add logs to current folder.
Supported formats
Jammer supports the following audio formats: .mp3, .ogg, .wav, .mp2, .mp1, .aiff, .m2a, .mpa, .m1a, .mpg, .mpeg, .aif, .mp3pro, .bwf, .mus, .mod, .mo3, .s3m, .xm, .it, .mtm, .umx, .mdz, .s3z, .itz, .xmz, .aac, .adts, .mp4, .m4a, .m4b.
- JAMMER Jammer playlist
- FOLDER Folder/Directory (support playing all audio files within a folder)
- YOUTUBE Youtube video/playlist
- SOUNDCLOUD Soundcloud song/playlist
Effects
- Reverb
- Echo
- Flanger
- Chorus
- Distortion
- Compressor
- Gargle
- Parametric Equalizer
Can be changed in the Effects.ini file in the Jammer folder.
Default Player Controls
Key | Action |
---|---|
H |
Show/hide help |
C |
Show/hide settings |
F |
Show/hide playlist view |
Shift + E |
Edit keybindings |
Shift + L |
Change language |
Space |
Play/pause |
Q |
Quit |
→ |
Forward |
← |
Backward |
↑ |
Volume up |
↓ |
Volume down |
M |
Mute/unmute |
L |
Toggle loop |
S |
Toggle shuffle |
R |
Play in random song |
N |
Next song in playlist |
P |
Previous song in playlist |
Delete |
Delete current song from playlist |
F2 |
Show playlist options |
Tab |
Show CMD help screen |
0 |
Goto start of the song |
9 |
Goto end of the song |
Default Playlist Controls
Key | Action |
---|---|
Shift + A |
Add song to playlist |
Shift + D |
Show songs in other playlist |
Shift + F |
List all playlists |
Shift + O |
Play other playlist |
Shift + S |
Save playlist |
Shift + Alt + S |
Save as |
Alt + S |
Shuffle playlist |
Shift + P |
Play song(s) |
Shift + B |
Redownload current song |
Language support
Currently supported languages:
-
English
-
Finnish
Create new translation by copying already existing .ini file from /locales and translating it.
Build / Run yourself
Download the BASS and BASS_AAC libraries from the un4seen website or the libaries are included in the libs folder.
On Linux, you need to add the libraries to the $LD_LIBRARY_PATH.
export LD_LIBRARY_PATH=/path/to/your/library:$LD_LIBRARY_PATH
On Windows, you need to add the libraries to the executable folder.
Run
CLI
dotnet run --project Jammer.CLI -p:DefineConstants="CLI_UI" -- [args]
AVALONIA
dotnet run --project Jammer.Avalonia -p:DefineConstants="AVALONIA_UI" -- [args]
Build
Windows
_CLI
dotnet publish -r win10-x64 -c Release /p:PublishSingleFile=true -p:DefineConstants="CLI_UI" --self-contained
_AVALONIA
dotnet publish -r win10-x64 -c Release /p:PublishSingleFile=true -p:DefineConstants="AVALONIA_UI" --self-contained
Linux
Add BASS and BASS_AAC libraries to the executable folder and to $LD_LIBRARY_PATH.
dotnet publish -r linux-x64 -c Release /p:PublishSingleFile=true -p:UseForms=false -p:DefineConstants="CLI_UI" --self-contained
dotnet publish -r linux-x64 -c Release /p:PublishSingleFile=true -p:UseForms=true -p:DefineConstants="AVALONIA_UI"
Linux AppImage release
AppImage requires fuse. To install fuse
sudo apt install libfuse2
To install appimagetool
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod 700 appimagetool-x86_64.AppImage
To create AppImage run build.sh
Build script for NSIS installer
you can also use change_version.py
to change the version of the app.
python change_version.py [version]
Todo bug fixes
- [x] When playing song, and opening a new playlist, the song doesn't change
- [x] Pressing
0
, doesn't do anything - [x] Download bar
- [x] Fix playlist cmd
- [ ] Fix time bar not going to new line when 0:-01
Incoming Features
- [ ] Add more audio formats
- [x] Better f mode
- [x] pg up/down you can scroll the playlist and modify the selected song