电脑是如何播放midi文件的?

提问于
最后更新于
浏览 179次
登录并提问
0

通常的音频文件记录的是信号的时域信息,计算机只需按照每个采样点依次把电信号转换成声信号;

而midi文件记录的是“乐谱”信息,也就是什么时候应该播放什么频率的音;

如果是单音轨没有和弦的midi文件还是计算机还是好处理的,但是计算机是怎么处理和弦的呢?

是不是还要先对记录的特定频率的音进行叠加之后再进行播放呢?

求大佬解惑。

Happy_478643
XP 34
Happy_478643
提问于 Sep 25, 2023, 5:43:03 PM
1

我问了下chatgpt,它是这么回答的:

您的理解基本正确。MIDI文件中记录的都是事件信息,包括了播放什么音符,以及什么时间发生。计算机处理MIDI文件的基本流程是:

  • 解析MIDI文件,获取所有音符(Note On/Off事件)及控制信息。
  • 根据音符的音高,查找采样库中对应的音色样本。
  • 根据音符的时序信息,在特定时间触发样本的播放。

对于单音轨的MIDI,每个时刻只触发一个音符的样本播放。

但对于有和弦的多音轨MIDI:

  • 每个时间点会有多个音符同时发生。
  • 计算机需要同时调取多个音符对应的音色样本。
  • 对于同时发生的多个样本,计算机会实时进行混合叠加,生成最后的声音输出。

所以您的理解是正确的,计算机处理MIDI和弦也需要对不同音符的音色进行叠加混合。

关于处理和弦:

  • 处理和弦是音乐扒带和音乐生成中的一个复杂问题。和弦是同时播放多个音符的组合。MIDI文件中的和弦信息通常以多个音符的形式表示。
  • 计算机在处理和弦时,需要将多个音符的频率叠加起来以生成和弦的声音。这可以通过将每个音符的波形叠加在一起来实现。这种叠加通常称为“和声合成”。
  • 和声合成的方法可以是物理建模(模拟乐器的振动和声音产生过程)或基于采样的(使用预先录制的音符片段)。常见的和声合成技术包括物理建模、加法合成、FM合成、乐器采样等。

总结下来,MIDI文件将乐曲的逻辑信息记录下来,计算机需要根据时序TRIGGER不同的音色,并进行数字混音生成最终声音。这就是MIDI处理中最关键的音高-音色映射与音色混合渲染过程。

Happy_442901
XP 30
Happy_442901
回答于 9/26/23, 4:06 PM
1

计算机处理啥和弦哇,MIDI里有啥音符它就播放啥音符哇。

MIDI作者编曲的过程,就是把原曲或者自己写出的和声走向,按照曲式和配器法的要求,给各个轨道/通道上的乐器写旋律线。各个旋律线交织在一起就是音乐了。在横向(时间)上就是曲子动机的发展,进而形成各个段落;纵向上就是各个乐器之间的音符构成了和弦,也就是和声。有些音符还不是用来构成和弦的,比如所谓的过渡音或者和弦外音等,是用来平滑连接和声走向,或者实现一些特殊的紧张感(tension)等效果的。

计算机的DAW一般不具有分析和处理和弦信息的功能,或者是默认不打开,或者是以其他插件的形式。如果要专门处理和弦信息,那就是读取MIDI文件或MIDI系统中此刻都有哪些音,根据音之间的音程关系来推断和弦。如果不是MIDI系统,而是在一段wave音频里推断和弦的话,那就大概是通过识别音高,先推断出音符,再根据音符推断和弦。但计算机很难分辨哪些音符不参与构成和弦(有时候人都分不出来),所以计算机推断出的和弦只能作为参考,输出结果远不如一位经验丰富的音乐家或编曲师用耳朵和经验判断出来的结果。

华北kingsky
XP 1097
华北kingsky
回答于 9/26/23, 10:51 AM
0

可以尝试用模拟钢琴或者一些编曲软件如fl studio/cubase来播放midi文件

Happy_483812
XP 39
Happy_483812
回答于 9/26/23, 1:24 PM
0

这个问题你应该去问midi制作人...现实怎么做出和弦的midi就怎么做出来啊

fireball
XP 2067
fireball
回答于 9/25/23, 8:08 PM

您的回答

登录以回答

这儿是 MidiShow 问答区,欢迎您请教或帮大家解决关于音乐创作、MIDI 应用、MIDI 技术等音乐相关的问题。

问答区积分规则如下:


  1. 提问、回答或自问自答积分均不变
  2. 问题被赞成 : +10
  3. 问题被反对 : 提问者 -2,点击反对者不扣分
  4. 回答被赞成 : +10
  5. 回答被反对 : 回答者 -2,点击反对者 -1
  6. 提问者选出满意回答 :回答者 +15 ,提问者 +2

参与问答前请阅读:问答区玩法规则