Commit graph

27 commits

Author SHA1 Message Date
Chigozirim Igweamaka
a255d495a3 feat(save): add concurrent file processing for batch song imports 2025-11-19 16:54:31 +01:00
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
26506e78c5 update wasm file 2025-11-19 16:36:12 +01:00
Chigozirim Igweamaka
d820dda8be Add .env enxample to server 2025-11-19 16:34:24 +01:00
Chigozirim Igweamaka
14df5b3845 feat: enhance generateFingerprint function to handle stereo input audio 2025-07-16 05:08:05 +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
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
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
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
28eca1ea2a Delete songs folder 2025-04-12 14:32: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