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.
Github latest Release
Linux version of Jammer requires fuse2. Ubuntu 22.02 or newer install apt install libfuse2
.
jammer update
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 https://raw.githubusercontent.com/jooapa/jammer/main/npc_music/616845.mp3
jammer https://raw.githubusercontent.com/jooapa/jammer/main/example/terraria.jammer
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
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
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.
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
You can customize your own theme, in jammer press by default Shift + T
that will open a Multi Selection View.
Select 'Create a New Theme'. Then write desired theme name. Then go to jammer/themes
and you should see name.json
file that contains all the inforamtion for creating theme.
There should be comments documenting what you can add to the properties.
Colors "https://spectreconsole.net/appendix/colors" and "https://spectreconsole.net/appendix/styles"
write the color name in lowercase ' ' and the styles ' '
"PlaylistNameColor": "red bold italic"
but you can have just "bold"
if you type "" it will be the default color
Border Styles "https://spectreconsole.net/appendix/borders"
write the border name with CamelCase
Example: Rounded
Only the BorderColor is in RGB format: [0-255,0-255,0-255]
Jammer Default
option is Jammer's preset Default theme that comes baked.
- Reverb
- Echo
- Flanger
- Chorus
- Distortion
- Compressor
- Gargle
- Parametric Equalizer
Can be changed in the Effects.ini file in the Jammer folder.
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 |
Shift + Tab |
Change Theme |
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 |
Currently supported languages:
-
English
-
Finnish
Create new translation by copying already existing .ini file from /locales and translating it.
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.
dotnet run --project Jammer.CLI -p:DefineConstants="CLI_UI" -- [args]
dotnet run --project Jammer.Avalonia -p:DefineConstants="AVALONIA_UI" -- [args]
dotnet publish -r win10-x64 -c Release /p:PublishSingleFile=true -p:DefineConstants="CLI_UI" --self-contained
dotnet publish -r win10-x64 -c Release /p:PublishSingleFile=true -p:DefineConstants="AVALONIA_UI" --self-contained
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"
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
or if you want to build it from usb
sh -c "$(wget -O- https://raw.githubusercontent.com/jooapa/jammer/main/usb-appimage.sh)"
you can also use update.py
to change the version of the app.
|-Major
||--Minor
|||---Patch
python update.py 101
- Add more audio formats