AudioLoom v4.0: Tauri & Svelte Tabanlı Masaüstü DAW
Tauri ve SvelteKit ile geliştirilmiş, hafif ve çapraz platform bir Dijital Ses Çalışma İstasyonu (DAW). Çoklu kanal miksleme, gerçek zamanlı dalga formu (waveform) çizimi, FFmpeg üzerinden hassas bölge kesme/kırpma ve asenkron bir Rust arka ucuyla desteklenen, son derece optimize edilmiş bir Web Audio API oynatma motoru içerir.
Teknoloji yığını
- Diller
- Çatılar & kütüphaneler
Performans & metrikler
- FFmpeg işlemleri bloklamayan Tokio görevleri olarak çalışır; ağır çoklu kanal render sırasında arayüz akıcı kalır
- Tauri/Wry WebView mimarisi, geleneksel Electron tabanlı DAW'lara kıyasla çok daha az RAM ve CPU tüketir
- Standart HTML5 Audio yerine düşük seviyeli Web Audio API yönlendirmesi, kanallar arası oynatma kaymalarını (drift) ortadan kaldırır
Neden geliştirdim?
Tarayıcı tabanlı ses düzenleyiciler ciddi bellek sınırlarına takılırken, profesyonel DAW'lar basit podcast kurguları, seslendirme (voiceover) miksajı veya hızlı kırpma işlemleri için genellikle gereğinden fazla karmaşıktır. AudioLoom'u bu boşluğu dolduran, çok hızlı ve yerel (native) bir masaüstü alternatifi olarak geliştirdim. Tauri'nin hafif WebView yapısını, arka planda (headless) FFmpeg komutlarını sarmalayan çok iş parçacıklı Rust arka ucuyla birleştirerek; modern bir Svelte uygulamasının arayüz esnekliğiyle yerel bir düzenleyicinin ham işlem gücünü sunar. Geleneksel DAW'ların hantallığı olmadan çoklu ses kanallarını hızlıca mikslemek, dengelemek (pan), kırpmak ve dışa aktarmak isteyen üreticiler için tasarlandı.
Mimari & kararlar
Mimari, durum yönetimi için Svelte 5 runes ($state, $derived) kullanan reaktif bir ön yüzü çok iş parçacıklı Rust/Tauri arka ucuna bağlar. Arayüz, ses tamponlarının donanım hızlandırmalı DOM çizimi için wavesurfer.js kullanır; asıl ses oynatımı, stereo sağ/sol dengesi (StereoPannerNode) ve ses düzeyi (GainNode) ise sıfır gecikmeli önizleme ve kanallar arası kaymasız (drift) senkronizasyon için doğrudan yerel Web Audio API üzerinden yönlendirilir. Çoklu kanal birleştirme, sample-rate dönüştürme, bölge kesme/kırpma ve mixdown gibi ağır, bloklayıcı I/O işlemleri Rust arka ucuna devredilir. Rust, paketlenmiş bir FFmpeg binary'sini hedefleyen izole tokio::process::Command görevleri başlatır; böylece devasa WAV/FLAC derlemeleri sırasında arayüz asla donmaz.
Temel özellikler
- 01Bağımsız ses seviyesi, sağ/orta/sol (L/C/R) pan, solo ve mute kontrollerine sahip çoklu kanal (multi-track) miks motoru
- 02Asenkron, Tokio destekli FFmpeg alt süreçleriyle yürütülen tahribatsız (non-destructive) ses bölgesi düzenleme (kes/kırp)
- 03
wavesurfer.jsve özel DOM gözlemcileriyle donanım hızlandırmalı dalga formu çizimi ve interaktif bölge seçimi - 04Parametrik pan yönlendirmeli; WAV, FLAC, MP3, OGG ve AAC formatlarına doğrudan dışa aktaran çok formatlı mixdown
- 05Tailwind v4 CSS değişkenleriyle çalışan, tercihleri kalıcı olarak saklayan dinamik tema motoru (Modern, Retro, Ghibli vb.)
- 06Geri al (undo) yığını (bellek güvenli ses durumu geçmişi) ve global klavye kısayolları
Teknik değerlendirme
Bu uygulama, web teknolojilerini ham sistem dosyalarıyla (binaries) birleştiren yüksek performanslı masaüstü mühendisliğinin bir örneğidir. Svelte'in reaktif arayüz durumlarını (sürükleyerek yeniden boyutlandırılan kenar çubukları, tema hidratasyonu gibi) yönettiği, Rust'ın ise bellek yoğun ses manipülasyonunu ve dosya sistemi önbelleklemesini üstlendiği katı görev ayrımı (separation of concerns), profesyonel düzeyde bir düzenleme deneyimi sunar. Statik FFmpeg binary'si doğrudan uygulama paketine gömülüdür; bu sayede uygulama, kullanıcı tarafında hiçbir sistem bağımlılığı gerektirmeden bağımsız ve taşınabilir bir çalıştırılabilir dosya olarak çalışır.