taraf�ndan Guido Socher (homepage)
Yazar hakk�nda:
Guido linuxu sadece b�y�k imkanlar�n� ke�fetmesi e�lenceli
oldu�undan de�il tasar�m�nda yeralan insanlardan dolay� da
seviyor.
T�rk�e'ye �eviri:
�lyas Y�lmaz <//ilyasy(at)be.itu.edu.tr>
��erik:
|
Midi with alsa
�zet:
Midi, �rnek dijital sesler bulundurmayan ancak bunlar�n nas�l yap�laca�� hakk�nda tan�mlama i�eren bir dosya format�d�r. Bu durum �zerinde sesleri sembolik olarak temsil eden notalar� �zerinde bulunduran bir sayfa ile ayn� �eydir. Midi dosyalar� bu sebeple, di�er dosyalara oranla (�rn. wav gibi) �ok k���kt�rler.
Midi dosyalar�n� ger�ek bir sese d�n��t�rmek i�in bir midi synthesizer'a ihtiya� duyars�n�z. Bu bir yaz�l�m ya da bir donan�m par�as�d�r. Ses olu�turmak i�in bir enstrumandan al�nm�� �ok say�da ses �rnekleri kullan�r. Bunlar "ses fontlar�" olarak bilinir.
Bu makale Alsa(geli�mi� linux ses mimarisi)'n�n bir midi synthesizer aray�z� olarak nas�l kullan�laca��n� a��klayacakt�r.
_________________ _________________ _________________
Giri�
Hen�z birka� y�l �nce, "Gravis Ultrasound" ya da "SoundBlaster Gold" gibi �nl� ses kartlar�n� herhangi bir bilgisayar ma�azas�nda bulabilirdiniz. Her ikisi de dahili bir midi synthesizer'a sahipti. Ne yaz�kki art�k onlar� sat�n alamazs�n�z. E�er yapabilseydiniz bile, modern bilgisayarlar�n i�erisine uymazlard�. ��nk� onlar ISA veri yolu kullan�rlar. G�n�m�z bilgisayarlar� ise PCI veri yolu kullan�rlar ve �o�unlukla anakartlar �zerinde bir ses �ipine sahiptirler. Hemen hemen hi�bir �ipseti midi sentezini desteklemez. Alsa destekleyen ses kartlar�n�n bir listesine bakacak olursan�z, list of alsa
supported soundcards olas�l�kla hangisini sat�n alman�z�n iyi olaca��n� merak edeceksiniz. Se�im g�r�nd���nden daha basittir. Bug�nlerde bir bilgisayar ma�azas�ndan sat�n alabilece�iniz ve midi sentezini destekleyen yaln�zca bir tek ses kart� vard�r: Soundblaster live.
E�er kendinize ait bir Soundblaster live kart�n�z yoksa, yaz�l�mla bunun daha iyisini yapmaya �al��abilirsiniz ve ben bunun nas�l yap�ld���n� a��klayaca��m.
Neye gereksinimiz var?
Alsa hali haz�rda bir ge�i� s�recindedir. Kararl� s�r�m� olan 0.5 giderek ilerlemekte ve �u anda 0.9 geli�tirilmektedir. E�er ger�ekten midi uygulamalar�n� alsa ile birlikte kullanmak istiyorsan�z, 0.5 s�r�m�ne gereksinim duyars�n�z. ��nk� 0.9 i�in neredeyse hi�bir uygulama yoktur ve 0.5 ile 0.9 aras�ndaki aray�zler de uyumsuzdur (not: bu a��klamalar�n sadece midi format� i�in ge�erli oldu�unu hat�rlat�r�m).
0.5 i�in gerekli paketler �unlard�r:
Alsan�n nas�l derlenece�i hakk�nda bilgi alsa how to dan bulunabilir (bkz referanslar). S�r�c� i�in esas olarak �unlar�n �al��t�r�lmas�na gerek vard�r:
tar jxvf alsa-driver-0.5.12a.tar.bz2
cd alsa-driver-0.5.12a
./configure --with-sequencer=yes --with-oss=yes
--with-isapnp=no
make
make install
./snddevices
ve geri kalan k�sm� i�in de " ./configure;make;make install " .
Kurulumda sonra mod�lleri kendi �ekirde�inize y�kleyebilirsiniz. Soundblaster live (emu10k1 chip) i�in bu i�lem ��yledir:
modprobe snd-card-emu10k1
modprobe snd-synth-emu10k1
modprobe snd-seq-midi
modprobe snd-pcm-oss
modprobe snd-mixer-oss
modprobe snd-seq-oss
Di�er kartlar i�in ise, sadece ilk iki sat�r� kendi kart�n�z�n mod�l� ile yerde�i�tirin (�rne�in via �ipsetli bir dahili ses kart� i�in snd-card-via686a �eklinde). Mandrake ve Suse alsay� destekler ve donan�m saptama ve ayarlama programlar� ( harddrake ve yast2 ) bu ama�la kullan�labilir. Ne t�r bir �ipsetine sahip oldu�unuz hakk�nda kesinlikle hi�bir fikriniz yoksa, �u komutu �al��t�r�n" lspci -v "(bu komut "pciutils" paketine aittir).
Art�k sesin �al���p �al��mad���n� test etme zaman�.
alsamixer
program�n� �al��t�r�n ve master ve pcm seslerini a�mak i�in "m" tu�lay�n sonra sesi y�kseltip d���rmek i�in ok tu�lar�n� kullan�n. Alsamixerden ��kmak i�in Esc tu�una bas�n.
Ayarlar� /etc/asound.conf dosyas�na kaydetmek i�in �u komutu �al��t�r�n:
/usr/sbin/alsactl store
ve �imdi de �unu �al��t�r�n
play flute.wav
baz� sesler duyuyor olmal�s�n�z. Duymuyorsan�z ,/proc/asound'a gidin ve
/proc/asound/devices and /proc/asound/oss-devices'� kontrol edin."mixer" ve "digital audio" olmal�(benim dosyalar�m).
Bu pcm oss em�lasyonu ve ses i�in genel bir testti. �lerleyen b�l�mlerde , her�eyi otomatik yapmak i�in /etc/modules.conf dosyas�n�n i�ine ne ilave edilece�ini a��klayaca��m ama bir sonraki a�ama �al��mak i�in midi elde etmek.
midi
Dahili midi synthesizer� olan bir ses katr�n�z varsa (sb live), ses kart�n�n �ipine ses fontlar�n� (ses �rnekleri) y�klemelisiniz. Yoksa, "timidity"i kurabilir (referanslarda indirmek i�in adres yeralmaktad�r) ve onu alsa midi synthesizer� olarak alsa ile birlikte kullanabilirsiniz. Alsan�n �zerinde �al��an programlar fark� ay�rtetmeyeceklerdir.
Ses fontlar�n�n y�klenmesi
Sfxload (/bin/sfxload) program�n�n y�kl� olup olmad���n� kontrol edin, de�ilse kurun. Program, awesfx isimli paketin i�erisinde gelir(kendi linux da��t�m CDlerinde ya dahttp://mitglied.lycos.de/iwai/awedrv.html)adresinde bulunabilir).
Sonra, 8MBGMSFX.SF2 dosyas�n� kendi SB Live CD'dinizden (/mnt/cdrom/AUDIO/Common/SFBANK/8MBGMSFX.SF2) sisteminize
(/etc/midi/8MBGMSFX.SF2) kopyalay�n. ). Ses fontlar�n� y�klemek i�in �u komutu �al��t�r�n:
/bin/sfxload /etc/midi/8MBGMSFX.SF2
Pmidi iyi bir test program�d�r (bkz. ref.).
pmidi -l
ile �al��t�r�n
�u �ekilde bir ��kt� vermelidir:
Port Client name Port name
64:0 External MIDI 0 MIDI 0-0
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3
�imdi
pmidi -p 65:0 test.mid
ve midi sesini duymal�s�n. �ok iyi!
Bir yaz�l�m synthesizer olarak TiMidity'nin kullan�lmas�
TiMidity++-2.11.3.tar.gz'yi indirin (bkz. ref), a��n (tar zxvf TiMidity++-2.11.3.tar.gz) ve common.makefile.in dosyas�n� i�leyin. ��te pentium gcc i�in CFLAGS sat�r�:
CFLAGS = -O3 -mpentium -march=pentium
-fomit-frame-pointer \
-funroll-all-loops -malign-double -ffast-math
Art�k bir�ok g�zel grafik aray�ze sahip TiMidity'i ayarlayabilirsiniz. Fakat biz ilk olarak "-enable-alsaeq" se�ene�i ile ilgileniyoruz. Hala, baz� GUI �zelliklerine eri�mi engellemez:
./configure --enable-ncurses --enable-xaw
--enable-spectrogram --enable-xaw=dynamic
--enable-audio=oss,alsa --enable-alsaseq
--prefix=/usr/local/timidity-2.11.3
make
make install
B�ylece timidity hali haz�rda linux da��t�m�n�zda varolan timidity kurulumunun �zerine yaz�lmadan, /usr/local/timidity-2.11.3/bin'e kurulmu� olur.Timidity'i kurduk ��nk� alsaeq aray�z�n�n eri�ilebilir oldu�u tek bir linux da��t�m� g�rmedik
Timidity i�in ses fontlar�na da gereksinim vard�r. Bu sefer enstr�man dosyalar� olarak adland�r�l�rlar. �yi ve b�t�n bir set olduk�a b�y�kt�r (10 Mb civar�nda). Onlar� elde etmenin en h�zl� yolu, timidity++'y� kendi linux da��t�m�n�zdan kurmak (
timidity++-2.11.3-1.i386.rpm redhat 7.3 i�in ) ve dosyalar� buradan kopyalamakt�r.
Dosyalar� /usr/share/timidity/instruments'den /usr/local/timidity-2.11.3/share/timidity/instruments kopyalamak i�in �unlar� yap�n:
cd /usr
find share/timidity -print | cpio -dump
/usr/local/timidity-2.11.3
Art�k kurulumumuzu test etmek ve root olarak timidity'i ba�latmak i�in haz�r�z :
/usr/local/timidity-2.11.3/bin/timidity -iA
-B2,8 -Os -EFreverb=0
TiMidity starting in ALSA server mode
set SCHED_FIFO
Opening sequencer port: 128:0 128:1
sonra pmidi -l:
Port Client name Port name
128:0 Client-128 TiMidity port 0
128:1 Client-128 TiMidity port 1
��te timidity synthesizer'l� iki porta sahibiz ve �u komuttan sonra
midi sesini duymal�s�n�z.
pmidi -p 128:0 test.mid
/etc/modules.conf
E�er bir sb live kart�n�z varsa, otomatik konfig�rasyon ve modul y�kleme i�in /etc/modules.conf 'un i�erisine �unlar� eklemelisiniz:
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-card-emu10k1
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias midi snd-synth-emu10k1
below snd-seq-oss snd-synth-emu10k1
post-install snd-synth-emu10k1 /bin/sfxload
/etc/midi/8MBGMSFX.SF2 ; alsactl restore
# uncomment to save volume settings at shutdown:
#pre-remove snd-synth-emu10k1 alsactl store
Midi synthesizer'� olmayan ba�ka bir kart i�inse (via686 gibi):
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-card-via686a
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-12 snd-pcm-oss
# restore original mixer:
post-install snd-card-via686a alsactl restore
# uncomment to save volume settings at shutdown:
#pre-remove snd-synth-emu10k1 alsactl store
Timidity 'i a��l��ta otomatik olarak ba�latmak i�in benim �nerim, a�a��daki sat�r� /etc/init.d/alsasound'a eklemeniz (bu betik, s�r�c� ile birlikte kurulur ama aktif de�ildir, aktif hale getirmek i�in chkconfig komutunu kullan�n).
echo "starting timidity"
timidiy=/usr/local/timidity-2.11.3/bin/timidity # unutma"&" bir sonraki sat�rda:
$timidity -iA -B2,8 -Os -EFreverb=0 > /dev/null &
Midi ve alsay� kullanmak
Yukar�da, midi dosyalar�n� �almak i�in pmidi program�n� kulland�k. KDE, bunun i�in kmid olarak adland�r�lan olduk�a ho� bir �al�c� i�erir. Kmid alsa deste�i ile veya olmaks�z�n derlenebilir. Redhat OSS i�in derlenmi�ine sahiptir. Mandrake ve Suse alsa kullan�r. Mandrake binaryleri Redhat ile kullan�labilir.
Bu makale, ilerideki makalelerde ele al�nacak di�er programlar i�in gerekli olan alsa kurulumununun a��klamas� anlam�na da gelmektedir. Jazz bunlardan biridir. Jazz bir midi sequencer ve bir midi dosya edit�r�d�r. Bu makalenin sonunda di�er uygulamalar�n referanslar�n� da bulabilirsiniz.
Midi synthesizer yaz�l�m� i�eren timidity (timidity -ig komutu gtk GUI'yi ba�latacakt�r) ya da kmidi (kmid de�il) benzeri di�er programlar da vard�r. Bu durumlarda kernelin dahili midi yeteneklerinin, donan�m ya da timidity yaz�l�m� taraf�ndan desteklenip desteklenmemesi �nemli de�ildir. Genel olarak yine de, bilinen bir midi apiye sahip olmak her yaz�l�mda yeniden tamamlamaktan iyidir.
Alsa halen b�y�k de�i�iklikler ge�irmekteye devam etmektedir. Dedi�im gibi 0.9 versiyonu pek �ok uygulama birlikte �al��maz. Ancak 0.5 versiyonunun da ele ald���m�z gibi kendi problemleri vard�r. OSS sequencer emulation (/dev/sequencer) �al��maz (sadece art�k sat�n alamayaca��n�z eski soundblaster awe kartlarla �al���r). Bunun anlam� alsay� tan�yan midi programlar� �al���r. Bu durum umar�m 0.9 versiyounu ile de�i�ecektir. Bunun yan� s�ra bu makale, sadece mod�l isimleri gibi k���k �eylerin de�i�tirilmesiyle daha �ok deste�e sahip olacak olan 0.9 versiyounu i�in de kullan��l�d�r. Temel prensipler hala ayn� olacakt�r.
Referanslar
Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz
Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
2002-09-23, generated by lfparser version 2.31