首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用midi键盘连接虚拟钢琴

用midi键盘连接虚拟钢琴
EN

Stack Overflow用户
提问于 2018-07-24 22:46:58
回答 1查看 170关注 0票数 0

需要将我的midi钢琴链接到虚拟钢琴...我不知道如何创建一个事件来做到这一点。我有web-midi和react-piano的连接,但我不知道如何将midi钢琴和虚拟钢琴联系起来。我得到了输入信息和键号,但当我点击钢琴midi时,我不知道如何演奏虚拟钢琴。

代码语言:javascript
复制
const noteRange = {
  first: MidiNumbers.fromNote('c1'),
  last: MidiNumbers.fromNote('f5'),
};

export default class ResponsivePiano extends React.Component {

  state={
    midiNote:'',
  }
  onNoteOnMidiKeyboard=(event) => {
    this.setState({
      midiNote: event.note
    });
  }

  componentDidMount(){

    WebMidi.enable((err) => {
      if (err) {
        console.log(' WebMidi n\'a pas pu être activé. ', err);
      } else {
        console.log(' WebMidi activé! ');
      }

      const input = WebMidi.inputs[0];
      input.addListener('noteon', 'all', this.onNoteOnMidiKeyboard.bind(this));

      console.log(WebMidi.inputs);
      console.log(WebMidi.outputs);

    });

  }


  render(){
    const { midiNote } = this.state;

    return (
      <div>
        <p>
        Midi number: {midiNote.number}


        </p>
        <DimensionsProvider>
          {({ containerWidth, containerHeight }) => (
            <SoundfontProvider
              instrumentName="acoustic_grand_piano"
              audioContext={audioContext}
              hostname={soundfontHostname}
              render={({ isLoading, playNote, stopNote }) => (
                <Piano
                  onChange={this.onCurrentNote}
                  noteRange={noteRange}
                  width={containerWidth}
                  onPlayNote={playNote}
                  onStopNote={stopNote}
                  disabled={isLoading}
                />
              )}
            />
          )}
        </DimensionsProvider>
        {}
      </div>
    );

  }


  }
EN

回答 1

Stack Overflow用户

发布于 2018-09-22 02:12:13

反应钢琴接受一个playbackNotes道具,这应该可以做到这一点。当您设置这些音符时,它们会被回放。

代码语言:javascript
复制
<Piano
  // ...other props
  playbackNotes={[this.state.midiNote.number]}
/>

如果你有任何关于react-钢琴的问题,请随时在react-piano github issues上交叉发帖!我更密切地关注着这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51501583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档