����� Guido Socher (homepage)
�� ������:
Guido �������� Linux �� ������ �� �����������, ��������������� ����
�������� ��� �� ��������, �� � �� ���������� �����, ��������� ��� �������.
������� �� �������:
Kirill Pukhlyakov <kirill(at)linuxfocus.org>
����������:
|
���������� alsa ��� ������������ midi ������.
������:
Midi - ����������� ������ ������, �� ���������� ���������� ������, ��
����������� ������� ��������������� �����. ��� ����� �������� � ������
������, ��� ������ ���� �������� ������������� �������������� �����.
Midi - ����� ��������� �� �������, � ��������� �������� � wav - �������.
����� ������������� midi ���� � ���� ��������� midi ����������.
���������� ����� ���� ��� �� ������ ����������, ��� � �� ������ ����� -
�� ����� ���� ��� ����� ������ ������ - ���� ����������� (��������
�������) ��� ��������������� �������. ��� ������ ������ ����� ��������
��� "soundfont".
�������� ������� �� ������� ��� ������������ Alsa (advanced linux sound
architecture) � �������� midi �����������.
_________________ _________________ _________________
��� ������...
����� ��������� ��� ����� ����� �������� �������� ���
"Gravis UltraSound" ��� "SoundBlaster Gold" ����������� � �����
������������ ��������. � ���� ��������� ��� ���������� midi
����������. �� � ��������� � ��������� ����� ��� �������� ��� �� ������,
�� ���� ���� �� �� ��� - ������ ������� - ��� ���� �� �������� �
������ ������ ����������, ������ ��� ��� �� ������ ����� ISA ����,
� �� ����� ��� � ����������� ���������� PCI ��� ���� �������� ��� �����
���� �� ����� ����� ����������� �����. �� ���� �� ��� ���� ���������
midi ����������. ����������
�� ������ �������� ����, �������������� alsa. �� ����� ���� �������
������������ �������� �����, ����������� midi ����������, �������
����� ������ � ������������ �������� - ��� Soundblaster live.
���� � ��� ��� ����� ����� - ��� �������� ����������� � ������� �����, �
��� � ��� � ��������.
��� ��� ����
� ��������� ����� ������ Alsa ��������� � ���������� �����. ����������
������ - 0.5, � ����� 0.9 - � �������� ����������. ���� �� ������
������������ midi - ���������� � alsa - ��� ����� ������������ ������
0.5, ������ ��� ������ ��� �������� ��� ���������� ��� ������ 0.9 � � ����
�� ���������� ����� �������� 0.5 � 0.9 ������������ (�������� ��������:
������ � �������� ������ 0.9 � ���� � ���� ������ midi, �� wav - �����,
�� PCM ����� ������� �� �����).
��� ������ 0.5 ���������� ��������� ������ :
���������� � ��� ��� �������������� alsa �� ������� � alsa howto (��. ������).
� ����� ������ ��������� ��������� ��������� ������� :
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
��� �������� � "./configure;make;make install" ��� ����� ����������.
����� ����������� �� ������ ��������� ������ � ����. ���
soundblaster live (=emu10k1 chip) ��� ���� ������� ��� :
modprobe snd-card-emu10k1
modprobe snd-synth-emu10k1
modprobe snd-seq-midi
modprobe snd-pcm-oss
modprobe snd-mixer-oss
modprobe snd-seq-oss
��� ������ ���� ������ �������� ������ ��� ������ �������� ��� ����� �����
(�������� snd-card-via686a ��� ���������� ����� �� ���� �������
via 686). Mandrake � Suse ������������ alsa � �� ������ �����
���������� ���� ����� � ��������� �� ������������, ��������� � �����������
(harddrake � yast2). ���� �� �� ������ ������ ������ ����������
�� ������ ����������� ������� "lspci -v" (lspci ������ � ����� pciutils).
������ ����� ����� ��������� ��� �������� � ��� ����. ��������� ���������
alsamixer
� ������� "m" ��� ���������� master � pcm ������ ��������� � �����, ���������
������� �������� �������. ������� Esc ����� ��������� ������ alsamixer
����� ��� ���������.
����� ��������� ��������� � /etc/asound.conf ��������� �������
/usr/sbin/alsactl store
������ ���������
play flute.wav
� ������ ����. ���� ����� ��� - �������� �������� �� �����
/proc/asound/devices � /proc/asound/oss-devices. ��� ������
���� "mixer" � "digital audio" (��� �����).
��� ��� ���� ��� pcm oss �������� � �����. ������ � ������� ��� ��� ���
�������� � /etc/modules.conf ����� ��� ��� ����������� �������������,
�� ������ ��� ���� ��������� �������� midi.
midi
���� � ��� �������� ����� �� ���������� midi ������������ (��������
sound blaster live) - ��� ��� ��� ����� ��� ��������� "soundfont".
���� � ��� ��� ����� ����� - ��� ���������� ���������� timidity (�����
url ��� �������� � �������) � ������������ � �������� alsa midi �����������.
���������� ������������ alsa �� ������� ������� �������.
��������� soundfont
���������, ��� � ��� ����������� ���������� sfxload (/bin/sfxload).
���� ��� ��� � ����� ������� - ���������� ���, ��� ������ � �����
awesfx (������� ��� �� ����� CD � ������������� Linux ��� http://mitglied.lycos.de/iwai/awedrv.html).
������, ���������� ���� 8MBGMSFX.SF2 � CD �� Soundblaster Live
(/mnt/cdrom/AUDIO/Common/SFBANK/8MBGMSFX.SF2) �
/etc/midi/8MBGMSFX.SF2. ����� ��������� soundfont ��������� ������� :
/bin/sfxload /etc/midi/8MBGMSFX.SF2
������� ��������� ��� ������������ - 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 �����. Cool!
���������� TiMidity � �������� ��������� �����������
��������� ����� TiMidity++-2.11.3.tar.gz (��. ������),
���������� ��� (tar zxvf TiMidity++-2.11.3.tar.gz) � ��������������
���� common.makefile.in. ���������� ����������������� ������ CFLAGS
��� pentium gcc:
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,
������� ��� ���� ������������ ����������� ����������. �� ��������
�������������� timidity �� ������� ����, ��� �� ��� ��� � �� ��������
�� ������ ������������ Linux, � ������� ��������� alsaseq ��� ��
���������� �� ���������.
��� timidity ��� ���������� soundfonts. ������ �� ��� ��������
����������������� �������. ������� � �������� ������ ����� ����������������
������ ���������� �������� ������� ( �������� 10 �� ). ����� ����� �������� �� -
��������� timidity++ � ������ ��������������� CD � ����������� ������
��� ����� ( ��������
timidity++-2.11.3-1.i386.rpm download for redhat 7.3 ). �����
����������� ����� �� /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
������ �� ������ �������������� timidity root'��:
/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
� ����� pmidi -l:
Port Client name Port name
128:0 Client-128 TiMidity port 0
128:1 Client-128 TiMidity port 1
���, ������ � ��� 2 ����� � TiMidity ������������.
������
pmidi -p 128:0 test.mid
� ������� midi ����.
/etc/modules.conf
���� � ��� �������� ����� soundblaster live �� ������ �������� ���
������ � ���� /etc/modules.conf ��� �������������� ��������� � ��������
������� :
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
��� ������������ timidiy ��������� �������� ��������� ������
� ���� /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
�� ��� ����������� ����������� midi ����� ���������� pmidi. � ������
KDE ������ �������� ������ kmid ( �� ������� � kmidi ). �� ������
�������������� Kmid ��� � ���������� alsa, ��� � ��� ���. Redhat
���������� OSS, � Mandrake � Suse - Alsa. �� ������ ������������ �
Redhat ��������� Mandrake.
��� ������� ����� ������������� ��������� ����������� alsa, ��� �����
��� ������� ��� �������� ������ ��������, � ������� �� ���������
� ��������� ��������. �������� ������� ��� Jazz - mide sequencer �
�������� midi ������. � ����� ������� �� ������� ������ � ������
�����������.
���� ����� ���������� ��� timidiy ( timidity -ig ��������� gtk
��������� ) ��� kmidi ( �� ������� � kmid ), � ������� ������� ��������
����������. � ���� ������ ��� �� ����� midi ���������� �� �� ������
���������, �� �� ������ ����. �� ������-�� ���������������� �����
������ midi api, ��� ��������� � ������ ����������.
� ��������� ����� � Alsa ���������� ������� ���������. ��� ����
������� ����� - ������ 0.9 �� �������� �� ������� ������������,
�� ������ 0.5 ����� �� ������ �������. � ��������� �� ��������
�������� OSS sequencer(/dev/sequencer), ���������� ������ ��������
������ �� ������� ��������� ������� awe, ������� ������ ������ ����������
������. �������� ���-�� ���������� � ������� ������ 0.9. ��� �������
����� ��� ������� � ������� - ��� ������ 0.9, ���������� ����� ��������
�������� �� �������� ������� - ����� ���� ��� ���������� � �� �����
������ ��� � ������ 0.5. �� �������� ���� ����� �� ��.
������
�������� �������
� ������ ������� ���� �������� �������. �� ���� �������� �� ������ ��������
���� ����������� ��� ����������� ����������� ������ ��������� :
2002-09-05, generated by lfparser version 2.30