Mastering genelde bir parçaya yapılan son rötuş olarak anlatılır.

Bu doğru.

Ama böyle söyleyince iş, gerçekte olduğundan çok daha basitmiş gibi görünüyor.

Sesi biraz yükselt. EQ ekle. Biraz compression uygula. En sona limiter koy. Bitti.

Pek değil. 😄

İyi bir mastering zincirinin önce çok daha önemli bir soruya cevap vermesi gerekiyor:

Bu parçanın gerçekten neye ihtiyacı var?

Adaptive Master'ı geliştirmemin sebebi tam olarak bu soru.

Adaptive Master, Python ile yazdığım, tamamen yerel çalışan ve açık kaynaklı bir mastering motoru. Başlangıçta özellikle yapay zekâ ile üretilen müziklerde, daha çok da Suno export'larında sürekli karşıma çıkan problemleri çözmek için geliştirdim. Ama sistem normal stereo mix'lerle de çalışıyor.

Proje GitHub'da MIT lisansı altında açık kaynak olarak yayınlanıyor. Yani kullanabilir, inceleyebilir, değiştirebilir, bozabilir, geliştirebilir veya üzerine tamamen farklı bir şey inşa edebilirsiniz.

GitHub: github.com/alesmcgregor/Mastering


Temel fikir: önce ölç, sonra işlem yap

Her şarkıya körlemesine aynı EQ eğrisini, aynı compressor ayarını ve aynı limiter değerlerini uygulayan bir mastering script'i yapmak istemedim.

Bir piyano baladıyla yoğun bir elektronik parça aynı sinyal değil.

O yüzden Adaptive Master önce analiz yapıyor.

Şunları ölçüyor:

Ölçüm

Neden önemli?

Integrated LUFS

Parçanın zaman içinde gerçekte ne kadar yüksek algılandığını gösterir

True Peak

Dijital sample'ların arasında oluşabilecek gerçek tepe noktalarını yakalar

Crest Factor

Peak seviyeleriyle ortalama enerji arasındaki ilişkiyi gösterir

Loudness Range

Parça boyunca dinamiklerin ne kadar değiştiğini ölçer

Stereo Correlation

Stereo genişletmenin faz problemi yaratıp yaratmayacağını anlamaya yardımcı olur

Side / Mid Energy

Stereo görüntünün zaten ne kadar dar veya geniş olduğunu gösterir

Spectral Bands

Bass, low-mid, presence ve air bölgelerinde enerjinin nerede yoğunlaştığını gösterir

Clipped Samples

Kaynak dosyada zaten hard clipping olup olmadığını kontrol eder

DC Offset

Dalga formunun gereksiz şekilde sıfır ekseninden kayıp kaymadığını gösterir

Spektral analizde sık yapılan bir stereo analiz hatasından da özellikle kaçındım:

Sol ve sağ kanalı doğrudan birbirine toplamak.

Bunun yerine her kanalın gücü ayrı ayrı ölçülüyor, ardından ortalaması alınıyor.

Böylece faz dışı bir stereo sinyal analiz sırasında sihirli biçimde ortadan kaybolmuyor.

Kulağa ufak bir detay gibi geliyor ama düşündüğünüzden daha önemli.


Mastering akışı

Motor oldukça basit bir felsefeyle çalışıyor:

  1. Orijinal parçayı analiz et.

  2. Ölçümlere göre bir işlem planı oluştur.

  3. Yalnızca gerçekten ihtiyaç duyulan işlemleri uygula.

  4. Final WAV dosyasını tekrar ölç ve teknik sınırların hâlâ korunduğundan emin ol.

Yani mastering zinciri tamamen sabit değil.

Low-mid bölgesi zaten sağlıklıysa neden müdahale edelim?

Stereo görüntü zaten iyiyse neden daha da genişletelim?

Parça zaten yoğun ve sıkışmışsa limiter'a daha sert vurmak onu neden daha iyi hale getirsin?

Bazen en akıllıca DSP kararı:

neredeyse hiçbir şey yapmamaktır.


Suno Adaptive

Yapay zekâ ile üretilmiş parçalar için en sık kullandığım profilin adı Suno Adaptive.

Bu profil sabit bir loudness hedefi kullanmıyor.

Parçanın mevcut dinamik yapısına göre sistem yaklaşık -14 ile -12 LUFS arasında bir hedef seçiyor.

True Peak tavanı ise -1 dBTP.

Limiter baskısı da özellikle sınırlandırılıyor. Yani sistem ne pahasına olursa olsun hedef LUFS değerine ulaşmaya çalışmıyor.

Bu nokta önemli.

Eğer hedef loudness'a ulaşmak parçanın dinamiklerini öldürecekse motorun biraz daha sessiz kalmasına izin veriliyor.

Çünkü LUFS bir ölçüm birimi.

Yüksek skor değil.


Arka planda çalışan birkaç küçük sistem

Mastering zincirinin içinde bazı düzeltici araçlar var. Ama bunlar sadece analiz gerçekten ihtiyaç olduğunu gösterdiğinde devreye giriyor.

Kısa clipping bölgelerini onarma

Motor art arda gelen, full-scale seviyeye çok yakın sample'lar tespit ederse çok kısa clipping bölgelerini onarmaya çalışabiliyor.

Onarım özellikle yaklaşık 3 milisaniye ile sınırlandırılıyor ve eğimi hesaba katan cubic interpolation kullanılıyor.

Bu sihirli bir restorasyon sistemi değil.

Clipping nedeniyle bilgi gerçekten yok olduysa hiçbir algoritma orijinal dalga formunun gerçekte nasıl olduğunu bilemez.

Bu özelliği daha çok büyük bir tabloyu baştan yapmak yerine, hasar görmüş küçük bir köşeyi yumuşatmak gibi düşünün.


Dinamik mud kontrolü

120–400 Hz bölgesi fazla yoğunlaşırsa motor bu alanı kalıcı bir EQ cut ile kesmek yerine dinamik olarak azaltabiliyor.

Kanallar birbirine bağlı çalışıyor. Böylece sol ve sağ kanalın dengesi ayrı ayrı çekiştirilip stereo görüntü bozulmuyor.

Maksimum azaltma özellikle küçük tutuluyor:

yaklaşık 1.2 dB.

Bu projede sürekli tekrar eden bir yaklaşım var:

küçük düzeltmeler > dramatik müdahaleler


Sertlik kontrolü

Suno Adaptive, yaklaşık 2.5–8 kHz bölgesindeki agresif peak'leri de takip edebiliyor.

Bu da sabit bir treble cut değil.

Problem ortaya çıktığında müdahale ediyor.

Problem yoksa işlem de yok.

Düzeltme yaklaşık 1.4 dB ile sınırlandırılmış durumda.

Bir parçanın karakterini dümdüz etmektense biraz kusur bırakmayı tercih ederim.


Stereo şekillendirme

Stereo widening konusunda da özellikle temkinli davranmak istedim.

Motor önce stereo correlation değerine ve Side/Mid enerji oranına bakıyor.

Yalnızca gerçekten dar olan ve aynı zamanda faz açısından güvenli görünen parçalar genişletme için aday oluyor.

O durumda bile değişiklik küçük:

üst frekanslardaki Side bilgisine yaklaşık %5–8 oranında genişletme uygulanıyor.

Yaklaşık 90 Hz altındaki low-end ise merkezde tutuluyor.

Çünkü her şeyi “süper geniş” yapmak bir parçayı on saniye boyunca etkileyici duyurmanın ama sonrasında her yerde garip hissettirmenin en hızlı yollarından biri.


Reference mastering — ama kontrollü

Referans parçalar faydalı.

Songmastr gibi servisler oldukça referans odaklı bir yaklaşım kullanıyor. Songmastr, Matchering altyapısı üzerine kurulu ve verilen referansın frequency response, RMS, peak level ve stereo width gibi özelliklerini hedef parçaya yaklaştırmayı amaçlıyor.

Adaptive Master da referans parça destekliyor.

Ama burada özellikle daha temkinli bir yaklaşım tercih ettim.

Bir referans verdiğinizde motor geniş tonal bölgeleri karşılaştırıyor ve farkın yalnızca yaklaşık %35'ini, sıkı gain sınırları içinde uyguluyor.

Referanstan türetilen loudness hedefi de güvenli bir aralıkla sınırlandırılıyor.

Neden?

Çünkü benim istediğim şu değil:

“Benim parçamı bu parçaya dönüştür.”

Ben daha çok şunu istiyorum:

“Benim parçam bu referanstan nerelerde ciddi şekilde farklı? Bana bunu göster ve kontrollü biçimde o yöne doğru yaklaştır.”

Referans bir fotokopi makinesi değil, pusuladır.

Ve evet, referans seçimi çok önemli.

Minimal bir enstrümantal parçayı, vokal ağırlıklı ticari bir pop master ile karşılaştırırsanız tamamen yanıltıcı sonuçlar elde edebilirsiniz.

Songmastr da kendi referans rehberinde benzer bir noktaya dikkat çekiyor.


Profiller

İsterseniz işi basit tutabilir, isterseniz farklı profillerle deney yapabilirsiniz.

Profil

Genel yaklaşım

Suno Adaptive

AI ile üretilmiş mix'ler için koşula bağlı düzeltmeler

Studio Clean

Dengeli, kontrollü ve temkinli

Studio Punch

Temiz karakteri korurken biraz daha yüksek seviye

Studio Natural

Minimum müdahale, daha fazla dinamik

Transparent

Çok hafif mastering

Balanced

Modern, genel amaçlı master

Loud

Daha agresif loudness

Mixea

Medium / Neutral tarzı bir workflow'un benim daha temkinli yorumum

BandLab Clarity

Kontrollü low-end ve detay odaklı profil

Ticari servislerden ilham alan bu profiller, o servislerin proprietary algoritmalarının kopyası değil.

Bu sistemlerin gerçek DSP parametreleri açık değil.

Buradaki profiller, kamuya açık şekilde anlatılan davranışlardan ve kendi yaptığım kalibrasyonlardan yola çıkarak oluşturduğum bağımsız profiller.


İşlem sonunda ne oluyor?

EQ, opsiyonel dinamik işlemler ve gain staging tamamlandıktan sonra sinyal true-peak brickwall limiter'a ulaşıyor.

Ama süreç burada bitmiyor.

Render edilen sonuç bağımsız olarak tekrar ölçülüyor ve 4× oversampling kullanılıyor.

Reconstructed true peak hâlâ belirlenen tavanı aşıyorsa export öncesinde çıkış seviyesi yeniden düzeltiliyor.

Ardından master:

24-bit WAV + TPDF dither

olarak yazılıyor.

Ses dosyasının yanında Adaptive Master ayrıca bir JSON raporu oluşturuyor.

Raporda şunlar bulunuyor:

  • işlem öncesi ölçümler

  • alınan mastering kararları

  • render bilgileri

  • final ölçümler

  • uyarılar

Yani:

“AI master yaptı.”

demek yerine gerçekten ne yaptığını inceleyebiliyorsunuz.

Ben bunu çok daha fazla seviyorum.


Kurulum

Projenin şu anda en rahat kurulum deneyimi Windows'ta.

Bilgisayarınızda Git ve Python kurulu olması gerekiyor.

Terminali açıp repository'yi klonlayın:

git clone https://github.com/alesmcgregor/Mastering.git
cd Mastering

Windows'ta ardından:

setup.bat

çalıştırın.

Setup script'i yerel bir Python virtual environment oluşturuyor ve requirements.txt içindeki sabitlenmiş bağımlılıkları kuruyor.

Proje şu anda şunları kullanıyor:

NumPy · Spotify Pedalboard · pyloudnorm · SciPy · Flask · Waitress

Kurulum tamamlandıktan sonra web arayüzünü başlatmak için:

web.bat

çalıştırabilirsiniz.

Tarayıcıda şu adres açılmalı:

http://127.0.0.1:8765

Server yalnızca localhost üzerinde dinliyor.

Yani mastering arayüzü varsayılan olarak internete açık değil.

Yüklediğiniz ses dosyaları da harici bir mastering API'sine gönderilmiyor. Yerel proje klasörünün içinde kalıyor.

Bu benim için önemliydi.

Henüz tamamlanmamış müziğiniz kendi bilgisayarınızda kalabilsin istedim.


Komut satırından kullanım

Tarayıcı arayüzü daha kolay.

Ama otomasyon için CLI oldukça kullanışlı.

Temel mastering:

master.bat "C:\Music\track.wav"

Suno Adaptive kullanmak için:

master.bat "C:\Music\track.wav" --profile suno-adaptive

Bir referans parça ile:

master.bat "C:\Music\track.wav" --profile suno-adaptive --reference "C:\Music\reference.wav"

İsterseniz master oluşturmadan yalnızca analiz de yapabilirsiniz:

.venv\Scripts\python.exe master.py "C:\Music\track.wav" --analyze-only

Bu komut parçanın ölçümlerini ve motorun hangi mastering planını seçmiş olacağını gösteren bir rapor oluşturuyor.

Benim için bu aynı zamanda mastering öğrenmenin güzel yollarından biri.

Sayıları görüyorsunuz.

Parçayı dinliyorsunuz.

Bir tahminde bulunuyorsunuz.

İşlem yapıyorsunuz.

Sonra sonucu karşılaştırıyorsunuz.


Web arayüzü

Yerel web uygulaması aynı motorun etrafına daha rahat kullanılabilir bir workflow ekliyor.

Bir şarkıyı sürükleyip bırakabilirsiniz.

İsterseniz referans parça ekleyebilirsiniz.

Profil seçebilirsiniz.

Intensity ve tonal direction değerlerini değiştirebilirsiniz.

Ne yaptığınızı biliyorsanız LUFS veya true-peak hedeflerini manuel olarak override etmek de mümkün.

İşlem tamamlandığında arayüz size:

  • önceki ölçümleri,

  • sonraki ölçümleri,

  • Original / Mastered A/B karşılaştırmasını

gösteriyor.

Uygulama aynı anda yalnızca bir mastering işlemi gerçekleştiriyor ama yerel job queue sayesinde arayüz cevap vermeye devam ediyor.

Cloud hesabı yok.

İnternette bir yerlerde upload sırası beklemek yok.

Sadece localhost ve işi yapan kendi CPU'nuz var.

Laptop'um bazen bundan pek memnun olmayabiliyor ama en azından neden bağırdığını biliyor. 🙂


Önemli bir sınır

Mastering her şeyi düzeltemez.

Bir stereo WAV dosyasının içinde artık ayrı:

  • vokal stem'i,

  • kick stem'i,

  • gitar stem'i,

  • synth kanalları

bulunmuyor.

Eğer vokal mix içinde 6 dB fazla geride kaldıysa mastering bir anda mixer'sa erişim kazanamaz.

Clipping bilgiyi yok ettiyse o bilgi dosyanın bir köşesinde saklanıp kurtarılmayı beklemiyor.

Bir algoritmanın tek bir stereo dosyadan her müzik türünün sanatsal niyetini kusursuz şekilde anlaması da mümkün değil.

Bu yüzden Adaptive Master bilerek aşırı cerrahi kararlar vermekten kaçınıyor.

Ölçebildiğini ölçüyor.

Sınırları belli kararlar veriyor.

Sonra hâlâ kulaklarınızı kullanmanız gerekiyor.

Ve o son adım hâlâ yenilmedi.


Açık kaynak demek, bu projenin bitmediği anlamına geliyor

Adaptive Master MIT lisansı altında yayınlanıyor.

Yani bu projenin kapalı bir kara kutu olarak kalmasını istemiyorum.

Fork'layın.

DSP kodunu okuyun.

Garip materyaller üzerinde test edin.

Yeni bir profil geliştirin.

Ölçümleri iyileştirin.

Kötü yaptığım bir şey bulursanız daha iyi bir implementasyon yazıp gönderin.

Projede şimdiden şu alanları kapsayan otomatik testler bulunuyor:

  • true-peak ceiling

  • kısa clipping onarımı

  • stereo davranışı

  • yoğun kaynakların korunması

  • 24-bit çıktı

  • reference handling

  • profil kontrolleri

Ama teknik testler bir şeyin iyi duyulduğunu kanıtlayamaz.

O kısımda müziğin hâlâ insana ihtiyacı var.

Ve açıkçası, umarım bu hiç değişmez.

Proje: Adaptive Master
Kaynak: github.com/alesmcgregor/Mastering
Lisans: MIT