# [Midi] Pas de sons

## Gaby

Bonsoir,

J'essai, depuis plusieurs jours déjà, de faire fonctionner le midi sur ma Gentoo mais pour le moment je n'ai rien de concluant. Mon objectif étant de jouer un peu avec la MAO.

J'ai 3 cartes sons dans le PC :

```
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)

   Subsystem: ASUSTeK Computer Inc. P5B

   Flags: bus master, fast devsel, latency 0, IRQ 22

   Memory at ffaf8000 (64-bit, non-prefetchable) [size=16K]

   Capabilities: [50] Power Management version 2

   Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Count=1/1 Enable-

   Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00

   Capabilities: [100] Virtual Channel <?>

   Capabilities: [130] Root Complex Link <?>

   Kernel driver in use: HDA Intel

   Kernel modules: snd-hda-intel

01:00.1 Audio device: ATI Technologies Inc Radeon HD 3870 Audio device

   Subsystem: PC Partner Limited Device aa18

   Flags: bus master, fast devsel, latency 0, IRQ 17

   Memory at ff6ec000 (64-bit, non-prefetchable) [size=16K]

   Capabilities: [50] Power Management version 3

   Capabilities: [58] Express Legacy Endpoint, MSI 00

   Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Count=1/1 Enable-

   Capabilities: [100] Vendor Specific Information <?>

   Kernel driver in use: HDA Intel

   Kernel modules: snd-hda-intel

05:02.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)

   Subsystem: Creative Labs CT4832 SBLive! Value

   Flags: bus master, medium devsel, latency 64, IRQ 23

   I/O ports at b880 [size=32]

   Capabilities: [dc] Power Management version 1

   Kernel driver in use: EMU10K1_Audigy

   Kernel modules: snd-emu10k1

```

Mon alsa.conf :

```
options snd cards_limit=3

options snd-emu10k1 index=1

options snd-hda-intel index=0,2

# Carte SB Live

alias snd-card-1 snd-emu10k1

alias sound-slot-1 snd-emu10k1

# Carte Intel integre

alias snd-card-0 snd-hda-intel

alias sound-slot-0 snd-hda-intel

# Carte graphique ATI

alias snd-card-3 snd-hda-intel

alias sound-slot-3 snd-hda-intel
```

Je me sers donc de ma carte integré en priorité, la carte graphique ne me sert pas et la carte SBLive est là principalement pour avoir du midi hardware.

Aucun problème de son avec une utilisation standard (MPD, Skype, etc) mais avec le midi rien. aplaymidi ne me sort absolument aucun son :

```
gaby@Shogun ~ $ aplaymidi -l

 Port    Client name                      Port name

 14:0    Midi Through                     Midi Through Port-0

 20:0    SB Live! Value [CT4832]          EMU10K1 MPU-401 (UART)

 21:0    Emu10k1 WaveTable                Emu10k1 Port 0

 21:1    Emu10k1 WaveTable                Emu10k1 Port 1

 21:2    Emu10k1 WaveTable                Emu10k1 Port 2

 21:3    Emu10k1 WaveTable                Emu10k1 Port 3

gaby@Shogun ~ $ aplaymidi -p 21:0 download/HelloGoodbye.midi
```

J'ai testé avec Qjackctl / Jack / Rosegarden en configurant bien les sorties sur la bonne carte sons mais pas mieux

Je ne sais plus quoi faire pour savoir d'où viens le problème, des idées ?

Gaby

----------

## Fenril

Bonsoir Gaby,

Il faut bien veiller à charger le module midi :

```
modprobe snd-seq-midi
```

Pour ne pas à refaire la manip à chaque démarrage, il faut le mettre à charger dans /etc/modules.autoload.d/kernel-2.6 (rajouter une ligne contenant snd-seq-midi).

Ensuite, dans le cas d'une SBLive, il n'y a pas à proprement parler de table d'onde hardware pour le midi, on charge une définition de sons appelée Soundfont. C'est là qu'on utilise un programme qui charge les soundfont pour la carte son :

```
asfxload nom_soundfont.sf2
```

Après, le midi doit fonctionner. Tu peux créer un script pour automatiser le chargement de soundfont au démarrage. N'oublie pas non plus de spécifier dans ton programme de lecteur audio quelle carte son utiliser pour jouer les sons midi.

Asfxload est un programme compris dans le package alsa-tools, mais celui-ci s'installe automatiquement si tu as spécifié "emu10k1" pour la variable ALSA_CARDS dans ton make.conf.

P.S. : tu trouveras sur le net beaucoup de Soundfont en cherchant un peu. Si tu veux avoir une panoplie complète d'instruments, cherche des soundfonts qui respectent la norme General MIDI, car il existe des soundfonts avec un échantillonnage d'un instrument unique (piano, guitare...) utilisé par certains pour la MAO. En gros, plus les soundfonts sont grands (certains dépassent 1 Go !), meilleur est la qualité d'échantillonnage des instruments. En contrepartie, cela demande un PC puissant avec beaucoup de mémoire vive. Il se peut aussi que asfxload n'arrive pas à en charger certains.Last edited by Fenril on Mon Nov 30, 2009 9:15 am; edited 1 time in total

----------

## xaviermiller

Salut,

Je ne mets rien dans le "autoload", udev et le service alsasound s'occupent de tout !

+1 pour les soundfonts  :Wink: 

Et si ça ne va pas, installe timidity.

----------

## Gaby

Salut,

Pour les SoundFonts, j'ai oublié de le préciser dans mon 1er post   :Embarassed:  mais je les utilise déjà. En fait j'ai bien suivi la doc ALSA Gentoo et d'autre tuto sur le web.

Donc je charge bien les SoundFonts avant de tester :

```
Shogun gaby # asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2 

Shogun gaby # cat /proc/asound/Live/wavetableD1 

Device: Emu10k1

Ports: 4

Addresses: 21:0 21:1 21:2 21:3

Use Counter: 0

Max Voices: 64

Allocated Voices: 0

Memory Size: 134217728

Memory Available: 126801544

Allocated Blocks: 527

SoundFonts: 1

Instruments: 1849

Samples: 526

Locked Instruments: 1849

Locked Samples: 526
```

Pour le chargement du module, il est bien chargé automatiquement :

```
Shogun gaby # lsmod

Module                  Size  Used by

snd_rtctimer            3040  0 

radeon                360032  1 

coretemp                6968  0 

hwmon_vid               2664  0 

hwmon                   3240  1 coretemp

snd_seq_midi            7184  0 

snd_emu10k1_synth       6408  0 

snd_emux_synth         29976  1 snd_emu10k1_synth

snd_seq_virmidi         6872  1 snd_emux_synth

snd_seq_midi_event      6888  2 snd_seq_midi,snd_seq_virmidi

snd_seq_midi_emul       5720  1 snd_emux_synth

snd_seq                50608  5 snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_event,snd_seq_midi_emul

snd_pcm_oss            37936  0 

snd_mixer_oss          16904  1 snd_pcm_oss

snd_hda_codec_atihdmi     3992  1 

snd_hda_codec_analog    73656  1 

snd_hda_intel          26968  0 

snd_emu10k1           138208  1 snd_emu10k1_synth

snd_hda_codec          56488  3 snd_hda_codec_atihdmi,snd_hda_codec_analog,snd_hda_intel

snd_rawmidi            21632  3 snd_seq_midi,snd_seq_virmidi,snd_emu10k1

snd_ac97_codec        111048  1 snd_emu10k1

ac97_bus                1848  1 snd_ac97_codec

snd_pcm                73040  5 snd_pcm_oss,snd_hda_intel,snd_emu10k1,snd_hda_codec,snd_ac97_codec

snd_seq_device          6972  5 snd_seq_midi,snd_emu10k1_synth,snd_seq,snd_emu10k1,snd_rawmidi

snd_timer              21072  4 snd_rtctimer,snd_seq,snd_emu10k1,snd_pcm

snd_util_mem            3992  2 snd_emux_synth,snd_emu10k1

snd_hwdep               8336  2 snd_emux_synth,snd_emu10k1

snd                    58888  15 snd_emux_synth,snd_seq_virmidi,snd_seq,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_analog,snd_hda_intel,snd_emu10k1,snd_hda_codec,snd_rawmidi,snd_ac97_codec,snd_pcm,snd_seq_device,snd_timer,snd_hwdep

i2c_i801                9396  0 

soundcore               7904  1 snd

snd_page_alloc          9080  3 snd_hda_intel,snd_emu10k1,snd_pcm
```

Je vais tester avec Timidity pour voir mais j'aimerais m'en passer.

Gaby

----------

## xaviermiller

Salut,

Vérifie les volumes avec alsamixer, et aussi 

```
aconnect -io
```

 qui doit t'afficher des périphériques MIDI associés à tes wavetables.

EDIT: et fais-tu bien 

```
aplaymidi -p 21:0 fichier_midi
```

 ?

----------

## Gaby

Ca progresse :

- le midi fonctionne avec Timidity et avec la carte son

- Rosegarden fonctionne également en utilisant les 2

Le problème du midi venait dans un 1er temps du fichier vu qu'il ne fonctionne toujours pas, j'en ai récupérer un autre en ligne et c'est ok. En plus de ça je ne branchais pas mon casque dans la bonne carte son et les niveau de la SBLive était réglé à fond donc je n'avais rien d'autre qu'un bruit genre larsen dans le casque.

Par contre maintenant je n'arrive pas à exploiter le synthé de la SBlive mais en utilisant la carte integré en périphérique de sortie. Jack est bien configuré sur la carte intégré et j'obtiens le fonctionnement attendu en utilisant Timidity en lieu et place de la SBlive.

D'après les tests que j'ai fait, ce que j'entend de Rosegarden n'est pas la sortie du soft mais du synthétiseur de la carte. Si j'essai d'enregistrer la sortie de Rosegarden, je n'ai qu'un blanc.

```
gaby@Shogun ~ $ aconnect -io

client 0: 'System' [type=kernel]

    0 'Timer           '

    1 'Announce        '

client 14: 'Midi Through' [type=kernel]

    0 'Midi Through Port-0'

client 20: 'SB Live! Value [CT4832]' [type=kernel]

    0 'EMU10K1 MPU-401 (UART)'

client 21: 'Emu10k1 WaveTable' [type=kernel]

    0 'Emu10k1 Port 0  '

    1 'Emu10k1 Port 1  '

    2 'Emu10k1 Port 2  '

    3 'Emu10k1 Port 3  '
```

----------

## Fenril

 *Gaby wrote:*   

> 
> 
> Je vais tester avec Timidity pour voir mais j'aimerais m'en passer.
> 
> Gaby

 

Je te comprend car sur une SB je trouve que c'est du gâchis. Par contre, je n'ai pas tout à fait compris ton problème, mais de ce que j'ai saisi, il ne s'agit probablement pas d'un problème hardware/driver mais plutôt de routage. Tu devrais demander sur le site de Linux MAO. J'ai moi aussi une SB (Audigy 2 zs), et je suis souvent perdu, que ça soit dans alsamixer (j'ai plus d'une vingtaine de potard au total) ou dans Jack. Je l'utilise uniquement en capture analogique. Sache que j'avais testé le midi avec zynaddsubfx (instrument virtuel) avec un soundfont chargé, avec succès. Essaye peut-être.

Sinon une piste ici peut-être : http://www.linuxmao.org/tikiwiki/tiki-index.php?page=a2jmidid

et ici aussi : http://www.linuxmao.org/tikiwiki/tiki-index.php?page=QJackCtl_exemple

----------

## xaviermiller

Si vous voulez des sons General MIDI potables, laissez tomber la mémoire rikiki de la SoundBlaster (une carte son et pas audio, beurk, mais bon) et prenez QSynth bourré de soundfonts potables  :Wink: 

----------

