小编Lan*_*šič的帖子

从 GO 读取 MIDI 输入

我想使用我的 GO 程序收听传入的 MIDI 消息。但是,我无法让它发挥作用。

我尝试过使用 midi 库,例如https://github.com/gomidi/midi,但我无法让它工作。没有找到任何例子,文档对我来说也不清楚。

package main

import (
    "fmt"
    "io"

    "github.com/gomidi/midi"
    . "github.com/gomidi/midi/midimessage/channel" // (Channel Messages)
    "github.com/gomidi/midi/midimessage/realtime"
    "github.com/gomidi/midi/midireader"
)

func main() {
    var input io.Reader

    rthandler := func(m realtime.Message) {
        fmt.Printf("Realtime: %s\n", m)
    }

    rd := midireader.New(input, rthandler)

    var m midi.Message
    var err error

    for {
        m, err = rd.Read()

        // breaking at least with io.EOF
        if err != nil {
            break
        }

        // inspect
        fmt.Println(m)

        switch v := m.(type) {
        case NoteOn:
            fmt.Printf("NoteOn …
Run Code Online (Sandbox Code Playgroud)

midi go

5
推荐指数
1
解决办法
937
查看次数

标签 统计

go ×1

midi ×1