by Guido Socher (homepage)
��������:
Guido ϲ��Linux����������Ϊ�˽����ϵͳ��ι�����һ����Ȥ���£�
������Щ�ܽ�����������������е��ˡ�
Ŀ¼:
|
Midi with alsa
ժҪ:
Midi��һ�������ļ���ʽ�����������������������������������������������������Ϣ�����һ������˵���ı������ƣ�ÿһ��˵����ʾһ����������ˣ����������������ʽ���ļ������磺Wav��ʽ���ļ���midi�ļ����Ե�С�öࡣ
Ϊ�˽�Midi ת��Ϊʵ�ʵ�����������Ҫһ��Midi�ϳ�����Midi�ϳ�����һ��Ӳ������������������һ��������������٣������ֲ���Ƶ����������������Щ������������Ϊ"��������"��
��ƪ���½��������ʹ��ALSA��Advanced Linux Sound Architecture���Ľӿ���ʵ��һ��Midi�ϳ�����
����
����ǰ��������κμ�����̵����ҵ���"Gravis UltraSound"��"SoundBlaster Gold" ���������������������������������õ�Midi�ϳ��������ҵ��ǣ��������Ѿ������ˡ���ʹ���ܹ���Ҳ����װ�������ڵĻ����ˣ���Ϊ������ISA���ߡ�����ļ������������PCI���ߣ�ͨ�����������Ѿ���һ����������оƬ�ˡ�����ЩоƬ��������֧��Midi�ϳɡ� �������֪��Ӧ����ʲô��������������Բ鿴ALSA֧�ֵ������б� �������������������������ʵ�ϣ�����Ϊֹ��ֻ��һ������֧��Midi�ϳɣ������������ļ�����̵������Ǿ���:Soundblaster live��
��ʹ��û��Soundblaster live����������Ҳ����ͨ��������ģ��Midi�ĺϳɡ�����ƪ������ҽ��������������
������
Ŀǰ��ALSA ����һ�ַ�չ�Ρ��ȶ��İ汾��0.5, ��0.9 �����ڿ���״̬�������ȷʵ��Ҫ��ALSA������Midi��Ӧ�ó��������ʹ��0.5 �汾����Ϊ��0.9 �汾���㼸���Ҳ���Ӧ�ó�����0.5 �� 0.9 �������ݣ�ע�⣺pcm����������wav�ļ����Լ����ڲ���������Ӧ�ó�����0.9 �²�û�����⡣������ҽ�������Midi����
0.5 ������������£�
�������ALSA HOWTO �в鵽��α���ALSA�����μ��ο�վ�㣩������������Ҫ��dirverĿ¼��������������:
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
���������������"./configise;make;make install"��
�ڰ�װ�ú�����Ҫ��ģ��ӵ��ں��С�
��Soundblaster live (emu'look' оƬ)���������£�
modprobe snd-card-emu10k1
modprobe snd-synth-emu10k1
modprobe snd-seq-midi
modprobe snd-pcm-oss
modprobe snd-mixer-oss
modprobe snd-seq-oss
�����������͵�������ֻ�轫����������ǰ�����滻�����ɣ����磺����VIA686оƬ����������������snd-cond-via686aģ�顣Mandrake ��Suse��֧��ALSA����Ϊ��Ҳ����ʹ�ð�����Linux���а棨harddrake��yast2���е�Ӳ�����ߺ����ó����������������оƬ����һ����֪��������"lspci- v"�������鿴��lspci���������pciutus���У���
���ڣ�����Բ��������Ƿ��ܹ����������г���
alsamixer
���û�"M"������"Master"��"PCM"������Ȼ��ʹ�ü�ͷ�����ı������������úú���"ESC"�˳���
Ϊ�˽����ñ�����/etc/asound.conf�ļ��У����У�
/usr/sbin/alsactl store
���ˣ���������
play flute.wav
��Ӧ���ܹ�����һЩ�����ˡ����û������������/proc/asoundĿ¼�����/proc/asound/devices��/proc/asound/oss-devices��Ӧ�ô���"mixer"�� "digital audio" (���ҵļ����)��
�����������"PCM OSS"ģ��������ܹ��������Ժ��ҽ����������/etc/modules.conf.��ʹ��ģ���ܹ��Զ����� ������һ��ҪʹMidi��ʼ������
midi
�������һ������Midi�ϳ��������������磺Soundblaster live��,����뽫"��������"���������������뵽������оƬ�С������û�������������������װtimidity���������μ���¼�IJο�վ�㣩�������䵱��ALSA Midi�ϳ�����������ALSA֮�ϵ�Ӧ�ó����ֱܷ�����ߵIJ��졣
������������
������Ƿ��Ѱ�װ��sfxload ����/bin/sfxload��,���û���밲װ��������awesfx��������һ���֡�(����������Linux CD���ҵ���http://mitglied.lycos.de/iwai/awedrv.html).��һ������Soundblaster Live CD �е�8MBGMSFX.SF2(/mnt/cdrom/AUDIO/Common/SFBANK/8MBGMSFX.SF2)������/etc/midi/8MBGMSFX.SF2.����������������������壺
/bin/sfxload /etc/midi/8MBGMSFX.SF2
һ���ȽϺõIJ��Գ�����pmidi���μ���¼��������
pmidi -l
������������Ϣ��
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
��������
pmidi -p 65:0 test.mid
��Ӧ���ܹ�����Midi �������ˡ���ᣡ
����TiMidity��Ϊ�����ϳ���
����TiMidity++-2.11.3.tar.gz������(���ο�վ��)����ѹ(tar zxvf TiMidity++-2.11.3.tar.gz)���༭common.makefile.in�����й�pentium��CFLAGS�е�ע��ȥ����
CFLAGS = -O3 -mpentium -march=pentium
-fomit-frame-pointer \
-funroll-all-loops -malign-double -ffast-math
���������ʹ��timidityƯ����ͼ�����ý������������ˣ������Ǹ���Ȥ����"-enable-alsaseq"ѡ���ѡ�������һЩ��ͼ��������������صģ�
./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
����timidity��װ����/usr/local/timidity-2.11.3/bin Ŀ¼�£���������Linux���а汾���Ѱ�װ��timidity���ǵ����������°�װtimidity����Ϊ���κ�һ��������Linux���а汾��timidity��alsaseq��������Ч�ġ�
Ϊ��ʹ��timidity����Ҳ��Ҫ�������塣�������ڱ���Ϊ�����ļ���
һ���õġ������������ļ��Ƿdz���ģ���Լ10Mb����
���ķ����ǵ����ڴӷ��а�CD�а�װtimidity++ʱ��
˳�㽫��Щ�ļ��������������磬
����Redhat 7.3 �汾��timidity++-2.11.3-1.i386.rpm)��
����Щ�ļ���/usr/share/timidity/instrumentsĿ¼������
/usr/local/timidity-2.11.3/share/timidity/instruments Ŀ¼�£����У�
cd /usr
find share/timidity -print | cpio -dump
/usr/local/timidity-2.11.3
�������ǿ��Կ�ʼ�����ˣ���root�û�����timidity��
/usr/local/timidity-2.11.3/bin/timidity -iA
-B2,8 -Os -EFreverb=0
��ALSA������ģʽ����TiMidity
set SCHED_FIFO
�ϳ����˿ڣ�128:0 128:1
Ȼ������ pmidi -l:
Port Client name Port name
128:0 Client-128 TiMidity port 0
128:1 Client-128 TiMidity port 1
�ƣ�����������������TiMidity�ϳ����˿��ˡ�
��������
pmidi -p 128:0 test.mid
��Ӧ���ܹ���Midi�������ˡ�
/etc/modules.conf
Ϊ���Զ����úͼ���ģ�鵽�ں��У�����Ҫ��/etc/modules.conf���������¼��У�����������Ϊsoundblaster live��
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�ϳ������������������õ�via686��
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���ҽ�����/etc/init.d/alsasound����Щ�ű��ļ��ڰ�װ��������ʱ�Ѿ���װ����δ���������������chkconfig��������������¼��У�
echo "starting timidity"
timidiy=/usr/local/timidity-2.11.3/bin/timidity # do not forget
the "&" in the next line:
$timidity -iA -B2,8 -Os -EFreverb=0 > /dev/null &
ʹ��ALSA ��Midi
���Ѿ��ܹ�ʹ�����Ľ��ܵ�pmidiӦ�ó���������midi�ļ��ˡ�
��ʵ��KDE������һ���dz�Ư����Midi�������� kmid����Ҫ��kmidi��������
Kmid���Ա������֧�ֻ�֧��ALSA�� Redhat��������֧��OSS��
Mandrake��Suseʹ����Alsa���������Redhat��ֱ������Mandrake�Ķ������ļ���
����ƪ�����н�������ΰ�װALSA���������Ӧ��������˵�DZ���ģ���ЩӦ����������δ���ļ�ƪ��������ܡ��������ǽ�����һƪ�й�Jazz�����¡�Jazz��һ��Mide ����������Midi�ļ��༭��������ƪ���µ������Ҳ����������Ӧ�ó���IJο�վ�㡣
��Midi�ϳ����������У�Ҳ������timidity��timidity -ig���� gtk���棩��kmidi������kmid����Ӧ�ó�������������£���Ͳ�����Ҫ�ں�֧��Midi�ˣ������Ǵ�Ӳ���ϻ���ͨ��timidity������ģ�⡣һ����˵������ṩһ��ͨ�õ�MidiӦ�ó���ӿڣ�������ÿ��������������ʵ��midi �ϳ�����
ALSAĿǰ���ڽ��бȽϴ�ĸĶ�������ǰ����˵��0.9�治�����б��������۵Ļ���0.5�������Ӧ�ó������⣬OSS����ģ������/dev/sequencer��Ҳ���ܹ����������ܹ������ϵ�Soundblaster awe�������������Ѿ����ˣ�������ζ��ֻ�� ALSA֧�ֵ�MidiӦ�ó����ܹ���������0.9���н����ֺܶ���ϣ���ĸĽ�����ƪ������δ��Ҳ�����õģ���ʹ��0.9�����ṩ���˸���Ĺ��ܣ�Ҳ������һЩС�ĸĶ����������0.5��0.9��ģ������������ԭ������һ���ġ�
�ο�վ��
����ƪ���·�������
ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
2002-10-31, generated by lfparser version 2.25