Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trAmigaAmiga YazılımAmiga music tracker mantığı
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: Amiga music tracker mantığı  (Okunma Sayısı 3049 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
emarti
Uzman
*****
Mesaj Sayısı: 2.057


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« : Nisan 18, 2017, 10:55:26 ÖÖ »

Amigada music yapabilmek için tracker mantığı nasıl çalışıyor. Bilinen programlar ile bir nota basabilmek çok mu zor? YouTube da ilgili tutorialler olsada seyrederek anlamak güç. Uğraşan oldu mü?
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
Alpyre
Uzman
*****
Mesaj Sayısı: 2.219



Üyelik Bilgileri WWW
« Yanıtla #1 : Nisan 18, 2017, 12:05:16 ÖS »

Hızla özet geçiyorum...

Terimlerle başlayalım:
Channel: Paula çipinin desteklediği birbirinden bağımsız olarak ses çıkarabilen 4 ses kanalının herbiri.
Not: Bu kanalların ikisi sol, diğer ikisi sağ hoparlörden ses çıkarır.

Pattern: 0'dan 63'e 64 girdi içeren 4 diziden oluşan yapı. (Her bir dizi bir Channel için).

Song: İstenilen uzunlukta bir liste. Listenin her bir girdisi bir pattern'ı işaret ediyor. Örneğin:
POSPATTERN
01
11
20

Şunu ifade eder:
Song 3 Pattern uzunluğunda (0 ila 2).
İlk (0) konumda Pattern 1'i çal.
2nci(1) konumda yine Pattern 1'i çal.
3ncü(2) konumda Pattern 0'ı çal.
Song sonu.

Sample: Her bir girdi için çalınacak PCM ses örneklemesi. Maksimum 32 tane. (0 ila 1F)

Şimdi her bir pattern'nin her bir channel'indeki 64 girdinin biçemine bakalım.
(her bir girdi, zamanda bir anı temsil ediyor ve taşıdığı değer o anda ne yapılacağını tanımlıyor.

Boş bir girdi Protracker ekranında şöyle görünür
Kod:
---00000

Şimdi örnek bir dolu girdiye bakalım:
Kod:
F#201000
İlk iki karakter F# bu anda Fa diyez notası çalınacağını tanımlıyor.
Üçüncü karakter 2 bu Fa diyezin, 2nci oktavdan çalınacağını tanımlıyor.
Takip eden 01, bu notanın 1 nolu sample ile çalınacağını belirtiyor.
Geriye kalan 3 karakter is o anda uygulanacak efekt ve komutları tanımlar. Bu efekt mod formatına göre değişir. İlgili mod playerin dökümanlarından bakılmalıdır.
Protracker efektleri için: Protracker Command Reference
« Son Düzenleme: Nisan 18, 2017, 12:27:16 ÖS Gönderen: Alpyre » Logged

Alper
MeG
Deneyimli
*****
Mesaj Sayısı: 593


Super Kahraman


Üyelik Bilgileri WWW
« Yanıtla #2 : Nisan 18, 2017, 15:33:55 ÖS »

@Alpyre

Yazdıklarının devamı gelir mi diye ağzımdan sular akmaya başlamıştı tam... Kahkaha

Teşekkürler
Logged
emarti
Uzman
*****
Mesaj Sayısı: 2.057


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #3 : Nisan 18, 2017, 16:22:50 ÖS »

@Alpyre abi özet sana yakışmıyor ama bu bilgiler bile çok değerli...
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
hakanzade
Ziyaretçi
« Yanıtla #4 : Nisan 18, 2017, 16:26:46 ÖS »

4 kanalın her birine bir enstruman konulur, kanaldaki her küçük zaman dilimi kareciğine notası ve ses şiddeti efekt vs. ayarlanır, playa basınca dikine çizgi önüne gelen notalara basa basa gider.
« Son Düzenleme: Nisan 18, 2017, 16:30:18 ÖS Gönderen: hakanats » Logged
Alpyre
Uzman
*****
Mesaj Sayısı: 2.219



Üyelik Bilgileri WWW
« Yanıtla #5 : Nisan 18, 2017, 21:34:44 ÖS »

Hmm. Madem bu kadar ilgi gördü. Biraz daha bilgi vereyim:

Şimdi standart (short-hand) müzik notasyonunda nota isimleri aşağıdaki harflerle ifade edilir:
DoReMiFaSolLaSi
CDEFGAB

Tracker'larda da bu notasyon kullanılır.

Şimdi çok basit, tek sesli bir melodiyi tracker biçeminde yazmaya çalışalım:

(okuyan herkesin profesyonel müzisyen olamayacağını düşünerek notaların altına adlarını yazıyorum, lisedeki müzik öğretmenlerimizin en çok kızdığı şeydi ya bu, neyse)

Herkesin aşina olacağı bir melodi seçtim. Evet bilenler tanıdı, "Twinkle Twinkle Little Star" (aka. "Daha dün annemizin") adlı parçanın ilk iki ölçüsü.

Şimdi ilk aşamada basit bir matematik hesabı yapmamız gerekiyor. O da şöyle.
Protracker'da her Pattern 64 girdiden oluşuyor. Bu girdi sayısını en optimize şekilde kullanmalıyız.

Şimdi bu eseri mırıldanırsanız bu ilk iki ölçünün aynen tekrar edildiğini fark edeceksiniz. Sonra melodi farklı bir temaya geçiyor. Sonra son olarak bu iki ölçü bir kez daha tekrar ediliyor ve bitiyor.

Eserin sözlerinden yararlanarak daha açık ifade etmeye çalışayım:
Daha dün annemizin kollarında yaşarken. (yukarıdaki melodi ile)
Çiçekli bahçemizin yollarında koşarken. (yukarıdaki melodi aynen bir kez daha)

Şimdi okullu olduk, sınıfları doldurduk. (burada iki ölçülük farklı bir melodi var)
Sevinçliyiz hepimiz, yaşasın okulumuz. (yukarıdaki melodi bir kez daha)

Öyleyse bu eser için en mantıklısı 1 Pattern'a iki ölçü sığdırarak yazmak.

Şimdi müzikteki vuruş kavramını hatırlayalım:


Eser 4/4'lük bir eser olduğu için her ölçüde 4 vuruş var.
Pattern'imiz iki ölçüyü kapsayacağına göre 2x4 = 8 vuruş olacak her Pattern'de demek bu.

Her pattern 64 girdiden oluştuğuna göre: 64 / 8 = 8 girdi bir vuruşa denk olacak (süre olarak).

Şimdi eser 8'lik (yarım vuruşluk) ve 4'lük (bir vuruşluk) notalardan oluşuyor.
Bu da 4'lük nota yazacaksak 8 girdilik yer kullanmalıyız demek.
Örneğin dörtlük bir Sol notası şöyle yazılacak:

Kod:
G-201000
---00000
---00000
---00000
---00000
---00000
---00000
---00000
Bir girdiye Sol (G-2) yazacağız ve ardından gelen 7 girdiyi boş bırakacağız.

Ölçünün ilk vuruşundaki iki sekizliği nasıl yazacağımızı da görelim:

Kod:
C-201000
---00000
---00000
---00000
C-201000
---00000
---00000
---00000
Bir girdiye Do (C-2) yazacağız ve ardından gelen 3 girdiyi boş bırakacağız.

Şimdi pattern'nin tamamını yazmaya çalışalım:
Kod:
00 C-201000
01 ---00000
02 ---00000
03 ---00000
04 C-201000
05 ---00000
06 ---00000
07 ---00000
08 G-201000
09 ---00000
10 ---00000
11 ---00000
12 G-201000
13 ---00000
14 ---00000
15 ---00000
16 A-201000
17 ---00000
18 ---00000
19 ---00000
20 A-201000
21 ---00000
22 ---00000
23 ---00000
24 G-201000
25 ---00000
26 ---00000
27 ---00000
28 ---00000
29 ---00000
30 ---00000
31 ---00000
32 F-201000
33 ---00000
34 ---00000
35 ---00000
36 F-201000
37 ---00000
38 ---00000
39 ---00000
40 E-201000
41 ---00000
42 ---00000
43 ---00000
44 E-201000
45 ---00000
46 ---00000
47 ---00000
48 D-201000
49 ---00000
50 ---00000
51 ---00000
52 D-201000
53 ---00000
54 ---00000
55 ---00000
56 C-201000
57 ---00000
58 ---00000
59 ---00000
60 ---00000
61 ---00000
62 ---00000
63 ---00000

Evet. Böylece eserin ilk pattern'i (0'ıncı) tamam. İkinci pattern'i de (1'inci) aynı mantık ile yazdıktan sonra, Song'u oluşturuyoruz.

POSPATTERN
00
10
21
30

Şimdi bu melodinin çalması için bir sample gerekiyor. 1 numaralı sample bank'ına bir 8bit PCM sample yüklersek, bu ezgiyi o sample ile çalacaktır.

Tabi şimdi bu eserin hangi tempo ile çalınacağına geldi sıra.
Bunu Tracker'ın tempo ayarından belirleyebiliriz (dilersek komut kullanarak da belirleyebiliriz, ya da eser içinde dilediğimiz yerde tempo değişikliği yapabiliriz, tabi bunlar daha ileri seviye konular olduğu için hiç girmiyorum bile).

İşte Amiga Tracker müziklerinin temel çalışma prensibi bu şekilde.
Logged

Alper
emarti
Uzman
*****
Mesaj Sayısı: 2.057


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #6 : Nisan 19, 2017, 00:55:20 ÖÖ »

@Alpyre abi teşekkürler

İlk çalışmamı bilgilerin ışığında yapmaya çalıştım. 23 Nisan denemesi (kısa) 2 kanal


* 23nisan_mod.zip (0.96 KB - Yükleme: 89 kez.)
« Son Düzenleme: Nisan 19, 2017, 01:21:11 ÖÖ Gönderen: emarti » Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
Alpyre
Uzman
*****
Mesaj Sayısı: 2.219



Üyelik Bilgileri WWW
« Yanıtla #7 : Nisan 19, 2017, 08:46:36 ÖÖ »

@emarti: Wouw wouw wouw... hemen o Amiga'yı yere bırak dostum... Kahkaha

Şaka bir yana, ilk deneme için hiç fena değil. Ancak iki esasi hatan var:

1) Bu parça da (aynı yukarıdaki "Twinkle" örneğindeki gibi) 2 ölçülük pattern'lerden oluşuyor. Yani nota değerleri için aynı ölçekleri kullanmalısın.
Dikkat edersen şarkıdaki kendini tekrar eden ezgiler hep iki ölçülük kalıplar. Öyleyse kesinlikle patternlerimiz 2 ölçülük olmalı. Böylece Song'u oluştururken daha rahat ederiz.

2) Bazı nota değerlerin doğru değil. Yine notalar üzerinden görerek gidelim.
Bu 23 Nisan şarkısının ilk ölçüsü şu şekilde:


Şimdi şarkının ilk vuruşu ve sözcüğü "Yirmi" noktalı 8'lik ve 16'lık notalardan oluşuyor. Müzik derslerinden hatırlarsınız nokta, "bir notanın zaman değerini, değerinin yarısı kadar arttırır." Yani:
İlk notamız sekizlik (yarım vuruşluk) olduğuna göre pattern'de 4 girdilik yer kullanacak. Noktası bulunduğuna göre bu 4 girdinin yarısı kadar daha yer kullanacak:
4 + (4/2) = 6 girdi.
Bu şu demek. İlk girdiye C-2 yazacağız ve 5 girdi boş bırakacağız.

Ardından gelen nota 16'lık bir Re notası.
16'lık nota demek çeyrek vuruşluk demek. Hesabımıza göre bir vuruş 8 girdi olduğuna göre, çeyrek vuruş:
8/4 = 2 girdi olur.
Bu da şu demek. Bir girdiye D-2 yazıyoruz ve 1 girdi boş bırakıyoruz.

Bu ilk vuruşun nasıl yazılacağını görelim:
Kod:
C-201000
---00000
---00000
---00000
---00000
---00000
D-201000
---00000

Şimdi ikinci ölçünün sonunda bir de içi boş nota var ("sun" hecesi). Bu nota değerini de konuşalım.
Bu 2'lik notadır (2 vuruşluk nota).
Yine matematik yapıyoruz. 1 vuruş 8 girdi ise, 2 vuruş:
8x2=16 girdi.
Yani bir C-2 yazıyoruz ve 15 girdi boş bırakıyoruz.

Evet bu şekilde yazar ve Song'u 0, 1, 0 pattern'leriyle oluşturursan parçanın ilk temasını halletmiş olursun.

Şarkının bunlardan başka iki pattern'i daha var. Dikkat et onlar da noktalı sekizliklerle başlıyor. Onları sana bırakıyorum. Haydi başarılar.
Logged

Alper
emarti
Uzman
*****
Mesaj Sayısı: 2.057


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #8 : Nisan 19, 2017, 09:33:28 ÖÖ »

Abi nota bilgim var lakin sample ayarları kafami bulandırdığı için hiç ölçü hesabı yapmadan rastgele notaları kodladim. 23 nisan da yaklaşıyor bunu düzgünce halletmek gerek.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
Agony
Uzman
*****
Mesaj Sayısı: 2.220


Amiga gibi yar, Commodore gibi de yadigar olmaz.


Üyelik Bilgileri
« Yanıtla #9 : Nisan 19, 2017, 10:10:45 ÖÖ »

@Alpyre, abi bu dökümanların olduğu hazırladığın bir kılavuz var mı? Yoksa bu başlığa özel mi yazdın bunları? Derleyip kılavuz yapmak lazım bunları.

Cidden harika.
Logged

ekalkici
Üye
***
Mesaj Sayısı: 205



Üyelik Bilgileri
« Yanıtla #10 : Nisan 19, 2017, 10:14:46 ÖÖ »

Konu çok güzel yerlere gelmiş gerçekten , kendi mod müziğini yapabilmek güzel. Alper abi seninle çalışalım vaktin oldukça  Kahkaha
Logged

Amiga 1200 Black / Rev 1D.4 / ACA 1221ec 16mb @42mhz / 4GB CF HDD / 3.9 Rom
Amiga 500 / Rev 6A / 1MB RAM + Clock / 1.3 Rom
Commodore 64C / 1530 C2N Datasette
Commodore 1084S
Alpyre
Uzman
*****
Mesaj Sayısı: 2.219



Üyelik Bilgileri WWW
« Yanıtla #11 : Nisan 19, 2017, 10:44:38 ÖÖ »

@Alpyre, abi bu dökümanların olduğu hazırladığın bir kılavuz var mı? Yoksa bu başlığa özel mi yazdın bunları? Derleyip kılavuz yapmak lazım bunları.
Başlığa özel hızlı hızlı yazdım. Hazır bir kılavuz yok. Ama dileyen kılavuz haline getirebilir tabi. Kahkaha

Konu çok güzel yerlere gelmiş gerçekten , kendi mod müziğini yapabilmek güzel. Alper abi seninle çalışalım vaktin oldukça  Kahkaha
Olur, neden olmasın? DefLeppard'ın orada buluşalım.
« Son Düzenleme: Nisan 19, 2017, 10:46:12 ÖÖ Gönderen: Alpyre » Logged

Alper
emarti
Uzman
*****
Mesaj Sayısı: 2.057


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #12 : Nisan 19, 2017, 11:25:00 ÖÖ »

Şu anda Samsun'da olmak vardı...........
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

My Retros
     Atari 600XL | 800XL | 1040STFM,
     C128, C64C, C64G, 1541, 1541-II, 1571,
     A500, A600x2 (Furia, Std), A1200x2 (Microbotic, Std)
     ZX Spectrum 48K
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: