Skip to content

A terminal-based music player written using SDL, FTXUI, SQLite and FFmpeg that normalizes volume around -14dB.

Notifications You must be signed in to change notification settings

ConnorSweeneyDev/TerMusic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TerMusic

A terminal-based music player written using SDL, FTXUI, SQLite and FFmpeg.

TerMusic_demo.mp4

How to Use

  1. Download the latest release.
  2. Extract the contents of the archive to a directory of your choice.
  3. Modify the user/playlist.txt file to point to the directory containing your mp3 files.
  4. Execute TerMusic.exe.

Note

Controls are as follows:

  • j, k to navigate by 1 item.
  • ctrl + d, ctrl + u to navigate by 12 items.
  • g, G to navigate to the top/bottom.
  • / to enable search mode (searches using substrings).
  • return to apply the search or, if not searching, to play the hovered song.
  • esc to clear the search and disable search mode.
  • p to pause/unpause.
  • h, l to seek -5%/+5% of the current song.
  • 0, 1... 9 to seek to 0%, 10%... 90% of the song.
  • n to skip the current song.
  • u, d to change the volume by 1%.
  • U, D to change the volume by 5%.
  • q to close the player.

How to Build

This project is optimized to be built on Windows using MSVC.

  1. Ensure that you have MSVC installed.
  2. Ensure that you have CMake installed, you can run winget install Kitware.CMake if you don't.
  3. Ensure that you have LLVM installed, you can run winget install LLVM.LLVM and put the install location in your environment variables if you don't (for language server and clang-format support).
  4. Execute script/build.sh followed by script/run.sh.

How to Update Dependencies

All dependencies are managed by either CPM.cmake or VCPKG. After changing the version of a dependency, do a full clean build using script/clean.sh before script/build.sh.

Change the [MANAGER]_VERSION variable inside cmake/Manager.cmake to the desired version.

Change the [DEPENDENCY]_VERSION variable inside cmake/External.cmake to the desired version.

Change the version field inside the ffmpeg override in vcpkg.json to the desired version.

About

A terminal-based music player written using SDL, FTXUI, SQLite and FFmpeg that normalizes volume around -14dB.

Topics

Resources

Stars

Watchers

Forks