[LinuxFocus-icon]
�����  |  �����  |  ������  |  �����

������� | ������ | ������ | ��� LF
��� ������� �������� ��: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

[Photo of the Author]
����� Guido Socher (homepage)

�� ������:

Guido �������� Linux �� ������ �� �����������, ��������������� ���� �������� ��� �� ��������, �� � �� ���������� �����, ��������� ��� �������.



������� �� �������:
Kirill Pukhlyakov <kirill(at)linuxfocus.org>

����������:

 

���������� alsa ��� ������������ midi ������.

[Illustration]

������:

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 ����� ��� ���������.

[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

[kmid] �� ��� ����������� ����������� 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. �� �������� ���� ����� �� ��.  

������

 

�������� �������

� ������ ������� ���� �������� �������. �� ���� �������� �� ������ �������� ���� ����������� ��� ����������� ����������� ������ ��������� :
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Guido Socher, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en --> -- : Guido Socher (homepage)
en --> ru: Kirill Pukhlyakov <kirill(at)linuxfocus.org>

2002-09-05, generated by lfparser version 2.30