Geen audio-uitvoer met behulp van raspberry pi en pygame.midi

Ik heb een Raspberry Pi 2 en een set luidsprekers aangesloten op de 3,5 mm koptelefoonaansluiting. Ik heb de meeste audio uit mijn luidsprekers gehaald door te hardlopen amixer set name = 'PCM Playback Route' 1 . pygame.mixer werkt absoluut fantastisch zonder iets speciaals te doen. Wanneer ik echter mijn pygame.midi -code probeer uit te voeren, hoor ik niets.

Ik denk niet dat het persoonlijk een probleem is met mijn code. Als ik python -m pygame.examples.midi --output uitvoer, zie ik de grafische piano, er worden geen fouten gegenereerd, maar ik hoor geen audio uit.

I'm running Ubuntu Mate on my pi, but this thread makes it seem like that's not the issue.

0
Mijn code leest gewoon de invoer van mijn MIDI-toetsenbord en probeert de uitvoer af te spelen, ik zal het op github plaatsen als het nuttig is voor het oplossen van mijn probleem
toegevoegd de auteur Marcus, de bron

2 antwoord

Ik had een soortgelijk probleem met pygame . Ik merkte echter dat mijn probleem totaal geen verband hield. Dit kan ook het geval zijn voor jou.

Het probleem is waarschijnlijk geen product van een probleem met de pygame.midi , maar het komt erop neer dat uw framboos pi kan worden geconfigureerd om de audio-uitvoer door te sturen naar de HDMI-kabelverbinding.

Ik vond dat een oplossing kan worden geregeld met twee eenvoudige commando's:

Door de volgende opdrachten te typen, weten we wat onze audio-uitvoer is geconfigureerd om:

amixer cget name='PCM Playback Route'

Mijn uitvoer was deze: (je zou vergelijkbaar moeten zijn)

numid=3,iface=MIXER,name='PCM Playback Route'
  ; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0
  : values=0

Als de laatste regel (waarde) 0 is, wordt de audio-uitvoer geconfigureerd naar HDMI. Door deze waarde te veranderen in 1 kan de geluidsweergave eenvoudig door de 3,5 mm audio jack gaan!

Doe dit met deze opdracht:

amixer cget name='PCM Playback Route' 1

En dat is alles wat er zou moeten zijn!

1
toegevoegd
het moet 'cset' zijn in plaats van 'cget' in het laatste blok code :)
toegevoegd de auteur Sylvain, de bron

Ik heb het opgelost door sudo apt-get install timidity uit te voeren en mijn outport-poort van 0 naar 3 te veranderen.

0
toegevoegd