Jump to content

Raslantısal muzik


Recommended Posts

8 - 10 hard disk once boyle bir calismam vardi :lol:

Simdi bulup cikarmam imkansiz ama bir zamalar merakliydim.

Notalari ve/veya sureleri rastgele secerek kulaga hos gelen bir sey cikarmak mumkun degil. Biraz muzik egitimi almis olmak lazim. Bazi temel degismezleri programlamak gerekiyor; bir bardaki notalarin toplam suresi gibi. Bunun disinda, parcanin tonu icinde kalmaya calismak gerekiyor.

Beep sesi yerine bir ses karti uzerinden MIDI komutlari gonderebilirsin. Eger Windows kullaniyorsan, C++ dan baska sansin yok gibi. Cunku cok hizli olmak zorunda. MIDI komutlari kullanarak, enstruman, kanal, nota, velocity (genlik ?) bilgileri gonderilebiliyor. Ben Bach-vari bir seyler yapmaya calismistim. Ayni rastgele programla uretilen farkli ama benzer dizileri farkli kanallardan birlikte calinca muzikten anlamayan birini kandirabilecek duzeyde birseyler cikarabilmistim.

Link to post
Sitelerde Paylaş

Redfinity nota konusunu söylemiş. Rastgele beeplerle uğraşmak yerine daha discreet bişeyle uğraşmak daha verimli olur. MIDI kullanabilirsin, yada kendi bir frekans ve süre tablosu yazabilirsin...

Aklıma gelen şeyleri yazayım... Hiçbirini denemedim... Tamamen teorik...

Üç yol geliyor aklıma...

1. Stokastik süreç analizi

2. Rastlantı elemeli yöntemler

3. Öntanımlamalı quasirandom yöntemler

1. Müzik için stokastik süreç analizi şöyle yapılır. Önce bir müzik parçasını alırsın. Notaların akışını incelersin... Hangi notadan sonra hangi nota geliyor şeklinde bir ağaç yapı çıkartırsın.

Burada olay müziğin yürüyüşlerini öğrenmektir...

Tek adım analizleri yapabilirsin. Örneğin; La notasından hangi notalara geçilmiş...

A > A %2

A > A# %0

A > B %12

A > C %14

A > C# %0

A > D %7

A > D# %0

A > E %12

A > F %8

...

...

...

Bu işlemi tüm notalar için teker teker yaparsın. Bu arada notaların sürelerini de hesaba katman gerek... Ama bunu yapmadanda aynı nota değerleriyle tek düze çalan ve kulağa hoş gelen şeyler yapabilirsin.

İncelediğin eser çok uzun ve çok çeşitle tonları ve hareketleri içeriyorsa bu analizin anlamı kalmaz. Aşırı uzun eserlerde dağılım çok homojenleşir.

Bu dağılım tablosunu 3 nota yani iki adım için de yapabilirsin

A > A > A

A > A > A#

A > A > B

...

...

B > D > F#

...

D > A > B

gibi...

Bu analiz daha zordur. Hatta 4 nota yani 3 adım analizi de yapılabilir. Analizdeki adım sayısı arttıkça analiz ettiğin eserin melodic development'i daha net çıkar. Seyir bilgisi yani...

Tabi senin sentezleyeceğin müzik de o eserden daha fazla iz taşır. Adım sayısı fazla ise analiz edilen eserin uzun olması ve çeşitli seyirler izlemesi iyidir.

Şu ana kadar yaptığımız analizler yatay harmoninin analizleriydi. Dikey harmoni de benzer şekilde analiz edilebilir. Ve ikisi kombine edilebilir ama nasıl yapılır şu an bilemiyorum.

Tablomuza dönelim...

A > A %2

A > A# %0

A > B %12

A > C %14

A > C# %0

A > D %7

A > D# %0

A > E %12

A > F %8

Bunun gibi her nota için var... A# için, B için C için...

Bu tabloları incelediğinde eserin tonunuda bulursun zaten...

Şimdi örnek müzik yapalım... İlk nota için A verdim. Program A için dağılım tablosuna bakarak bir seçim yapıyor... Bu seçim % değerlerine göre oluyor... Örneğin %8 olasılıkla A'dan sonra F gelecek...

Diyelim F geldi, program F'nin tablosuna bakacak ve yüzdelere göre birini rastlantısal olarak seçecek... Bu böyle sürüp gidecek...

Burada rastlantıyı koşullandırmış oluyoruz... Bunun içinde stokastik süreç analizini kullanıyoruz.

Aynı yöntemle anlamsız romanlar da yazabiliriz.

2. Rastlantı elemeli yöntemler: Bu yöntem daha basit ama çok fazla insan müdahalesi gerektiriyor

İlk adımda bilgisayar bir nota çalar... insan operatör bu notayı onaylar ya da reddeder. Eğer onayladıysa ikinci adıma geçilir.

İkinci adımda ilk notaya ilave bir nota daha çalınır. Yine onay/red...

Eğer reddedildiyse ilk notayı tutar, ikinci notayı değiştirir ve yeniden çalar... Yine onay/red... Operatör beğeninceye kadar....

Sonra bir nota daha... sonra bir daha... melodi uzar gider... Burada da operatörün beğenisi zaman içinde analiz edilebilir. C'den sonra A# sormamaya başlar mesela...

Bu arada birden fazla operatörle yapılarak ağ yapısı oluşturulabilir... Yani senin beğendiğin ve benim beğenmediğim noktada birbirimizden ayrı dallarda ilerleyebiliriz...

3. Öntanımlamalı quasirandom yöntemler; Örneğin A minor harmonic dizisini tanımlarsın... Program sadece o notalardan seçer.

Bu arada bunların tümü kombine edilebilir... Yani üç yöntem kombine çalışabilir.

Bu arada redfinity, velocity genlik değil... Attack Decay Sustain Release sürelerini değiştirmek aslında..

Yani ADSR eğrinde, attack çabuk gelişiyorsa nota hızlı vuruyormuş gibi gelir. Attack yavaş, sustain uzunsa kilise orgu gibi olur... Piyanonun tuşuna çok hızlı vurusan attack çok hızlıdır... Tabi her enstrüman için makul velocity aralıkları var... Piyano sesinin attack değeri çok düşük olamaz.

Link to post
Sitelerde Paylaş
Bu arada redfinity, velocity genlik değil... Attack Decay Sustain Release sürelerini değiştirmek aslında..

Bilgehan, velocity'nin ne oldugunu biliyorum. Karsilik gelecek Turkce bir kelime bulamadim sadece.

Aslinda, velocity ADSR surelerini degitirmek degil. Sadece tusa ne kadar hizli vuruldugunu gosteren bir parametre.

Yani ADSR eğrinde, attack çabuk gelişiyorsa nota hızlı vuruyormuş gibi gelir.

Attack (ve diger ADSR parametreleri) enstrumanin bir karakteristigidir vurum hiziyla ilgisi yok. Attack, tusa basildiktan ne kadar zaman sonra sesin en yuksek duzeyine ulasacagini gosteren bir parametredir.

Farkli ADSR parametreleri farkli ses renkleri olusturur. Ornegin, bir piyano ile gitar sesi arasindaki farki ADSR'larin farki (ve bir suru sey daha - harmonikler gibi - tabii ki) belirler.

Attack yavaş, sustain uzunsa kilise orgu gibi olur...

Bu da dogru degil. Kilise orgu attack parametresi en hizli olan enstrumanlardan biridir.

Piyanonun tuşuna çok hızlı vurusan attack çok hızlıdır...

Yukarida belirttigim gibi, velocity ile attack parametrelerini karistirmamak lazim. Velocity, butun ADSR egrisinin buyuklugunu (bu yuzden genlik dedim) belirler. Ama enstrumanin attack karakteristigi tusa vurumdan bagimsiz olarak sabittir.

Tabi her enstrüman için makul velocity aralıkları var... Piyano sesinin attack değeri çok düşük olamaz.

Dogru. Makul degerlerin disina cikarsan, o artik piyano gibi degil baska bir enstuman gibi ses cikarmaya baslar.

Synthesizer'lar ADSR egrilerini velocity'ye bagli olarak belirlemezler (ya da benim bildigim Synthesizer'lar diyeyim). Ama dogal enstrumanlarin ADSR'lari cok az da olsa velocity'den etkilenir. Etkilenir derken, buyuklukten degil, sekilden (egimlerden) bahsediyorum. Insan kulagi bunu algilayabilir mi bilemiyorum.

Neyse, mechanic yavas yavas programi yazacak hale geliyor :)

Bilgehan, onerdigin birinci yontem benim kullandigim yontemdi. Tek farki, ben ayni bestecinin (ayni tonda ve benzer denilebilecek) bir kac parcasiyla hesaplamistim olasiliklari.

Ikinci yontem bana biraz "hilekar" geliyor. :) Isin icinde insan var ya... Yine de, kullanilirsa, sonucun daha iyi olacagi kesin.

Ucuncu yontem calisirmi bilmiyorum. A minor bir parcanin A major de bittigini cok gordum.

Link to post
Sitelerde Paylaş

Abi gözünü seveyim "gibi" diyorum... Ahanda böyle demiyorum... Padleri düşün.... Ne ile tarif edersin? İlk aklıma gelen o oldu benim... Pad demem gerekirdi aslında. Neyse... sonra gelelim oraya...

Velocity hız demek... çabukluk, sürat, ivedilik... demek.

Genlik ise amplitude demek... Genliği artırırsan sesin şiddeti artar... Volume artar... Loudness yani...

Aslında şöyle bir ortak noktaya getirebiliriz.

ADSR enveloping ses üzerinde temporal modulasyon yapmaktır. Yani sesin bazı özelliklerini zaman içinde değiştirmektir. Adı üzerinde envelope işte... Burada değiştirilen özellik -genellikle- sesin şiddetidir... Yani ADSR envelope, amplitute envelope şeklinde olabilir. Bu durumda zaman içinde değişen şey sesin yüksekliği olur. Yani senin genlik demen doğru eğer böyle derine inersek...

Yani; “An ADSR envelope is a component of many synthesizers, samplers, and other electronic musical instruments. Its function is to modulate some aspect of the instrument's sound — often its loudness — over time.” Wikipedia

Şimdi şunda hem fikir miyiz?

The most common type of envelope generator, producing a four-segment signal corresponding to four phases of a note’s dynamics (in the usual case where the signal is used to control a voltage controlled amplifier that determines the note’s volume).Each letter of the acronym stands for one of the four phases, in time order: attack, decay, sustain, and release. A typical ADSR allows the performer to set rise/fall rates for attack, decay, and release, and a level for the sustain phase.(Fancier envelope generators may have more settings or more operational phases.) Conventionally, an ADSR is triggered by the leading edge of a gate signal. The gate going high initiates the attack phase, in which the ADSR’s output rises from the zero level to a set maximum level at the chosen rate.This is immediately followed by the decay phase, in which the output falls from the maximum level to the sustain level. The output remains at the sustain level until the gate signal goes back low.At that point the release phase executes, and the ADSR output falls from the sustain level to its zero level at the chosen rate. Options often found on ADSRs are an input that allows all of the rates to be scaled (a function often tied to keyboard velocity, for acoustic instrument simulation), and a switch that allows making the rise/fall rates exponential with time instead of constant. (Such is often useful for percussion sounds.)

Şu kısma özellikle dikkat...

Options often found on ADSRs are an input that allows all of the rates to be scaled (a function often tied to keyboard velocity, for acoustic instrument simulation), and a switch that allows making the rise/fall rates exponential with time instead of constant. (Such is often useful for percussion sounds.)

Bir sesin velocity'si ne olabilir ki? Bir wave datasını hızlı çalarsan pitch'i yükselir... :)

Velocity sesin kurulum hızıdır... Yani attack'tan hold'a yada decay'e geçişi velocity'si olabilir. Velocity olayını her enstrüman için ayrı ayrı düşünmek her enstrüman için ADSR envelope

ayrı ayrı düzenlenmelidir. Davul'da, zilde, piyano'da, gitarda farklı bir velocity mapping vardır. Ama üflemeliler değişir.

Benim kilise orgu diye söylemeye çalıştığım şey pad aslında... Türkçesi ne bilmiyorum... Synth pad yada...

Neyse özette velocity ADSR envelople üzerinden ayarlanabilir. Bu durumda en başa dönecek olursak... Velocity sesin şiddetinin aniden yada yavaş yavaş artması demek olabilir.

Velocity envelope da bunun grafiğidir. Anlaşabildik mi? Umarım :) Eğer anlamadıysak; sen velocity için ne diyorsun? Sence nedir velocity?

Bu arada envelope yerine ne diyecez Türkçe'de? Zarf olmaz... Sevmedim onu... :)

Rastlantısal müzik olayına gelelim...

İlk yöntemle çok ilginç şeyler yapılabilir. Sen MIDI mi kullandın? Yani örnek eserleri nasıl analiz ettin? Kaçlı adım kullandın? Bir de hangi dilde yazdın?

İkinci yöntem bir nevi evrim aslında... Bilgisayar mutator, insan da selector... Doğal seçim :) O uyduyor, sen seçiyorsun... Başka biri başka başka biri seçebilir. Çok farklı şeyler çıkabilir.

Üçüncü yöntem tembel işi... En basiti o zaten... Ama kastırıp kadansları bile yazabilirsin. Tabi iyi kasmak gerek. Yani bu tondan şu tona geçerken söyle yap diye... Rastlantısallğı iyice azalır ama. Zaten pseudorandomdu, hepten beste olur. Anlamsız bişey olur... Biraz A min'de uydur sonra D min'e geç, ama geçerken şöyle geç...

Bilgehan

Link to post
Sitelerde Paylaş
Abi gözünü seveyim "gibi" diyorum... Ahanda böyle demiyorum... Padleri düşün.... Ne ile tarif edersin? İlk aklıma gelen o oldu benim... Pad demem gerekirdi aslında. Neyse... sonra gelelim oraya...

Benzetme yapacaksin; ..hava gibiii...... toprak gibiii.... :lol:

Sevgili Bilgehan, pad'lar dersen durum farkli olur tabii. Pad'lar de (genellikle) yavas attack kullanilir.

Velocity hız demek... çabukluk, sürat, ivedilik... demek.

MIDI konteksti icinde, velocity, sesin siddeti / genligi demektir. Hiz veya cabukluk degil. Talihsiz bir terim yani. :)

Genlik ise amplitude demek... Genliği artırırsan sesin şiddeti artar... Volume artar... Loudness yani...

Aslında şöyle bir ortak noktaya getirebiliriz.

ADSR enveloping ses üzerinde temporal modulasyon yapmaktır. Yani sesin bazı özelliklerini zaman içinde değiştirmektir. Adı üzerinde envelope işte... Burada değiştirilen özellik -genellikle- sesin şiddetidir... Yani ADSR envelope, amplitute envelope şeklinde olabilir. Bu durumda zaman içinde değişen şey sesin yüksekliği olur. Yani senin genlik demen doğru eğer böyle derine inersek...

Yani; “An ADSR envelope is a component of many synthesizers, samplers, and other electronic musical instruments. Its function is to modulate some aspect of the instrument's sound — often its loudness — over time.” Wikipedia

Şimdi şunda hem fikir miyiz?

Şu kısma özellikle dikkat...

Aynen oyle.

Bir sesin velocity'si ne olabilir ki? Bir wave datasını hızlı çalarsan pitch'i yükselir... :)

Wave ile MIDI, bitmap'le vektor grafik gibidir. Farkli seyler yani. Wave datasini hizli calmakla velocity'nin ne ilgisi var anlayamadim.

Velocity sesin kurulum hızıdır... Yani attack'tan hold'a yada decay'e geçişi velocity'si olabilir.

Hic ilgisi yok bilgehan. Velocity, sadece ADSR zarfinin goreceli buyuklugunu belirler. Bu zarf, bir tusa yavas vurdugunda daha kucuk olur, hizli vurdugunda daha buyuk. Yani sonucta sadece sesin genligini etkileyen bir parametredir velocity.

Velocity olayını her enstrüman için ayrı ayrı düşünmek her enstrüman için ADSR envelope

ayrı ayrı düzenlenmelidir.

Velocity enstrumandan cok nota bazinda dusunulur. ADSR zarfi ise her enstruman icin farklidir. Bir enstrumana ses ozelligini veren de bu zarfin egimleri, sureleridir zaten.

Davul'da, zilde, piyano'da, gitarda farklı bir velocity mapping vardır. Ama üflemeliler değişir.

MIDI dunyasinda "Velocity mapping" diye birsey yok. Bu sekilde ifade ettigin zaman, velocity estrumanlarin bir ozelligiymis gibi anlasiliyor.

Benim kilise orgu diye söylemeye çalıştığım şey pad aslında... Türkçesi ne bilmiyorum... Synth pad yada...

Synth pad ve kilise orgu ayri seyler tabi... Arada bir kac yuzyil var :)

Neyse özette velocity ADSR envelople üzerinden ayarlanabilir. Bu durumda en başa dönecek olursak... Velocity sesin şiddetinin aniden yada yavaş yavaş artması demek olabilir.

Velocity envelope da bunun grafiğidir. Anlaşabildik mi? Umarım :) Eğer anlamadıysak; sen velocity için ne diyorsun? Sence nedir velocity?

Malesef anlasamadik. Gel biz "evrim" konusuna donelim en iyisi. Orada anlasiyoruz... :lol:

Velocity sesin şiddetinin aniden yada yavaş yavaş artması demek degildir. Yukarida belirttigim gibi, ADSR egrisinin buyuklugunu belirleyen bir girdidir. Sesin siddetini (genligini) belirler. Yani, ADSR egimleri (bir enstruman icin) sabittir ama tepe degerleri degisir. Ornegin, attack parametresi (dB/sec diyelim basit olsun) sabittir. Diger parametereler de oyle.

Bu noktada bir parantez acip, meraklilar bir iki detay vermek istiyorum:

- Velocity'nin nasil kullanildigi (yorumlandigi) synth donanimina/yazilimina baglidir

- Eskiden bir cok synth, tuslari duyarli olmadigi icin, velocity=64 gibi bir sabit deger kullanirlardi. Bu yontemle bir piyano parcasi calmanin ne kadar zor oldugu ortada. Cunku, calarken sesin siddetini artirip azaltmak mumkun degil, ifade (expression) yok.

- Daha sonralari velocity'nin tuslarla denetlenebildigi synthler ortaya cikti. Bunlarla, belirli bir ADSR egrisinin buyuklugunu, yani notanin siddetini (yada genligini) ayarlamak mumkun olabildi. Yukarida anlattiklarim hep bununla ilgli. Velocity dendiginde temel olarak anlasilmasi gereken budur.

- Aslinda, ADSR'in velocity'ye de bagli olarak degismesi gerektigini de dusunuyorum. Sadece ADSR'in degil, harmoniklerin, formant'larin vs. de velocity'ye bagimli olmasi gerekir. Bu durumda bir synth'in, velocity'ye bagli olarak, farkli orneklerle (samples) calismasi dusunulebilir. Bir onceki iletimde belirttigim gibi, bunun henuz yapilip yapilmadigini bilmiyorum. Ama bu noktada, Wave Table Sythesis denilen teknolojiden bahsetmeye basliyoruz. Yani artik ses, bir LFO (dusuk frekans modulatoru) tarafindan module edilmiyor. Yani, suni bir ADSR sekillendirmesi soz konusu degil.

Bu arada envelope yerine ne diyecez Türkçe'de? Zarf olmaz... Sevmedim onu... :)

Bu en iyisi... :) "Default" 'u ne yapalim?

Rastlantısal müzik olayına gelelim...

İlk yöntemle çok ilginç şeyler yapılabilir. Sen MIDI mi kullandın? Yani örnek eserleri nasıl analiz ettin? Kaçlı adım kullandın? Bir de hangi dilde yazdın?

Ornek eserlerin notalarini dogrudan nota kitabindan girdim. MIDI dosyasini analiz edecek bir program yazmadim veya satin alip kullanmadim. Simdi yapacak olsam, bir suru MIDI dosyasini alir dogrudan okuturdum. Tek adim kullandim. Olasiliklara - kendi zevkime gore - ciddi miktarda hile karistirdim. O yuzden de sonuc baroktan cok yalelliye benzedi :lol: C++.

İkinci yöntem bir nevi evrim aslında... Bilgisayar mutator, insan da selector... Doğal seçim :) O uyduyor, sen seçiyorsun... Başka biri başka başka biri seçebilir. Çok farklı şeyler çıkabilir.

Dogru. Bunun en problemli yani parcanin baslari. Ortayi biraz gectikten sonra daha etkili bir yontem olur.

Üçüncü yöntem tembel işi... En basiti o zaten... Ama kastırıp kadansları bile yazabilirsin. Tabi iyi kasmak gerek. Yani bu tondan şu tona geçerken söyle yap diye... Rastlantısallğı iyice azalır ama. Zaten pseudorandomdu, hepten beste olur. Anlamsız bişey olur... Biraz A min'de uydur sonra D min'e geç, ama geçerken şöyle geç...

Evet. Dedigin gibi, ne kadar kasarsan sonuc o kadar iyi olur ama o kadar da amacindan uzaklasmis olursun. Aslinda benim ilgimi ceken rastgelelikten cok, Bach'in matematiksel / algoritmik olarak formulize edilip edilemeyecegi.

Link to post
Sitelerde Paylaş
- Aslinda, ADSR'in velocity'ye de bagli olarak degismesi gerektigini de dusunuyorum. Sadece ADSR'in degil, harmoniklerin, formant'larin vs. de velocity'ye bagimli olmasi gerekir. Bu durumda bir synth'in, velocity'ye bagli olarak, farkli orneklerle (samples) calismasi dusunulebilir. Bir onceki iletimde belirttigim gibi, bunun henuz yapilip yapilmadigini bilmiyorum. Ama bu noktada, Wave Table Sythesis denilen teknolojiden bahsetmeye basliyoruz. Yani artik ses, bir LFO (dusuk frekans modulatoru) tarafindan module edilmiyor. Yani, suni bir ADSR sekillendirmesi soz konusu degil.

Budur işte... Aynı şeyi söylüyoruz. Sen diğer örneklerinde şu ana kadar uygulanagelmiş velocity üzerinden düşünüyorsun. Sen MIDI mantığı ile düşünüyorsun galiba, ben MIDI dünyasında uzağım...

Accent, velocity gibi olayları teknolojimiz düşük olduğu için sadece volume ile veriyorduk... Ama bir düşün, bir tromboncu hızlı bir üfleme ile bir nota çalsın, bir de yavaş yavaş arttırsın... Ya da bir kemancı arşeyi hızlı çeksin, ya da yavaş çeksin... Nota aynı sürede olabilir... Yani aniden kurulur ve devam eder, yada yavaş kurulur ve çabuk kesilir.

Bunu magnitude/amplitude/loudness/volume ile yapamazsın... Şu ana kadar genelde yapılan bu...

Kısık sesle çal düşük velocity, yüksek sesle çal yüksek velocity... Yersen işte...

Aslında bunun biraz haklılık payı var... Tamam yanlış ama biraz benziyor gerçeğe... Kemanda düşük velocity ile çalınan bir nota volume olarak da düşüktür... Ani bir arşe hareketi daha genlikli ses çıkarır. Bu yüzden velocity=volume numarası kulaklarımızı biraz kandırır. Ama yine de yeterli değildir.

Ben velocity mappingden bahsederken MIDI sentez seslerinden bahsetmiyorum. Aslında ben ses sentezi dediğimde aklıma gelen son şey MIDI.

Ben söyle bişey demiştim...

Bir sesin velocity'si ne olabilir ki? Bir wave datasını hızlı çalarsan pitch'i yükselir... :)

Sen de söyle demişsin...

Wave ile MIDI, bitmap'le vektor grafik gibidir. Farkli seyler yani. Wave datasini hizli calmakla velocity'nin ne ilgisi var anlayamadim.

Ben velocity açıklamasına girmeden önce ne olmadığını söylemek için yazdım bu lafı... Sen velocity denildiği an MIDI'nin velocity'sini anlıyorsun ben gerçek enstrumandaki accentleri anlıyorum. Bu yüzden olaya iki aynı noktadan bakıyoruz.

Wave ile midinin, raster grafik ile vektorün farkını biliyorum. Vektör grafiklerin ekrana yansıtılabilmesi için raster grafiklere dönüştürülmesi gibi midi sesleri de wave formuna dönmek zorunda.... (Sakın yanlış anlamaya çalışma, vektörlerin bitmape çevrilip saklanmasından felan bahsetmiyorum, bilgisayarda display discreettir, yani rasterdir. Midi sesleri de wav dosyası demiyorum, ama wave formuna dönüştürülür diyorum)

Velocity olayına dönelim... Birgün adam akıllı synthler yapmaya başladığımızda, notanın hızı sadece volume olmayacak... A, D, S ve R bölgeleri ayrı ayrı hesaplacak ve velocity'e göre süreleri ve genlikleri değişecek... Zaten ayrı ayrı hesaplama biraz var. Her enstrüman için velocity farklı bir ADSR grafik değişimi demek olacak... Bu hız gerektiren bişey. Ama gerçekçi ses için şart.

Bu arada sampling dünyası da coşmuş durumda; hypersampling felan yapıyorlar, resimdeki HDRI kavramı sese de geliyor yavaş yavaş. HDRI, high definition değil aman yanlış anlama... Bir de oradan tartışmayalım...

Neyse, devam ederiz...

Bu arada; “toprak, dağ, delta, alüvyon, başak, buğday, ana, bacı, buram buram, Dadaloğlu”

Şimdi... bunu biraz geliştirip bir arraye atalım, müzik bitince şarkı sözlerini de random yazdıralım...

Link to post
Sitelerde Paylaş
mechanic,

Sen bir programlama dili biliyor musun?

Windows mu kullaniyorsun?

Delphi biliyorum.Midi için kod bulamadım.Component istiyor.

Yazılan kodların çoğuda Assembler dili ile yazılmış.

Delphinin eski sürümü pascalda beep komutunun frekans ayarı ve süresi belirlenebiliyor.

Yenisinde bu özellik yok.:)

Link to post
Sitelerde Paylaş
Delphi biliyorum.Midi için kod bulamadım.Component istiyor.

Yazılan kodların çoğuda Assembler dili ile yazılmış.

Delphinin eski sürümü pascalda beep komutunun frekans ayarı ve süresi belirlenebiliyor.

Yenisinde bu özellik yok.:)

Beep isini unut. :)

Delphi ile Windows'un API'na erismen gerekiyor.

Delphi yeteri kadar hizli olur mu bilemiyorum. Bana olur gibi geliyor.

winmm.dll,

MIDIOUTCAPS, midiOutGetDevCaps, midiOutLongMsg gibi bir suru fonksiyon icerir. Bunlari ogrenmek / anlamak lazim.

Bir program yazip, bu fonksiyonlari kullanarak PC'nin hoparlorunden bir nota cikarsan iyi bir baslangic olur.

Ya da, bunlari yapan (isini kolaylastiran) bir COM component'i arayabilirsin.

Link to post
Sitelerde Paylaş
  • 2 weeks later...
  • 8 years later...
On 10.02.2017 at 17:12, TENTEN yazdı:

rastlantısal muzik yapan var mı?

VArsa kodları atabilirler mi?:)

 

uses Crt;
var
frekans,t:longint;
i:byte;
begin;
repeat
i:=i+1;
Clrscr;
randomize;
frekans:=random(5000)+100;
sound(frekans);
randomize;
t:=random(1000)+100;
delay(t);
until i=100;
end.

 

Link to post
Sitelerde Paylaş
3 saat önce, TENTEN yazdı:

uses Crt;
var
frekans,t:longint;
i:byte;
begin;
repeat
i:=i+1;
Clrscr;
randomize;
frekans:=random(5000)+100;
sound(frekans);
randomize;
t:=random(1000)+100;
delay(t);
until i=100;
end.

 

TENTEN; program yazma beceriniz de kit galiba. BIr programi böyle yazarsaniz, ne Siz ne de bir baskasi anlayamaz. Blocklari (begin..end, repeat..until vs.) belirgin bir sekilde yazmalisiniz. En  basiti ve en yaygini blocklarin icindeki tüm talimatlar sag tarafa dogru biraz kaydirilir, ki blokun nerede basladigi ve nerede bittigi anlasilsin. Yoksa bilgisayar icin hava hos, o böyle görsel yapilandirmayi hic önemsemez, ama biz Tanrinin aciz kullari icin vazgecilmez bir yöntemdir.

Simdi müzige devam edebilirsiniz...

 

     

 

 

 

Link to post
Sitelerde Paylaş
  • Konuyu Görüntüleyenler   0 kullanıcı

    Sayfayı görüntüleyen kayıtlı kullanıcı bulunmuyor.

×
×
  • Yeni Oluştur...