Bunu Neden İnşa Ettim?
"Modern müzik dinleme alışkanlıkları (Spotify, Apple Music vb.) tamamen bulut tabanlı, DRM kilitli ve abonelik gerektiren bir ekosisteme hapsolmuş durumda. Lain Wave'i bu sisteme bir alternatif olarak geliştirdim. Temel amaç; internet bağlantısına ihtiyaç duymayan, kullanıcının kendi verisi üzerinde tam kontrol sahibi olduğu, telemetrisiz, 100% ücretsiz ve sesi kayıpsız (FLAC) formatta yerel diskte saklayan yüksek performanslı bir arşivleme motoru inşa etmekti."
Mimari & Kararlar
Uygulama, SvelteKit dosya tabanlı yönlendirme motoru (`/playlist/[id]`, `/artist/[name]`) ile Tauri'nin Rust arka ucunu birleştirir. Veritabanı katmanı, eşzamanlı okuma/yazma güvenliği için `Arc<Mutex<Connection>>` ile sarmalanmış `rusqlite` kullanır. YouTube'dan medya indirme ve dönüştürme işlemleri, Tauri'nin ana olay döngüsünü (event loop) bloklamamak adına `tauri::async_runtime::spawn_blocking` görevleri içine izole edilmiştir. `yt-dlp` ve `FFmpeg` doğrudan `std::process::Command` üzerinden `stdout` borulama (piping) ile kontrol edilirken, Windows ortamlarında CMD pencerelerinin görünmesini engellemek için `0x08000000` oluşturma bayrakları (creation flags) inject edilmiştir. Uygulama içi asenkron şarkı sözü oluşturma işlemi, bulut API'leri yerine yerel makinede çalışan C++ GGML modelini (`whisper_rs` binding'i üzerinden) kullanır.
Temel Özellikler
- 01.YouTube üzerinden tam asenkron medya indirme, ID3 tag manipülasyonu ve FLAC formatında yerel depolama
- 02.Yerel sistem kaynaklarını kullanarak çalışan Whisper AI entegrasyonu ile otomatik SRT (altyazı/şarkı sözü) senkronizasyonu
- 03.Thread-safe SQLite mimarisi ile ultra hızlı yerel kütüphane, sanatçı ve çalma listesi (playlist) yönetimi
- 04.Donanım düzeyinde entegre edilmiş global medya kısayol tuşları (`tauri_plugin_global_shortcut`)
- 05.Gelişmiş asenkron durum yönetimi (state management) ile Discord Rich Presence (RPC) entegrasyonu