Skip to content

Commit 1e2cbf9

Browse files
committed
fix(visualizer): resolve music sync and fixed bar position.
feat(AI/MCP): add an mcp server for AI integration. - Fixed visualizer bars sync with the music. - Fixed the uncertain position changing of bars. - Implemented new MCP server that let's you control music with LLMs
1 parent d80d7d9 commit 1e2cbf9

6 files changed

Lines changed: 807 additions & 51 deletions

File tree

README.md

Lines changed: 97 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# TUISIC
22

3-
TUI Online Music Streaming application.
3+
TUI Online Music Streaming application with MCP support
44

55

66
https://github.com/user-attachments/assets/ef349a06-0d7e-488b-aa3d-de928d9b0eef
77

88

99

10-
First app of its kind, It let's you search and play online songs from cli hassle free.
10+
First app of its kind, It let's you search and play online songs from cli hassle free. Now it supports AI integration through [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) (BETA).
1111

1212
## Features
1313
- Vim motions
@@ -20,6 +20,8 @@ First app of its kind, It let's you search and play online songs from cli hassle
2020
- Configuration file
2121
- Daemon mode (BETA, press 'w' to toggle)
2222
- [MPRIS DBUS](https://wiki.archlinux.org/title/MPRIS) support ( via `playerctl` )
23+
- Cava Visualizer (BETA)
24+
- Support for AI Integration via [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) (BETA)
2325

2426
## Shortcuts
2527

@@ -49,24 +51,22 @@ It fetches songs from some platforms:
4951
- YouTube Music (on the way)
5052

5153
## Installation:
52-
1. Using [AUR](https://aur.archlinux.org/packages/tuisic-git) package
5354

54-
```sh
55-
yay -S tuisic-git
56-
```
55+
1. Check [releases](https://github.com/Dark-Kernel/tuisic/releases)
5756

58-
2. Building from source (All platforms)
57+
2. Using [AUR](https://aur.archlinux.org/packages/tuisic-git) package
5958

60-
### Dependencies (Linux/MacOS)
6159
```sh
62-
sudo pacman -S curl mpv fmt yt-dlp fftw sdbus-cpp
60+
yay -S tuisic-git
6361
```
6462

65-
### Build Options
63+
### Building from source
64+
65+
#### Build Options
6666
| CMake Flag | Description | Default |
6767
| ---------------- | --------------------------------- | ------- |
6868
| `-DWITH_MPRIS` | Enable MPRIS (sdbus-c++) support | ON |
69-
| `-DWITH_CAVA` | Enable Cava visualizer(NOT READY) | OFF |
69+
| `-DWITH_CAVA` | Enable Cavacore-based visualizer | OFF |
7070

7171

7272
#### Before Installation
@@ -76,15 +76,99 @@ Update the [desktop/tuisic.desktop](./desktop/tuisic.desktop) file.
7676
Exec=alacritty -e tuisic # Change terminal accordingly
7777
```
7878

79-
### Build, Compile & Install
79+
#### Debian
80+
81+
1. Install dependencies
82+
83+
```
84+
sudo apt-get update
85+
sudo apt-get install -y build-essential cmake pkg-config libfftw3-dev libmpv-dev libcurl4-openssl-dev libfmt-dev libsystemd-dev rapidjson-dev libpulse-dev
86+
```
87+
88+
2. If you want to use [MPRIS](https://wiki.archlinux.org/title/MPRIS) then install [sdbus-cpp](https://github.com/Kistler-Group/sdbus-cpp)
89+
90+
```
91+
git clone --depth 1 https://github.com/Kistler-Group/sdbus-cpp.git
92+
cd sdbus-cpp
93+
mkdir build && cd build
94+
cmake .. -DCMAKE_BUILD_TYPE=Release
95+
cmake --build .
96+
sudo cmake --build . --target install
97+
```
98+
99+
3. Build
100+
101+
```
102+
cmake .. -DCMAKE_BUILD_TYPE=Release
103+
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
104+
```
105+
106+
#### Arch Linux
107+
108+
1. Install dependencies
109+
110+
```sh
111+
sudo pacman -S curl mpv fmt yt-dlp fftw sdbus-cpp rapidjson
112+
```
113+
114+
2. Build
115+
116+
```
117+
cmake .. -DCMAKE_BUILD_TYPE=Release
118+
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
119+
```
120+
121+
#### MacOS
122+
123+
1. Install dependencies
124+
125+
```
126+
brew install cmake pkg-config fftw mpv curl fmt rapidjson
127+
```
128+
129+
2. Set environment variables for Homebrew paths
130+
131+
```
132+
# Detect Homebrew prefix (Apple Silicon uses /opt/homebrew, Intel uses /usr/local)
133+
BREW_PREFIX=$(brew --prefix)
134+
export HOMEBREW_PREFIX=${BREW_PREFIX}
135+
export PKG_CONFIG_PATH=${BREW_PREFIX}/lib/pkgconfig:${BREW_PREFIX}/opt/curl/lib/pkgconfig:${BREW_PREFIX}/opt/fmt/lib/pkgconfig
136+
export CMAKE_PREFIX_PATH=${BREW_PREFIX}
137+
export LDFLAGS=-L${BREW_PREFIX}/lib
138+
export CPPFLAGS=-I${BREW_PREFIX}/include
139+
```
140+
141+
3. Build
142+
143+
```
144+
cmake .. \
145+
-DWITH_MPRIS=OFF \
146+
-DCMAKE_BUILD_TYPE=Release \
147+
-DCMAKE_PREFIX_PATH="${HOMEBREW_PREFIX}"
148+
149+
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
150+
```
151+
152+
### MISC Build, Compile & Install
80153

81154
```sh
82155
mkdir build && cd build
83-
cmake .. # -DWITH_MPRIS=OFF
156+
cmake .. # -DWITH_MPRIS=OFF -DWITH_CAVA=ON
84157
make
85158
sudo make install
86159
```
87160

161+
### DEMOS
162+
163+
1. Screenshots: [here](https://blogs.sumit.engineer/showcase/) scroll way down.
164+
165+
2. Visualizer:
166+
167+
168+
3. MCP Server:
169+
170+
171+
88172
## Thanks to all.
89173

90174
- [FTXUI](https://github.com/ArthurSonzogni/FTXUI)

0 commit comments

Comments
 (0)