İçindekiler:
- 1. Adım: Soundflower'ı Max ve DAW'ınızla Ayarlama
- Adım 2: Sinyal İşleme Yolunuza Karar Verin
- Adım 3: Kuru Karışım Ekleme
- Adım 4: Bir Pitchshifter ile Perdeyi Değiştirme
- Adım 5: BOZUKLUK
- Adım 6: Drone'un Gücü
- Adım 7: Bizarre: Ring Modülasyonuna Giriş
- Adım 8: Gecikme ve Sinyal Bozulması… Degrad… Derece… D….
- Adım 9: Belton Brick Style Reverb
- Adım 10: Rastgele Stereo Tremolo
- Adım 11: Osiloskop
- Adım 12: Sinyal İşleme Modülünün Sunulması
- Adım 13: Bölüm 2: Akor Üreticisi
- Adım 14: Arpejatöre Beslenecek Notların Alınması
- Adım 15: Bu Akorları Arpejlemek
- Adım 16: 'Anahtar Karmaşa'
- Adım 17: Otonom Nota Üretimi ile Sihri Gerçekleştirmek
- Adım 18: Son Dokunuşlar
- Adım 19: Her Şeyi Sarmak
Video: Max MSP Ortam Döngüsü Üreteci: 19 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu, Max MSP'de bir ortam döngüsü oluşturucu oluşturmaya nasıl başlayacağınıza dair bir eğitimdir.
Bu eğitim, Max MSP, DAW arayüzleri ve sinyal işleme hakkında temel bir anlayışa sahip olmanızı bekler. Bu öğreticide tasarlanan programı kullanmak istiyorsanız, devam edin ve indirin, kullanımı ücretsiz (ancak satmak veya yeniden yayınlamak için değil)!
Tasarlayacağımız programın İKİ ana bölümü vardır:
1) Çok sinyalli bir işlemci
2) Yarı rastgele not oluşturucu
Not oluşturucu, bir anahtar/ölçek boyunca yarı rasgele modellerde yavaşça çalışır, MIDI verilerini bir DAW'a besler, bu da sesi işlenmek üzere Max'e geri gönderir.
İşte son yama dosyasının bağlantısı:
Gereçler:
- Temel Max MSP ve MIDI bilgisi
- Maks MSP
- Ses Arayüzü (Logic Pro X kullanıyoruz)
- Ses çiçeği
- (İsteğe bağlı) DAW'ınız için bazı iyi yazılım aracı eklentileri
1. Adım: Soundflower'ı Max ve DAW'ınızla Ayarlama
Soundflower, Mac'teki programlar arasında ses göndermeye yardımcı olan bir programdır. Bunu, DAW'dan Max'e ses almak için kullanacağız.
Soundflower'ı DAW'ınızla kullanmak daha kolay olamazdı! Soundflower'ı indirmeniz yeterlidir; ses çıkışı ve girişi olarak kullanılabilir hale gelecektir. Adc~ (ses girişi) ve dac~ (ses çıkışı) nesneleri oluşturursak Soundflower 2ch ve Soundflower 64ch'nin kullanılabilir ses yolları olduğunu görebiliriz. Bu program için Soundflower 2ch (2 kanal) kullanacağız.
Max'te, girişinizi açıp kapatmak için bir geçiş ve ses seviyesi için bir kazanç kaydırıcısı ekleyin ve yola koyulun.
DAW'ınızda, tercihler > ses altında ses girişi ve ses çıkışını göreceksiniz. Ses çıkışı olarak Soundflower 2ch kullanacağız.
Adım 2: Sinyal İşleme Yolunuza Karar Verin
Basit bir ifadeyle, sesiniz bir grup farklı kanalda mı yoksa hepsi tek bir düz çizgide mi bozulacak?
Paralel ses işlemeyi kullanmaya karar verdik - sinyalimiz birden fazla farklı kanalda bozulacak. Bu bize daha net bir genel ses ve sinyalimiz için daha fazla kontrol avantajı sağlar, ancak ana kazanca çok fazla ses seviyesi iterek bazı kırpmalara neden olur. Yine de ortam döngüleri oluşturacağından, daha fazla kontrolün bozuk sese değeceğine karar verdik!
Ek olarak, hangi efektleri oluşturmak istediğinize karar vermeniz gerekir. Fikir istiyorsanız, burada bazı efekt türlerini göstereceğiz.
Adım 3: Kuru Karışım Ekleme
Ayrı, etkilenmemiş bir ses sinyaline sahip olabilmemiz için önce bir "kuru karışım" ekledik. Bu, adc~ çıkışını bir kazanç kaydırıcısına (görüntülemeyi kolaylaştırmak için bir kadranı olan), alçak geçiren filtrelemeyi ayarlamak için bir kadranı olan bir svf~ filtresine ve ardından ana kazanca ve dac~'ye çalıştırarak yapıldı. Kuru bir karışıma sahip olmak oldukça kullanışlı olabilir, bu yüzden her şeyin biraz net ve test edilmesi kolay olmasını istiyorsanız bunu öneririz!
Orada biraz dikkatinizi çekmiş olabiliriz - her bir sinyal kanalı için ton aramaları olması için tüm efektlerimizi ayrı svf~ filtrelerinde çalıştıracağız. Bu, belirli bir efekt çok yüksek frekans olduğunda ses alanını temizlemeyi kolaylaştırır. Tüm svf~ alçak geçiren filtrelerimizi (alçak geçiren çıkışa bağlayarak) yaptık, böylece kadranı kapatarak kademeli olarak yüksek frekansları keserler. Bununla birlikte, svf~ ayrıca bant geçişine (seçici frekans), yüksek geçişe (düşükleri kaldır) ve diğer faydalı filtrelere sahiptir. Neyi sevdiğinizi ve neye ihtiyacınız olduğunu görmek için deney yapın, hatta birden fazla filtre kullanın!
Adım 4: Bir Pitchshifter ile Perdeyi Değiştirme
Basit, kullanımı kolay bir perde değiştirici için, perde değiştirici kodunu Max'teki perde değiştirici yardım kılavuzundan kopyalayın. Kodumuz çok benzer, ancak dağınıklığı azaltmak için kayma ve çoklu ses kalitesi ayarları gibi özellikleri kaldırır. Sesinizi buna çalıştırmak (paralel ses için adc~'den veya seri ses için kuru karışımdan), perde kaydırma seviyesini ayarlamak için bir kadran kullanmanıza olanak tanır.
Kuru karışımda olduğu gibi, ses kontrolü ve EQ şekillendirmesine izin vermek için bir kazanç kaydırıcısı ve bir svf~ nesnesi ekledik.
Adım 5: BOZUKLUK
Overdrive~ nesnesini kullanmak, distorsiyon eklemenin en basit yoludur. Bunu bir kazanç kaydırıcısına ve bir filtreye çalıştırabilir ve bir gün olarak adlandırabilirsiniz. Ancak biz bunu birkaç adım öteye taşıdık. İlk olarak, sol ve sağ ses yollarını ayrı Phaseshift~ nesnelerine koştuk - bunlar sol ve sağ ses yollarını faz dışı bırakarak sesi bir koro pedalı gibi "kalınlaştırır".
Ek olarak, elde edilen sesi bir filtre grafiği eklenmiş olarak kademeli bir nesneye gönderdik. Bu, belirli frekanslarda ve istediğiniz kadar filtre bandıyla sesi az çok bozmanıza olanak tanır. Bozulma filtre grafiğimiz, 1980'lerin Boss HM-2 Heavy Metal pedalının bozulmasından sonra modellenmiştir.
Bu noktada, özellikle gürültülü efektlerden sonra omx.peaklim~ nesneleri eklemeye başladık - bu nesne, içinden gelen ses sinyalini bir sıkıştırıcı gibi sınırlandırarak, son ses yolunun kırpılmasını önlemeyi kolaylaştırır.
Adım 6: Drone'un Gücü
Ayrıca yamamıza bir "droning" frekansı eklemenin gerekli olduğunu hissettik. Bu, basit bir osilatör oluşturmak için bir döngü nesnesi ile gerçekleştirilebilirken, orijinal sesteki ses düzeyi veya frekans değişikliklerine çok uyumlu olmazdı. Bu nedenle, ultra rezonanslı bir ses yolu oluşturmak için bir svf~ filtresi kullandık. Sesi bir svf~ filtresine çalıştırarak ve rezonansı 1'e ayarlayarak, ses yolumuzun yaptığı gibi içeri ve dışarı hareket eden ve daha sonra ses yüksekliği, ton ve frekans için ayarlanabilen bir vızıltı frekansı yaratırız. Ekli kadranı ayarlamak, droning frekansını ayarlayacaktır.
Adım 7: Bizarre: Ring Modülasyonuna Giriş
Şimdi halka modülasyonu ekleyerek devam ediyoruz! Bu eğlenceli ve havalı efekt yapmak son derece basit ve çok yanlış anlaşılıyor çünkü kulağa biraz tuhaf geliyor. Bu, sağ girişteki bir *~ nesnesine bir kadran takılarak ve sol girişteki kadranımızı takarak gerçekleştirilir. Bunu bir adım daha ileri götürdük - halka modülatörümüz tamamen aşağıdayken, bir kapı sayı sinyalini kapatır ve böylece halka mod sinyali tamamen kesilir. Ek olarak, frekansı belirli bir miktarda azaltan başka bir * nesnesine çıkış yapmak için de değiştirilebilir. Bu şekilde, "ince", tremolo tipi bir zil modu ve daha hızlı, garip sesli bir zil modülasyonuna sahip olabiliriz. Diğer efektler gibi, bu da bir kazanç kaydırıcısı ve bir svf~ filtresiyle çalıştırıldı.
Adım 8: Gecikme ve Sinyal Bozulması… Degrad… Derece… D….
Burada zaman kontrolü, geri besleme kadranı, tonlu arama ve numune düşürme ile bir gecikme yaratıyoruz. Bu, sinyali kademeli olarak daha sessiz ve daha bozuk hale getirerek bir analog gecikmeyi taklit etmemizi sağlar. Bunu yapmak için, bağlı tapin~ ve tapout~ nesnelerini kullanırız. 5000ms hafıza süresi olduğundan emin olmak için dokunduktan sonra 5000 yazıyoruz. Bir degrade~ nesnesi eklemek, sinyali aşamalı olarak yok etmemizi sağlar. Ardından, adc~'den degrade~ nesnemize, tapin~'ye, tapout~'a ve aynı anda bir *~'den degrade~'ye ve çıkış kontrolümüze *~'den sesi çalıştırırız. Bunu yapmak, kendi içine geri dönen gecikme ses seviyesini ayarlamak ve *~ nesnesinden çıkışlarımıza gelen gecikmeli bir sinyal almak için bir kadran eklememizi sağlar. Ek olarak, bozulma nesnesini tapin'den önce yerleştirmek, sinyal geciktikçe giderek daha fazla örnek azaltma eklememize izin verir. Tüm bunların nasıl yapıldığını net bir şekilde görmek için resmimizi ve kodumuzu kontrol edin.
Adım 9: Belton Brick Style Reverb
Belton brick reverb, Neunaber Effects'ten Brian Neunaber tarafından tasarlanan Accu-Bell BTDR Digi-log çipi ile donatılmış bir yankıyı ifade eder. Bu çip, basamaklı gecikme hatlarını kullanarak basit yay yankılarına izin verir. Bunu taklit etmek için, zamanı ve geri bildirimi ayarlamak için bir kadranla başka bir gecikme kodladık. Zaman asla 100 ms'yi geçmez ve geri bildirim %80 ile sınırlıdır. Bu basit gecikme, kolay bir yay yankı sesi verir! Bir kez daha kazanç ve ton kontrolüne geçin.
Adım 10: Rastgele Stereo Tremolo
Son sinyal efektimiz! Burada daha önce halka modülatörü için kullanılan kodun aynısını birkaç bükülme ile yarattık: tremolonun derinliği rastgeledir ve sol ve sağ kanal için bir tremolo vardır. Ek olarak, bu birimi seri olarak kurduk, böylece tüm efektler artık ondan önce gelir, böylece her sinyal tremolos tarafından etkilenir.
Bunu yapmak için, bazı değişikliklerle daha önceki halka mod kodunu taklit ediyoruz: sinyal şimdi, diğeri kapatıldığında açılan iki kapıya gidiyor. Bu, sinyalin yalnızca etkilenmesi veya devre dışı kalması yerine, etkilenmesine veya etkilenmemesine izin verir. Bu, !- nesnesi ile yapıldı. Kadranımız bir rand~ nesnesine, ardından *~ ve +~'a ve sağ girişte bir başka *~'a ve soldaki sese geçer. Burada, kadran yukarı kalktığında açılan ve kapandığında aşağı inen rastgele bir tremolo var!
Bu, bir kazanç kontrolüne veya ton kontrolüne ihtiyaç duymaz, bu nedenle doğrudan dac~ nesnesine gider.
Adım 11: Osiloskop
Son olarak, ana kazanç kontrolünden ses çıkışına bağlı bir kapsam~ nesnesi ekleriz. Ayrıca hassasiyetini ayarlamak için bir kadran ekledik!
Adım 12: Sinyal İşleme Modülünün Sunulması
Kodumuza sunum modunda biraz yetenek vererek bu bölümü bitiriyoruz. Sunum moduna tek tek kadranlar ve yorum kutuları eklemeniz yeterlidir; gitmeye hazırsınız! Renkli kutular ve çeşitli yazı tipi ve iddialı tasarım kararlarıyla kendimize ekstra bir yetenek kazandırdık. Ek olarak, tasarım gitar pedalı tasarımlarına dayanıyordu: sinyal yolunun anlaşılmasını kolaylaştırmak için etiketli satırlar ve bölümlerde kadranlar. Bu bölümde iyi eğlenceler!
Adım 13: Bölüm 2: Akor Üreticisi
Artık Max'te tamamen çalışan bir sinyal işlemcimiz var, onu beslemek için sadece biraz sese ihtiyacımız var. Soundflower'ı kullanarak, kaynak bilgisayarınız olduğu sürece, sinyal işlemcisinden çıkan tüm sesi yönlendirebiliriz!
Ancak kendi ortam döngülerimizi oluşturmak için başka bir Max yaması yapmamız gerekecek. MIDI'nin gücü sayesinde, bitmiş yama, DAW'ınız için yeni bir MIDI denetleyicisi olarak etkin bir şekilde hizmet edecek ve seçtiğiniz veya tasarladığınız herhangi bir enstrümanı kullanmanıza izin veren notları doğrudan ona gönderecek! Harici bir MIDI denetleyicisinin aksine, maksimum gücüyle, kendi başına çalabilen bir MIDI denetleyicisi oluşturabiliriz, bu da onu sinyal işlemcisi ile kolaylıkla modüle etmenize olanak tanır.
Benzersiz nota üretimi için triadlar oluşturmak için bir arpej kullanacağız ve daha sonra arpejcinin akorlar arasında atlamasını sağlayacak bir algoritmayı nasıl bir araya getireceğimize bakacağız.
Adım 14: Arpejatöre Beslenecek Notların Alınması
Bir arpejatörü bir araya getirmeden önce, onun dizilişi için akorları üretebilmemiz gerekir. MIDI'de, klavyedeki her nota bir sayıya karşılık gelir, ortadaki C 60'tır. Neyse ki sayılar sıralıdır, bu nedenle biraz müzik teorisi uygulayarak çeşitli anahtar imzalarına karşılık gelen doğru aralıkları üretebiliriz.
Kullanacağınız anahtar imzalar size kalmış, ancak seçtiğimiz 4 anahtar imza ile birlikte takip edebilirsiniz. Daha sonra, anahtar imzalar arasında kendi başına geçiş yapmasına izin vermek için kodun bu bölümüne ekleyeceğiz, bu yüzden program akorlar arasında geçiş yaparken tonaliteyi korumaya yardımcı olmak için Majör, Minör, Majör 7'li ve Minör 7'lileri seçtik.
İlk resme atıfta bulunarak, bu bölümün büyük kısmı sadece bu tuşların aralıklarına karşılık gelen matematiktir. '60' etiketli en soldaki kutudan başlayarak, kök budur. Kök değiştiğinde, aralıklar geçerli anahtara göre buna göre değişecektir. Örneğin, majör tuş seçilirse, karşılık gelen aralıklar 4 ve 7'dir. Daha sonra +0 kutularından geçerek, bu aralığı köke ekleyecek ve size bir majör akor oluşturmanız için 3 notayı sağlayacaktır. herhangi bir kök!
Adım 15: Bu Akorları Arpejlemek
Arpejatör kodu için yukarıdaki fotoğrafa bakın. Sayaç nesnesi ve ekli 0, 1 ve 2 nesne kutuları, arpejleyicinin yönünü Yukarı, Aşağı ve Yukarı Aşağı'dan kontrol etmenize izin verecektir.
Yukarıda gösterildiği gibi, az önce bir araya getirdiğimiz aralık üreteci 'int' kutularına yönlendiriliyor, böylece sayaç ve seçme kutuları çalışırken diğer kod yığınından akordan geçecektir. Bu daha sonra 'makenote' ve 'noteout' kutularından geçerek sonunda bu MIDI numaralarını sese dönüştürür!
MIDI bilgilerini Max'ten DAW'ınıza göndermenize izin veren şey bu olduğundan, 'noteout' kutusuna bağlı 'port "from "Max 1"' nesnesine dikkat edin.
'Metro' nesnesi, her aralık arasında milisaniye cinsinden ne kadar zaman olduğunu belirler. Varsayılan olarak 500ms olarak ayarladım ve ekli kodu takip ederseniz, kaydırıcı nesneyi kullanarak her bir aralık arasında kaç milisaniye olduğunu ayarlayabilirsiniz.
Adım 16: 'Anahtar Karmaşa'
Yukarıdaki resim, programın anahtar imzalar arasında otomatik olarak geçiş yapmasına izin verecek ve farklı kök notaları seçerken spontane akorlar oluşturmanıza izin verecek kod parçasıdır.
'select' nesnesi, arpejleyici bölümündeki ile çok benzer şekilde çalışıyor, ancak belirli bir dizi yerine, anahtarlar arasında rastgele geçiş yapmak için 'urn' kutusunu kullanıyoruz. 'Urn' kutusunu 'rastgele'den farklı kılan şey, tüm aralıktan geçene kadar bir sayıyı tekrarlamamasıdır, bu da bize farklı anahtarlar arasında eşit bir atlama dağılımı sağlar.
Adım 17: Otonom Nota Üretimi ile Sihri Gerçekleştirmek
Bu kod parçası, bu yamayı özerk olarak çalıştırabilmeyi sağlayan şeydir. Bu bölümün başından itibaren akor oluşturucuya geri dönersek, kökü değiştirmek aşağıdaki aralıkları otomatik olarak dolduracaktır, böylece bunu benzersiz akor dizileri oluşturmak için kullanabiliriz!
Buradaki anahtar öğe, 'itable' veya içinde küçük mavi dikdörtgenler bulunan büyük karedir. Bunu arpejatörden (kutu 500'e ayarlı) metro parametresine ekleyerek, arpej dizisindeki akorun tam olarak değiştiği noktayı kontrol edebiliriz. Arpej Oluşturucu 3'lü setler halinde çalıştığından, itable'ın boyutu 4 döngüyü hesaba katmak üzere 12'ye ayarlanmıştır ve aralık 2'ye ayarlanmıştır, 2'si 'hayır' ve 1'i 'evet' olup olmadığı veya akoru değiştirmemek için. Ana koddaki sekansla, arpejci bir triaddan birer birer olacak, daha sonra yeni bir akor üretilecek ve bu triaddan geçecek ve bu böyle devam edecekti.
'Rastgele' kutular, yeni kökün orijinalden ne kadar uzakta olduğunu belirler, şu anda onu yarım oktav yukarı veya aşağı gidebilecek şekilde yapılandırdım.
Kodun tam resminde, solda görülen, alttaki 67 sayı kutusu, akor üretecinden kök sayı kutusuna eklenir, bu nedenle, itable'dan hangi sayı üretilirse sonuçlanırsa ve ekli algoritması akora gidecektir. jeneratör ve ardından yeni seçilen akoru çalacağı arpejöre. Üstündeki '+0' kutusuna giren 67 rakamı kutusu, akor üretecinden gelen kök sayı kutusuna da bağlı olan, yukarıda resimde görülen piyano nesnesine eklenmiştir. Bu, bu kod yığınından gelen algoritma bir sayı ürettiğinde, piyanoda da seçilir, böylece o notayı çalmak için tetikler.
Son kodda, bu bölüm iki kez görünür, tek fark itable'dır. Arpejci bir diziyi 4 kez tekrarladıktan sonra yeni bir akor oluşturulacak şekilde nasıl yapılacağı için ayrıca eklenmiş olan tabloya bakın.
Adım 18: Son Dokunuşlar
Artık tamamen çalışan, kendi kendine oynayan bir arpejörünüz olmalı! Bununla birlikte, biraz daha fazla kontrol eklemek isterseniz, yukarıda resmedilen kod parçası, çalınan notaların süresini kontrol etmenize izin verir, böylece yavaş, uğuldayan, ortam döngüsü için mükemmel uzun çizilmiş notalar elde edebilirsiniz.
Ayrıca, Max'i bir DAW üzerinden çalıştırırken özellikle yararlı olan bir 'durdurma' nesnesi de eklenmiştir. Max'in MIDI verilerini iletmekte sorun yaşamaya başladığı bir durumda, Max'i veya DAW'ınızı tamamen kapatmadan onu geçersiz kılabilir ve durdurabilirsiniz.
Adım 19: Her Şeyi Sarmak
Program artık işlevsel olarak tamamlanmıştır, geriye kalan tek şey her şeyi sunum modunda düzenlemektir. Bunun için tek bir çözüm yok, tamamen yüzey seviyesinden neyi kontrol etmek istediğinize bağlı.
Seçimim, kolayca modüle edebilmek istediğim her şeyin temellerini kapsıyor, böylece uygun gördüğünüz gibi ona ekleyebilir veya ondan çıkarabilirsiniz.
Şimdi yapılması gereken tek şey bu iki yamaya aşina olmak ve biraz müzik oluşturmaya başlamak!
Eğlence!
Önerilen:
Ses Kaset Döngüsü: 13 Adım (Resimlerle)
Ses Kaset Döngüsü: Teorik olarak kulağa gerçekten kolay geliyor; kısa bir manyetik şerit parçasının uçlarını birbirine bantlayarak ve tekrar kaset bandının içine yapıştırarak bir bant halkası oluşturabilirsiniz. Ancak, bunu gerçekten yapmayı denediyseniz, yakında anlayacaksınız ki ben
La Chaise Longue İnteraktif Avec Arduino Et Max/MSP.: 5 Adım
La Chaise Longue Interactive Avec Arduino Et Max/MSP.: Şezlongların en sonuncusu etkileşimli: Utilisateur qui s'assoit on ambiyans sonore ve visuelle lui rappelant la mer, la plage… Nous utilisons donc un capteur de luminosité (placé sous le transat) güvenir
Larson Döngüsü: 5 Adım
Larson Loop: Bu proje, Larson Scanner adlı bir cihazdan esinlenilen Larson Loop olarak adlandırılıyor. Buradaki fikir, LED'lerden gelen ışığın bir döngüde gidiyormuş gibi göründüğü bir döngüde birden fazla LED'e sahip olmanızdır. Ayrıca, değiştirmek için bir potansiyometre kullanılır
Python'da while Döngüsü Nasıl Oluşturulur: 9 Adım
Python'da while Döngüsü Nasıl Oluşturulur: Programlamada bir problemi çözmek için bir dizi adımı tekrarlamanız gereken anlar vardır. Bir while döngüsü, tekrarlanan kod yazmak zorunda kalmadan bir kod bölümü arasında geçiş yapmanızı sağlar. Programlama yaparken, aynı kodu tekrar tekrar yazmak
Java'da Diziyi Yinelemek için Bir Süre Döngüsü Nasıl Kullanılır: 9 Adım
Java'da Bir Diziyi Yinelemek İçin Bir while Döngüsü Nasıl Kullanılır: Bugün size bir sayı veya kelime listesi içinde yineleme yapmak için kullanılabilecek bir while döngüsü oluşturmak için Java'yı nasıl kullanacağınızı göstereceğim. Bu konsept, giriş seviyesi programcılar ve Java Döngüleri ve dizileri hakkında hızlı bir şekilde bilgi edinmek isteyen herkes içindir