воспроизведение миди-звуков через pygame на raspberrypi

Я пытаюсь воспроизвести миди-звуки с помощью pygame на своем raspberrypi (без внешних миди-устройств), однако у меня ничего не получается.

Я пробовал много примеров: следующее дает.

import pygame
import time
import pygame.midi

pygame.midi.init()
player= pygame.midi.Output(0)
player.set_instrument(48,1)

major=[0,4,7,12]

def go(note):
    player.note_on(note, 127,1)
    time.sleep(1)
    player.note_off(note,127,1)

def arp(base,ints):
    for n in ints:
        go(base+n)

def chord(base, ints):
    player.note_on(base,127,1)
    player.note_on(base+ints[1],127,1)
    player.note_on(base+ints[2],127,1)
    player.note_on(base+ints[3],127,1)
    time.sleep(1)
    player.note_off(base,127,1)
    player.note_off(base+ints[1],127,1)
    player.note_off(base+ints[2],127,1)
    player.note_off(base+ints[3],127,1)
def end():
       pygame.quit()

Выдает следующую ошибку

PortMidi call failed...
  PortMidi: 'Bad pointer'
type ENTER...

В следующем примере (как и в большинстве других) выдается «Недействительный идентификатор устройства, вне допустимого диапазона». ошибка:

import pygame
import pygame.midi
from time import sleep

instrument = 0
note = 74
volume = 127

pygame.init()
pygame.midi.init()

for id in range(pygame.midi.get_count()):
  print pygame.midi.get_device_info(id)

port = 2
midiOutput = pygame.midi.Output(port, 1)
midiOutput.set_instrument(instrument)
for note in range(0,127):
  midiOutput.note_on(note,volume)
  sleep(.25)
  midiOutput.note_off(note,volume)
del midiOutput
pygame.midi.quit()

Выдает эту ошибку

('ALSA', 'Midi Through Port-0', 0, 1, 0)
('ALSA', 'Midi Through Port-0', 1, 0, 0)
Traceback (most recent call last):
  File "midi-test2.py", line 16, in <module>
    midiOutput = pygame.midi.Output(port, 1)
  File "/usr/lib/python2.7/dist-packages/pygame/midi.py", line 414, in __init__
    raise MidiException("Device id invalid, out of range.")
pygame.midi.MidiException: 'Device id invalid, out of range.'

Я не нашел руководств по настройке RaspberryPi для воспроизведения миди-звуков, есть предложения?


person holmeswatson    schedule 01.10.2013    source источник
comment
Поскольку на самом деле это не ответ на ваш вопрос, а еще один способ сделать то, что вы хотите, проверьте эту ссылку: ссылка Это можно адаптировать...   -  person Dschoni    schedule 01.10.2013
comment
Какой программный синтезатор вы используете?   -  person CL.    schedule 01.10.2013


Ответы (1)


порт = 2 midiOutput = pygame.midi.Output (порт, 1)

Я не знаю "pygame.midi" Не знаю, можно ли это сделать, но изменив параметры, код запустился без ошибок.

midiOutput = pygame.midi.Выход (0, 0)

person user3033607    schedule 25.11.2013