Chigozirim Igweamaka
ced4fc7ee8
perf(shazam): optimize timing analysis from O(n²) to O(n)
...
Replace pairwise timing comparison with histogram approach that counts
time offset agreements. Bins offsets in 100ms buckets for tolerance.
Improves performance by 500-5000x for songs with many fingerprint matches.
2025-11-19 16:52:55 +01:00
Chigozirim Igweamaka
7104a1a7bc
fix(fingerprint): prevent address overflow with bit masking
...
- Scale and mask frequencies to 9 bits each
- Mask time delta to 14 bits
- Add sampleRate parameter to ExtractPeaks calls
Prevents hash collisions from bit overflow in fingerprint addresses.
2025-11-19 16:51:00 +01:00
Chigozirim Igweamaka
e3a35ef1eb
fix(spectrogram): correct STFT and peak extraction algorithm
...
- Fix frame calculation with proper sliding window iteration
- Change hop size to windowSize/2 for 50% overlap
- Return magnitude spectrum instead of complex values
- Fix Peak time/frequency calculations using proper frame-based indexing
- Add Hz conversion using frequency resolution
- Remove incorrect frequency-based time calculations
2025-11-19 16:47:01 +01:00
Chigozirim Igweamaka
6f1111eb35
refactor(downloader): remove WAV conversion step and update audio download function
...
- Remove unused wav package import and WAV conversion logic
- Pass original downloaded audio file directly to fingerprinting
- Update calls from downloadYTaudio2 → downloadYTaudio after function rename
2025-11-19 16:44:06 +01:00
Chigozirim Igweamaka
95218512a6
refactor(youtube): remove deprecated kkdai/youtube code and unify audio download method
...
- Delete old downloadYTaudio1 function using github.com/kkdai/youtube
- Rename downloadYTaudio2 → downloadYTaudio as the primary yt-dlp-based downloader
2025-11-19 16:42:46 +01:00
Chigozirim Igweamaka
ae6e7a3805
Update WASM load path to fingerprint.wasm
2025-11-19 16:41:57 +01:00
Chigozirim Igweamaka
e299b9bda5
chore: update .dockerignore
2025-11-19 16:41:02 +01:00
Chigozirim Igweamaka
8dcae2456b
chore(docker-compose): update compose config.
2025-11-19 16:40:37 +01:00
Chigozirim Igweamaka
28c7a7d4d0
feat(docker): overhaul Dockerfile for multi-stage build and production runtime
...
- Add multi-stage builds for React frontend and Go backend
- Use node:20-alpine and golang:1.24-alpine for slimmer build environments
- Switch to `/app` directory structure and improve COPY paths
- Use `npm ci` for deterministic frontend installs
- Add Go build optimizations with stripped binaries
- Introduce final Alpine runtime image with ffmpeg, python3, yt-dlp
- Add HEALTHCHECK for backend service availability
- Add non-root runtime user for improved security
- Create necessary app directories with proper permissions
- Update CMD to run Go server with explicit args
2025-11-19 16:39:07 +01:00
Chigozirim Igweamaka
8b1c9af8c1
Remove .env example from project's root
2025-11-19 16:36:56 +01:00
Chigozirim Igweamaka
26506e78c5
update wasm file
2025-11-19 16:36:12 +01:00
Chigozirim Igweamaka
2e253a0036
Add .env enxample to client
2025-11-19 16:34:33 +01:00
Chigozirim Igweamaka
d820dda8be
Add .env enxample to server
2025-11-19 16:34:24 +01:00
Chigozirim Igweamaka
068e28cdad
Move wasm folder from ./server to project's root
2025-11-19 16:33:52 +01:00
Chigozirim Igweamaka
3448cd390b
feat: Add support for stereo audio recording
2025-07-16 05:11:56 +01:00
Chigozirim Igweamaka
46d08c7fea
feat: Add support for stereo audio recording
2025-07-16 05:11:39 +01:00
Chigozirim Igweamaka
14df5b3845
feat: enhance generateFingerprint function to handle stereo input audio
2025-07-16 05:08:05 +01:00
Chigozirim Igweamaka
95d51b0ff5
fix: update .gitignore to include token.json
2025-07-15 15:39:28 +01:00
Chigozirim Igweamaka
64e8ee696d
feat: implement FingerprintAudio function to process audio files and generate fingerprints
2025-07-15 15:38:07 +01:00
Chigozirim Igweamaka
8a68843bc6
refactor: simplify WAV conversion and fingerprinting process
2025-07-15 15:37:28 +01:00
Chigozirim Igweamaka
c2fc834a0b
refactor: simplify WAV conversion and fingerprinting process
2025-07-15 15:36:35 +01:00
Chigozirim Igweamaka
6635647061
feat: add ExtendMap function to merge two maps
2025-07-15 15:35:52 +01:00
Chigozirim Igweamaka
2b85c7fd97
feat: update ConvertToWAV function to determine channels from environment variable
2025-07-15 15:35:33 +01:00
Chigozirim Igweamaka
781438c7b8
feat: enhance ReadWavInfo and WavInfo struct to include left and right channel samples
2025-07-15 15:33:52 +01:00
Chigozirim Igweamaka
e3ddaa050a
Update prerequisites to Include YT-DLP
2025-07-09 15:08:11 +01:00
Chigozirim Igweamaka
7a2130ce22
refactor: replace downloadYTaudio with downloadYTaudio2 and update file handling
2025-07-09 12:35:55 +01:00
Chigozirim Igweamaka
4f1137e162
feat: add downloadYTaudio2 function to download YouTube audio using yt-dlp CLI
2025-07-09 12:35:08 +01:00
Chigozirim Igweamaka
29867c8b34
fix: delete non .wav file after conversion.
2025-07-09 12:30:31 +01:00
Chigozirim Igweamaka
e51b06c159
Merge pull request #40 from KaNaDaAT/main
...
Spotify API and SQLite improvements
2025-06-27 11:01:56 -07:00
KaNaDaAT
c4b7f5a14a
feat: Use env for credentials
2025-06-07 16:15:38 +02:00
KaNaDaAT
d6bea0a568
feat: Logging for downloader.go
2025-06-07 15:09:39 +02:00
KaNaDaAT
ab5be2f50e
fix(db): prevent "database is locked" errors by improving SQLite usage
...
- Add explicit rows.Close() calls inside loops to avoid holding locks too long
- Add SQLite busy timeout (5s) to connection string to wait for locks instead of failing immediately
2025-05-15 21:49:34 +02:00
KaNaDaAT
1daf682062
fix: spotify regex pattern
...
Fix regex pattern to use non-capturing group for optional intl prefix in Spotify track URLs
2025-05-15 21:49:34 +02:00
KaNaDaAT
8f1ab855a2
Update README.md
...
Infos about the Spotify API
2025-05-15 21:49:34 +02:00
KaNaDaAT
fbaf329872
refactor: switch to official Spotify developer API with client credentials flow
...
- Replaced deprecated web token endpoint with POST to accounts.spotify.com/api/token
- Integrated client credentials OAuth flow using client ID and secret
- Adjusted request headers to use Bearer token
2025-05-15 21:49:30 +02:00
KaNaDaAT
98e4d46a31
style: Some tidy up / logging
2025-05-15 20:05:35 +02:00
KaNaDaAT
112b90968a
update: Versions
...
Xoutube.Client() did no longer work
2025-05-15 20:04:18 +02:00
Chigozirim Igweamaka
69bd180e99
fix: update .gitignore to ignore recordings directory
2025-04-12 14:34:46 +01:00
Chigozirim Igweamaka
5b24c06e6d
fix: update .gitignore to correctly ignore the songs directory
2025-04-12 14:33:13 +01:00
Chigozirim Igweamaka
28eca1ea2a
Delete songs folder
2025-04-12 14:32:44 +01:00
Chigozirim Igweamaka
649f19b4a0
Merge pull request #36 from cgzirim/development
...
Dockerize App
2025-04-08 02:49:12 +01:00
Chigozirim Igweamaka
fadd713226
Update README.md
2025-04-07 13:07:12 +01:00
Chigozirim Igweamaka
7b80c0b04e
update docker-compose.yml to define named volumes for database and songs
2025-04-07 02:42:34 +01:00
Chigozirim Igweamaka
e740795f46
feat: add Dockerfile and docker-compose.yml for application setup
2025-04-07 02:29:40 +01:00
Chigozirim Igweamaka
cd231fe6a8
add example environment configuration file
2025-04-07 02:29:01 +01:00
Chigozirim Igweamaka
3a1cd1e7f1
chore: add .dockerignore file to exclude unnecessary files from Docker builds
2025-04-07 02:28:44 +01:00
Chigozirim Igweamaka
8ea5a7a25b
Restructure project: Move server-side files to a dedicated 'server' directory
2025-04-07 02:27:59 +01:00
Chigozirim Igweamaka
7a5ad4bfcc
fix: update start_server function to change directory to server path
2025-04-07 02:24:29 +01:00
Chigozirim Igweamaka
3cf204363d
fix: correct source path in appspec.yml to point to server directory
2025-04-07 02:23:56 +01:00
Chigozirim Igweamaka
389d0fe794
chore: update .gitignore to include sqlite3 and .env files
2025-04-07 02:23:38 +01:00