找不到默认的midi输出设备

时间:2015-10-06 07:41:39

标签: python output midi

我一直在努力使用python创建音符。但是,在多个版本的代码中,我得到与缺少默认midi输出相关的错误。

示例1:

import pygame
import pygame.midi
from time import sleep

def midiExample():
 tries
    GRAND_PIANO = 0
    CHURCH_ORGAN = 19
    instrument = CHURCH_ORGAN
    #instrument = GRAND_PIANO

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

    port = pygame.midi.get_default_output_id()
    print ("using output_id :%s:" % port)
    midi_out = pygame.midi.Output(port, 0)
    try:
        midi_out.set_instrument(instrument)

        midi_out.note_on(72,127) # 74 is middle C, 127 is "how loud" - max is 127
        sleep(.5)
        midi_out.note_off(72,127)
        sleep(.5)

        midi_out.note_on(76,127) # E
        sleep(.5)
        midi_out.note_off(76,127)
        sleep(.5)

        midi_out.note_on(79,127) # G
        sleep(.5)
        midi_out.note_off(79,127)
        sleep(.5)

        midi_out.note_on(72,127)
        midi_out.note_on(76,127)
        midi_out.note_on(79,127)
        sleep(.5)
        midi_out.note_off(72,127)
        midi_out.note_off(76,127)
        midi_out.note_off(79,127)

    finally:
        del midi_out
        pygame.midi.quit()

midiExample()

但是,运行时,我收到错误:

File "midiExample.py", line 70, in <module>
    midiExample()
  File "midiExample.py", line 39, in midiExample
    midi_out = pygame.midi.Output(port, 0)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/midi.py", line 389, in __init__
    raise MidiException("Device id is -1, not a valid output id.  -1 usually means there were no default Output devices.")
pygame.midi.MidiException: 'Device id is -1, not a valid output id.  -1 usually means there were no default Output devices.'

它声明找不到默认输出设备。

示例2(使用不同的库):

import pyo
from pyo import *
s = Server().boot()
s.start()
wav = SquareTable()
env = CosTable([(0,0), (100,1), (500,.3), (8191,0)])
met = Metro(.125, 12).play()
amp = TrigEnv(met, table=env, mul=.1)
pit = TrigXnoiseMidi(met, dist='loopseg', x1=20, scale=1, mrange=(48,84))
out = Osc(table=wav, freq=pit, mul=amp).out()

会产生类似的错误:

pyo version 0.7.6 (uses single precision)
Portmidi warning: no midi device found!
Portmidi closed.
Segmentation fault: 11

有没有解决这个问题?我在OSX系统上,虽然我看了Audio Midi Setup,但似乎没什么可以帮助我的,所以非常感谢任何建议!

0 个答案:

没有答案