İlginç sesler oluşturmak için ses sinyalleri üzerinde gerçekleştirilen temel işlem kategorileri nelerdir?


10

Ben dsp için çok yeni olduğum için bu sorunun mantıklı olup olmayacağını bilmiyorum.

Ses dsp içine benim sınırlı foray karşılaştım:

  1. Frekans modülasyonu
  2. Genlik Modülasyonu
  3. Katkı Maddesi Sentezi
  4. Eksiltici Sentez

Sorum şu: bunlar sinyal manipülasyonunun temel kategorileri mi (özellikle ses için)?

Başka bir deyişle, tam bir eklenti paketi ile FL Studio'nun yapabileceği tüm efektler ve süslü şeyler, yukarıdaki 4 işlemin bir serisine ve kombinasyonuna ayrılabilir mi? Yoksa bir sürü daha var mı? Eklentileri olan modern bir DAW teorik olarak bu şekilde herhangi bir kategoriye ayrılabilir mi? Yukarıdaki 4 kategori kendileri için anlamlı mı ?!

Biraz arka plan: Aslında hem programlama hem de ses dsp öğrenmek için bir proje olarak çok temel (ama çok esnek) bir ses synthesizer / editör yapmaya çalışıyorum. Java'yı kullanarak temel gerçek dünya synthersizer-ish sınıflarını taklit ederek, Osilatör ve LFO ve benzeri şeyleri çağırarak başladım, ancak her yeni şey öğrendiğimde, kendimi her şeyi yeni konsepte uygun hale getirmek zorunda kalıyorum.

Şimdi tekrar başlayıp programın temel nesnelerini ve yapısını bulmaya çalışıyorum. Bunun için düzgün bir şekilde bu nesnelerin etkileşime girmesine nasıl izin vermem gerektiğini bilmeliyim ...

Teşekkürler!

DÜZENLE * * *

Yararlı yorumlar ve cevaplar için teşekkürler. Muhtemelen şeylerin dsp tarafını küçümsediğimin farkındayım ve basit bir sentezleyici için basit bir şablon ve yapı oluşturamayacağım ve daha sonra genişletip üzerine inşa edemeyeceğim. Yeni şeyler ve bir şeyler yapmanın "uygun" yolunu öğrendiğimde muhtemelen tekrar tekrar tekrar yapmak zorunda kalacağım ... Daha uzun sürecek, ama belki daha fazla öğreneceğim? Ayrıca üzgünüm, henüz kimseyi onaylamak için yeterli temsilciye sahip görünmüyorum ... mümkün olan en kısa sürede yapacağım.

DÜZENLEME * DÜZENLEME ***

Ben biraz googling ilgili ve ilginç buldum "sentez türleri" için bu temel kılavuzu ortaya koydu eklemeliyim .


Sentez tekniklerinin teorik arka planını mı istiyorsunuz, yoksa bunun gibi bir şey mi istiyorsunuz (yani pratikte kullanılan yaygın yöntemler)? dsp.stackexchange.com/questions/192/…
datageist

1
Mümkün olduğunca az kategoride mümkün olan tüm ses manipülasyonlarını özetleyecek olsaydım, doğrusal ve doğrusal olmayan dönüşümleri isimlendirirdim. Ancak bunlar uygulanamayacak kadar genel ve geniştir.
Alexey Frunze

@datageist - Sanırım ikisine de ihtiyacım olacak! Ama bu çok faydalı bir bağlantı, teşekkürler.
kiman

@Alex Bu çok genel, ama kavramsal bir başlangıç ​​noktası ve en azından şimdi bir tür yanlış ağaca havladığımı biliyorum.
kiman

Will Pirkle'nin kitabı, C ++ 'da Yazılım Sentezleyici Eklentileri Tasarlama: RackAFX, VST3 ve Ses Birimleri için. aslında her şeyi kendi başınıza çözmeye çalışmak yerine bir synthesizer yapıp yol boyunca öğreneceksiniz.
panthyon

Yanıtlar:


9

AM / FM kategorisi efektler için biraz garip - doğru, bir giriş sinyalinin genliğini modüle ederek bazı ilginç efektler alabilirsiniz; ancak "frekans modülasyonu", doğru bir frekans gösterimi bile yapmadığınız karmaşık bir giriş sinyali için ne anlama gelir? Her etkinin sinyali ile bir genlik modülasyonu olduğunu çok iyi söyleyebilirsiniz , ancak bu onu uygulamanıza yardımcı olmaz!out(t)in(t)

Müzik prodüksiyon yazılımı tarafından sağlanan tüm ses efektlerinin kalbinde sihirli tek amaçlı bir motor yoktur. Ancak, bir DSP geliştiricisinden gelen büyük bir ses efektleri paketinin kaynak koduna bakarsanız, kendi sınıflarında çarpanlarına ayrılacak ve birçok farklı efektle paylaşılan bazı "yapı taşları" burada. Bunun etkileri sınıflandırmak için iyi bir temel oluşturduğunu ima etmiyorum; ancak uygulama açısından bu bloklar önemlidir:

  • Biquad filtreleri.
  • Kesirli gecikme çizgileri.
  • Bir giriş sinyalinin gelişigüzel boyutlu dürtü yanıtları ile hızlı dönüşümü için bükülme motoru.
  • Waveshaper (lineer olmayan bir fonksiyonun zaman diliminde giriş sinyaline uygulanması).
  • Sentezleyici yapı taşları: osilatörler, LFO'lar, ADSR zarflar.
  • Sinyal dedektörleri: zarf takipçisi, f0 çıkarıcı.

Bu bloklarla şunları yapabilirsiniz:

  • Synth benzeri filtreler veya wah-wah: bir veya iki biquad
  • Otomatik wah: zarf takipçisi + zarf + biquad
  • Flanger / Phaser: LFO + gecikme hattı
  • Koro: LFO + gecikme hatları
  • Algoritmik yankı: gecikme çizgileri (paralel ve seri tarama filtreleri dizisi)
  • Evrişim yankısı: evrişim
  • Uzamsallaştırıcı: evrişim (HRTF'lerin dürtü yanıtları ile)
  • Gitar amfi simülasyonu: evrişim, dalgacık
  • Bozulma, Fuzz: kazanç + dalgacık
  • Bit kırıcı (niceleyici): belirli bir dalgacık kasası
  • Sinüs taşıyıcılı halka modülatörü: osilatör
  • Gürültü Kapısı ve diğer dinamik efektler: zarf takipçisi
  • Teyp simülasyonu: evrişim, dalgacık, zarf takipçisi (dinamik işleme için)
  • EQ: biquad'ler
  • Tremolo: LFO
  • Leslie emülasyonu: evrişim + LFO
  • Vocoder: biquads + zarf takipçisi

Bu etkilerin bazıları sadece farklı blokları yamalama meselesi olsa da (bir flanger gerçekten bir gecikme hattını modüle eden bir LFO'dur), diğer bazı etkiler parçalar arasında daha karmaşık bir yapıştırıcıya ihtiyaç duyar, bu da bir yapı bloğuna çarpan olmayacak kadar spesifiktir kendi.

Bu, genel olarak, müzik üretimi için çok fazla yer kaplayacak ilginç bir dizi efekttir, ancak kapsamlı değildir ve gerçekten de bu çerçeveye uymayan bazı efektler vardır ... Bazı örnekler: * Kirli numune oranı düşürücü ( bir bitcrusher): true, bu bir dirac tarağı ile çarpma ve daha sonra dikdörtgen bir pencere ile bir kıvrım ... ancak genlik modülasyonu yamalamak yerine aşağıdaki numunelerin değerini N'nin üzerine kopyalayan bir şey olarak yazmak daha kolay ve bir evrişim! * Pitch değiştirme efektleri (adım kaydırma, otomatik ayarlama) bu çerçeveye iyi uymuyor. Gerçekleştirilecek ses sinyalinin daha karmaşık bir temsilini gerektirirler (frekans-alan yöntemleri için faz ses kodlayıcı; zaman-alan yöntemleri için hatve tespiti ve hatve işaretleri).

Pd, Reaktor, Plogue, SyntheEdit ... gibi "modüler stil" yazılım araçlarıyla oynamanızı ve size sağladıkları temel yapı taşlarından efektler uygulamayı denemenizi öneririm.


2
Değeri için, FM Synthesis'te frekans modülasyonu kullanılır. Bu, tek tonlu FM modülasyonu durumundan kolayca görülebilir, bu da ilk türün Bessel fonksiyonları tarafından tanımlanan bir Fourier serisi ile bir sinyale neden olur.
Bryan

1
Sentezleyicilerde uygulandığı şekliyle "FM sentezi" (Yamaha DX serisi, OPL tabanlı donanım ve bunların yazılım emülasyonu gibi), bu aslında faz modülasyonu ile yapıldığı için yanlış bir adlandırmadır. en.wikipedia.org/wiki/Phase_modulation
pichenettes

Wikipedia girişine eklenmiş hiçbir kaynak görmüyorum. Ne olursa olsun, bu girişe göre, "benzer" sesler ve FM'nin uygulanması daha zor olduğu için PM kullanıldığını söylüyor. FM'nin PM için özel bir durum olduğu göz önüne alındığında, bunu satın almıyorum. Yine de, Bessel fonksiyonları ile ilgili harmonikler üreten FM modülasyonunun arkasından bahsettiğim teori ayakta duruyor ve faydalı.
Bryan

@Bryan. Bkz. "FM" sentez patenti, US4018121. Bir sin (wt + I (t) sin w_m t) - faz modülasyonudur. PM'nin uygulanması daha kolaydır, çünkü 1 / değişen anlık frekansı bir faza entegre etmek için fazladan bir akümülatöre ihtiyacınız yoktur - burada insanların zamanla değişen frekansta bir ton üretmeye çalıştığı ve ısırıldığı birkaç yazıya bakın 2 / frekanstan faz artışına dönüşüm bir bölünmeyi içerir. PM ile faz artışlarını modülasyon hızında yeniden hesaplarsınız; FM ile faz artışlarını örnekleme hızında yeniden hesaplamanız gerekir.
18'de pichenettes

Çok faydalı bir cevap, teşekkür ederim. Programlama yönüne çok fazla odaklandığımı (sadece öğreniyorum) ve dsp tarafını yeterince ciddiye almadığımı fark ettim. Muhtemelen küçük başlayabileceğim ve yavaş yavaş inşa edebileceğim bir proje olmayacak, ama öğrenirken birçok kez yeniden inşa etmem ve yeniden inşa etmem gerekecek.
kiman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.