流体合成  1.1.11
类型定义 | 枚举 | 职能
midi.h文件参考

MIDI事件,驱动程序和MIDI文件播放的功能。 更多...

类型定义

类型 def 整型 (*  处理 _midi_event_func_t)(无效* 数据 , fluid_midi_event_t *事件)
 MIDI事件的通用回调函数。 更多...
 

枚举

枚举  fluid_midi_router_rule_type {
  FLUID_MIDI_ROUTER_RULE_NOTE, FLUID_MIDI_ROUTER_RULE_CC, FLUID_MIDI_ROUTER_RULE_PROG_CHANGE, FLUID_MIDI_ROUTER_RULE_PITCH_BEND,
  FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE, FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE, FLUID_MIDI_ROUTER_RULE_COUNT
}
 MIDI路由器规则 类型。 更多...
 
枚举  fluid_player_status { FLUID_PLAYER_READY, FLUID_PLAYER_PLAYING, FLUID_PLAYER_DONE }
 MIDI播放器状态枚举。 更多...
 

职能

FLUIDSYNTH_API fluid_midi_event_tnew_fluid_midi_event (无效)
 创建一个MIDI事件结构。 更多...
 
FLUIDSYNTH_API 整型  delete_fluid_midi_event (fluid_midi_event_t *事件)
 删除MIDI事件结构。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_type (fluid_midi_event_t * evt ,int类型)
 设置MIDI事件结构的事件类型字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_type (fluid_midi_event_t * evt )
 获取MIDI事件结构的事件类型字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_channel (fluid_midi_event_t * evt ,int chan )
 设置MIDI事件结构的通道字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_channel (fluid_midi_event_t * evt )
 获取MIDI事件结构的通道字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_key (fluid_midi_event_t * evt )
 获取MIDI事件结构的键字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_key (fluid_midi_event_t * evt ,int键)
 设置MIDI事件结构的键字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_velocity (fluid_midi_event_t * evt )
 获取MIDI事件结构的力度场。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_velocity (fluid_midi_event_t * evt ,int vel)
 设置MIDI事件结构的力度场。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_control (fluid_midi_event_t * evt )
 获取MIDI事件结构的控制号。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_control (fluid_midi_event_t * evt ,int ctrl)
 设置MIDI事件结构的控制字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_value (fluid_midi_event_t * evt )
 从MIDI事件结构获取value字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_value (fluid_midi_event_t * evt ,int 值 )
 设置MIDI事件结构的值字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_program (fluid_midi_event_t * evt )
 获取MIDI事件结构的程序字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_program (fluid_midi_event_t * evt ,int 值 )
 设置MIDI事件结构的程序字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_get_pitch (fluid_midi_event_t * evt )
 获取MIDI事件结构的音高字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_pitch (fluid_midi_event_t * evt ,int 值 )
 设置MIDI事件结构的音高字段。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_event_set_sysex (fluid_midi_event_t * evt ,无效*数据,int大小,int动态)
 将sysex数据分配给MIDI事件结构。 更多...
 
FLUIDSYNTH_API fluid_midi_router_tnew_fluid_midi_router (fluid_settings_t *设置 处理 _midi_event_func_t 处理程序,无效* 事件 _handler_data)
 创建一个新的Midi路由器。 更多...
 
FLUIDSYNTH_API 整型  delete_fluid_midi_router (fluid_midi_router_t *处理人)
 删除MIDI路由器实例。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_router_set_default_rules (fluid_midi_router_t *路由器)
 将MIDI路由器设置为使用默认的“统一”规则。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_router_clear_rules (fluid_midi_router_t *路由器)
 清除MIDI路由器中的所有规则。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_router_add_rule (fluid_midi_router_t *路由器, fluid_midi_router_rule_t *规则,整数类型)
 将规则添加到MIDI路由器。 更多...
 
FLUIDSYNTH_API fluid_midi_router_rule_tnew_fluid_midi_router_rule (无效)
 创建一个新的MIDI路由器规则。 更多...
 
FLUIDSYNTH_API无效 delete_fluid_midi_router_rule (fluid_midi_router_rule_t *规则)
 释放MIDI路由器规则。 更多...
 
FLUIDSYNTH_API无效 fluid_midi_router_rule_set_chan (fluid_midi_router_rule_t *规则,整数最小值,整数最大值,浮点mul,整数添加)
 设置规则的通道部分。 更多...
 
FLUIDSYNTH_API无效 fluid_midi_router_rule_set_param1 (fluid_midi_router_rule_t *规则,整数最小值,整数最大值,浮点mul,整数添加)
 设置规则的第一个参数部分。 更多...
 
FLUIDSYNTH_API无效 fluid_midi_router_rule_set_param2 (fluid_midi_router_rule_t *规则,整数最小值,整数最大值,浮点mul,整数添加)
 设置规则的第二个参数部分。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_router_handle_midi_event (没有* 数据 , fluid_midi_event_t *事件)
 通过MIDI路由器实例处理MIDI事件。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_dump_prerouter (没有* 数据 , fluid_midi_event_t *事件)
 MIDI事件回调函数可将事件信息显示到stdout。 更多...
 
FLUIDSYNTH_API 整型  fluid_midi_dump_postrouter (没有* 数据 , fluid_midi_event_t *事件)
 MIDI事件回调函数可将事件信息显示到stdout。 更多...
 
FLUIDSYNTH_API fluid_midi_driver_tnew_fluid_midi_driver (fluid_settings_t *设置 处理 _midi_event_func_t 处理程序,无效* 事件 _handler_data)
 创建一个新的MIDI驱动程序实例。 更多...
 
FLUIDSYNTH_API无效 delete_fluid_midi_driver (fluid_midi_driver_t *司机)
 删除MIDI驱动程序实例。 更多...
 
FLUIDSYNTH_API fluid_player_tnew_fluid_player (fluid_synth_t *合成)
 创建一个新的MIDI播放器。 更多...
 
FLUIDSYNTH_API 整型  delete_fluid_player (fluid_player_t *玩家)
 删除MIDI播放器实例。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_add (fluid_player_t *玩家,const char * midifile )
 将MIDI文件添加到播放器队列。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_add_mem (fluid_player_t *玩家,常量无效*缓冲区,size_t 伦 )
 从内存中的缓冲区将MIDI文件添加到播放器队列。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_play (fluid_player_t *玩家)
 如果尚未播放MIDI播放器,则激活其播放模式。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_stop (fluid_player_t *玩家)
 停止MIDI播放器。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_join (fluid_player_t *玩家)
 等待MIDI播放器终止(完成播放后)。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_set_loop (fluid_player_t *播放器,int循环)
 启用MIDI播放器的循环。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_set_midi_tempo (fluid_player_t *玩家,国际节奏)
 设置MIDI播放器的速度。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_set_bpm (fluid_player_t *玩家,国际bpm)
 以每分钟节拍数设置MIDI播放器的速度。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_set_playback_callback (fluid_player_t *玩家 处理 _midi_event_func_t 处理程序,无效* 处理程序 _data)
 更改MIDI回调函数。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_get_status (fluid_player_t *玩家)
 获取MIDI播放器状态。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_get_current_tick (fluid_player_t *玩家)
 获取传递的节拍的数量。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_get_total_ticks (fluid_player_t *玩家)
 浏览所有可用的MIDI轨道,并获取最后播放的事件的绝对刻度。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_get_bpm (fluid_player_t *玩家)
 以每分钟节拍数的速度获取MIDI播放器的速度。 更多...
 
FLUIDSYNTH_API 整型  fluid_player_get_midi_tempo (fluid_player_t *玩家)
 获得MIDI播放器的速度。 更多...
 

详细说明

MIDI事件,驱动程序和MIDI文件播放的功能。

Typedef文档

◆  处理 _midi_event_func_t

类型 def 整型 (* 处理 _midi_event_func_t)(无效* 数据 , fluid_midi_event_t *事件)

MIDI事件的通用回调函数。

参量
数据 用户定义的数据指针
事件 MIDI事件
退货
应该回来 FLUID_OK 成功的话 FLUID_FAILED 除此以外

将在之间使用

  • MIDI驱动程序和MIDI路由器
  • MIDI路由器和合成器来传达事件。在不久的将来...

枚举类型文档

◆ fluid_midi_router_rule_type

MIDI路由器规则 类型。

以来
1.1.0
枚举器
FLUID_MIDI_ROUTER_RULE_NOTE 

MIDI音符规则。

FLUID_MIDI_ROUTER_RULE_CC 

MIDI控制器规则。

FLUID_MIDI_ROUTER_RULE_PROG_CHANGE 

MIDI程序更改规则。

FLUID_MIDI_ROUTER_RULE_PITCH_BEND 

MIDI弯音规则。

FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE 

MIDI通道压力规则。

FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE 

MIDI按键压力规则。

FLUID_MIDI_ROUTER_RULE_COUNT 

规则类型的总数。

◆ fluid_player_status

MIDI播放器状态枚举。

以来
1.1.0
枚举器
FLUID_PLAYER_READY 

播放器已准备就绪。

FLUID_PLAYER_PLAYING 

播放器当前正在播放。

FLUID_PLAYER_DONE 

播放器播放完毕。

功能文件

◆ new_fluid_midi_event()

FLUIDSYNTH_API fluid_midi_event_t* new_fluid_midi_event ( 虚空   )

创建一个MIDI事件结构。

退货
新的MIDI事件结构或内存不足时为NULL。

参考文献 FLUID_ERR.

◆ delete_fluid_midi_event()

FLUIDSYNTH_API 整型 delete_fluid_midi_event ( fluid_midi_event_t evt )

删除MIDI事件结构。

参量
evt MIDI事件结构
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

被引用 fluid_midi_event_set_sysex().

◆ fluid_midi_event_set_type()

FLUIDSYNTH_API 整型 fluid_midi_event_set_type ( fluid_midi_event_t evt ,
整型   类型  
)

设置MIDI事件结构的事件类型字段。

参量
evt MIDI事件结构
类型 事件类型字段(不带通道的MIDI状态字节)
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_event_get_type()

FLUIDSYNTH_API 整型 fluid_midi_event_get_type ( fluid_midi_event_t evt )

获取MIDI事件结构的事件类型字段。

参量
evt MIDI事件结构
退货
事件类型字段(不带通道的MIDI状态字节)

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_channel()

FLUIDSYNTH_API 整型 fluid_midi_event_set_channel ( fluid_midi_event_t evt ,
整型   chan  
)

设置MIDI事件结构的通道字段。

参量
evt MIDI事件结构
chan MIDI通道字段
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_event_get_channel()

FLUIDSYNTH_API 整型 fluid_midi_event_get_channel ( fluid_midi_event_t evt )

获取MIDI事件结构的通道字段。

参量
evt MIDI事件结构
退货
渠道领域

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_get_key()

FLUIDSYNTH_API 整型 fluid_midi_event_get_key ( fluid_midi_event_t evt )

获取MIDI事件结构的键字段。

参量
evt MIDI事件结构
退货
MIDI音符编号(0-127)

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_key()

FLUIDSYNTH_API 整型 fluid_midi_event_set_key ( fluid_midi_event_t evt ,
整型   v 
)

设置MIDI事件结构的键字段。

参量
evt MIDI事件结构
vMIDI音符编号(0-127)
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_get_velocity()

FLUIDSYNTH_API 整型 fluid_midi_event_get_velocity ( fluid_midi_event_t evt )

获取MIDI事件结构的力度场。

参量
evt MIDI事件结构
退货
MIDI速度编号(0-127)

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_velocity()

FLUIDSYNTH_API 整型 fluid_midi_event_set_velocity ( fluid_midi_event_t evt ,
整型   v 
)

设置MIDI事件结构的力度场。

参量
evt MIDI事件结构
vMIDI速度值
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_get_control()

FLUIDSYNTH_API 整型 fluid_midi_event_get_control ( fluid_midi_event_t evt )

获取MIDI事件结构的控制号。

参量
evt MIDI事件结构
退货
MIDI控制编号

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_control ()

FLUIDSYNTH_API 整型 fluid_midi_event_set_control ( fluid_midi_event_t evt ,
整型   v 
)

设置MIDI事件结构的控制字段。

参量
evt MIDI事件结构
vMIDI控制编号
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_get_value()

FLUIDSYNTH_API 整型 fluid_midi_event_get_value ( fluid_midi_event_t evt )

从MIDI事件结构获取value字段。

参量
evt MIDI事件结构
退货
值栏

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_value()

FLUIDSYNTH_API 整型 fluid_midi_event_set_value ( fluid_midi_event_t evt ,
整型   v 
)

设置MIDI事件结构的值字段。

参量
evt MIDI事件结构
v赋值
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_get_program()

FLUIDSYNTH_API 整型 fluid_midi_event_get_program ( fluid_midi_event_t evt )

获取MIDI事件结构的程序字段。

参量
evt MIDI事件结构
退货
MIDI程序编号(0-127)

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_program()

FLUIDSYNTH_API 整型 fluid_midi_event_set_program ( fluid_midi_event_t evt ,
整型    
)

设置MIDI事件结构的程序字段。

参量
evt MIDI事件结构
MIDI程序编号(0-127)
退货
总是返回 FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_get_pitch()

FLUIDSYNTH_API 整型 fluid_midi_event_get_pitch ( fluid_midi_event_t evt )

获取MIDI事件结构的音高字段。

参量
evt MIDI事件结构
退货
螺距值(14位值,0-16383,8192为中心)

被引用 fluid_sequencer_add_midi_event_to_buffer()fluid_synth_handle_midi_event().

◆ fluid_midi_event_set_pitch()

FLUIDSYNTH_API 整型 fluid_midi_event_set_pitch ( fluid_midi_event_t evt ,
整型    
)

设置MIDI事件结构的音高字段。

参量
evt MIDI事件结构
螺距值(14位值,0-16383,8192为中心)
退货
一律传回FLUID_OK

参考文献 FLUID_OK .

◆ fluid_midi_event_set_sysex()

FLUIDSYNTH_API 整型 fluid_midi_event_set_sysex ( fluid_midi_event_t evt ,
无效*   数据 ,
整型   尺寸 ,
整型   动态  
)

将sysex数据分配给MIDI事件结构。

参量
evt MIDI事件结构
数据 指向SYSEX数据的指针
尺寸 SYSEX数据的大小
动态 如果已动态分配SYSEX数据,并且在释放事件时应该释放SYSEX数据,则为TRUE(仅当事件被破坏为 delete_fluid_midi_event())
退货
总是返回 FLUID_OK
注意
与其他事件分配功能不同,此功能将evt->type.

参考文献 delete_fluid_midi_event(), FLUID_ERR, FLUID_FAILED, FLUID_OK fluid_player_set_midi_tempo().

被引用 fluid_player_get_midi_tempo().

◆ new_fluid_midi_router()

FLUIDSYNTH_API fluid_midi_router_t* new_fluid_midi_router ( fluid_settings_t 设定 ,
处理 _midi_event_func_t  处理程序 ,
无效*   事件 _handler_data 
)

创建一个新的Midi路由器。

默认规则将传递所有未修改的事件。

参量
设定 用于配置MIDI路由器的设置
处理程序 MIDI事件回调。
事件 _handler_data调用方定义的数据指针,该数据指针传递给“处理程序”
退货
新的MIDI路由器实例或错误时为NULL

MIDI处理程序回调应处理来自MIDI路由器的可能经过过滤/修改的MIDI事件,并将其转发到例如合成器。功能 fluid_synth_handle_midi_event() 可用于 处理 和一个 fluid_synth_t 通过作为 事件 _handler_data 为此目的的参数。

参考文献 delete_fluid_midi_router(), FLUID_ERR, FLUID_MIDI_ROUTER_RULE_COUNT, fluid_settings_getint()new_fluid_midi_router_rule().

◆ delete_fluid_midi_router()

FLUIDSYNTH_API 整型 delete_fluid_midi_router ( fluid_midi_router_t 路由器 )

删除MIDI路由器实例。

参量
路由器 MIDI路由器删除
退货
退货 FLUID_OK 成功的话 FLUID_FAILED (仅当为NULL时 路由器 真的通过了)

参考文献 FLUID_FAILED, FLUID_MIDI_ROUTER_RULE_COUNT FLUID_OK .

被引用 new_fluid_midi_router().

◆ fluid_midi_router_set_default_rules()

FLUIDSYNTH_API 整型 fluid_midi_router_set_default_rules ( fluid_midi_router_t 路由器 )

将MIDI路由器设置为使用默认的“统一”规则。

这样的路由器将传递所有未修改的事件。

参量
路由器 路由器设置为默认规则。
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外
以来
1.1.0

参考文献 delete_fluid_midi_router_rule(), FLUID_FAILED, FLUID_MIDI_ROUTER_RULE_COUNT, FLUID_OK new_fluid_midi_router_rule().

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_router_clear_rules()

FLUIDSYNTH_API 整型 fluid_midi_router_clear_rules ( fluid_midi_router_t 路由器 )

清除MIDI路由器中的所有规则。

这样的路由器将丢弃所有事件,直到添加规则。

参量
路由器 路由器清除所有规则
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外
以来
1.1.0

参考文献 FLUID_FAILED, FLUID_MIDI_ROUTER_RULE_COUNT FLUID_OK .

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_router_add_rule()

FLUIDSYNTH_API 整型 fluid_midi_router_add_rule ( fluid_midi_router_t 路由器 ,
fluid_midi_router_rule_t 规则 ,
整型   类型  
)

将规则添加到MIDI路由器。

参量
路由器 MIDI路由器
规则 要添加的规则(直接使用,成功调用此函数后不应再次访问)。
类型 要添加的规则类型(fluid_midi_router_rule_type)
退货
FLUID_OK 成功的话 FLUID_FAILED 否则(例如,无效规则)
以来
1.1.0

参考文献 FLUID_FAILED, FLUID_MIDI_ROUTER_RULE_COUNT FLUID_OK .

被引用 fluid_midi_router_handle_midi_event().

◆ new_fluid_midi_router_rule()

FLUIDSYNTH_API fluid_midi_router_rule_t* new_fluid_midi_router_rule ( 虚空   )

创建一个新的MIDI路由器规则。

退货
新分配的路由器规则;如果内存不足,则为NULL。
以来
1.1.0

新规则是一个“统一”规则,它将接受任何值并且不会修改它们。

参考文献 FLUID_ERR.

被引用 fluid_midi_router_handle_midi_event(), fluid_midi_router_set_default_rules()new_fluid_midi_router().

◆ delete_fluid_midi_router_rule()

FLUIDSYNTH_API无效delete_fluid_midi_router_rule ( fluid_midi_router_rule_t 规则 )

释放MIDI路由器规则。

参量
规则 路由器规则免费
以来
1.1.0

注意,已添加到路由器的规则由路由器管理,因此很少需要此功能。

被引用 fluid_midi_router_handle_midi_event()fluid_midi_router_set_default_rules().

◆ fluid_midi_router_rule_set_chan()

FLUIDSYNTH_API无效fluid_midi_router_rule_set_chan ( fluid_midi_router_rule_t 规则 ,
整型   ,
整型   最高 ,
浮动   ,
整型    
)

设置规则的通道部分。

参量
规则 MIDI路由器规则
规则匹配的最小值
最高 规则匹配的最大值
值乘以匹配事件的通道值(1.0表示不修改)
添加到匹配事件的通道值中的值(0表示不修改)
以来
1.1.0

最高 参数定义通道范围窗口以匹配传入事件。如果 小于或等于 最高 然后,如果事件的频道在定义的范围内(包括 最高 )。 如果 大于 最高 然后规则被反转并匹配除 之间 定义的范围(所以 最高 会匹配)。

如果规则匹配,则使用这些值在发送事件之前修改事件通道值。

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_router_rule_set_param1()

FLUIDSYNTH_API无效fluid_midi_router_rule_set_param1 ( fluid_midi_router_rule_t 规则 ,
整型   ,
整型   最高 ,
浮动   ,
整型    
)

设置规则的第一个参数部分。

参量
规则 MIDI路由器规则
规则匹配的最小值
最高 规则匹配的最大值
值与匹配事件的第一个参数值相乘(1.0表示不修改)
添加到匹配事件的第一个参数值的值(0表示不修改)
以来
1.1.0

事件的第一个参数取决于事件的类型。对于音符事件,其MIDI音符号;对于CC事件,其MIDI控件号;对于程序更改事件,其MIDI程序号;对于音高弯曲事件,其弯曲值;对于通道压力,其通道压力值;对于按键压力,其MIDI音符编号。

弯音值的最大值为16383(8192是弯音中心),所有其他事件的最大值为127。所有事件的最小值为0。

最高 参数定义一个参数范围窗口以匹配传入事件。如果 小于或等于 最高 然后,如果事件的第一个参数在定义的范围内(包括 最高 )。 如果 大于 最高 然后规则被反转并匹配除 之间 定义的范围(所以 最高 会匹配)。

如果规则匹配,则使用这些值在发送事件之前修改事件1st参数值。

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_router_rule_set_param2()

FLUIDSYNTH_API无效fluid_midi_router_rule_set_param2 ( fluid_midi_router_rule_t 规则 ,
整型   ,
整型   最高 ,
浮动   ,
整型    
)

设置规则的第二个参数部分。

参量
规则 MIDI路由器规则
规则匹配的最小值
最高 规则匹配的最大值
该值乘以匹配事件的第二个参数值(1.0表示不修改)
添加到匹配事件的第二个参数值中的值(0表示不修改)
以来
1.1.0

事件的第二个参数取决于事件的类型。对于音符事件,其为MIDI速度;对于CC事件,其为控制值;对于按键事件,其为关键压力值。所有其他类型都缺少第二个参数。

所有适用的第二个参数的范围是0-127。

最高 参数定义一个参数范围窗口以匹配传入事件。如果 小于或等于 最高 然后,如果事件的第二个参数在定义的范围内(包括 最高 )。 如果 大于 最高 然后规则被反转并匹配除 之间 定义的范围(所以 最高 会匹配)。

如果规则匹配,则使用这些值在发送事件之前修改事件2nd参数值。

被引用 fluid_midi_router_handle_midi_event().

◆ fluid_midi_router_handle_midi_event()

FLUIDSYNTH_API 整型 fluid_midi_router_handle_midi_event ( 无效*   数据 ,
fluid_midi_event_t 事件  
)

通过MIDI路由器实例处理MIDI事件。

参量
数据 MIDI路由器实例 fluid_midi_router_t,它是一个void *,因此该函数可以用作其他子系统的回调(new_fluid_midi_driver() 例如)。
事件 MIDI事件要处理
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外

目的:对于每个事件,都会通过“物理” MIDI输入接收到Midi路由器。每个事件可以触发任意数量的已生成事件(每个匹配的规则一个)。

在默认模式下,noteon事件仅转发到合成器的“ noteon”功能,“ CC”事件转发到合成器的“ CC”功能,依此类推。

该路由器可用于:

  • 过滤器消息(例如:仅将延音踏板CC传递到所选通道)
  • 分割键盘(noteon与notenr< x: to ch 1, >x to ch 2)
  • 层声音(对于在第1通道收到的每个音调,在ch1,ch2,ch3等上创建一个音调)
  • 速度缩放(对于每个Noteon事件,将速度缩放1.27,使DX7用户有机会)
  • 速度切换(“ v<= 100:天使合唱团; V> 100: Hell's Bells")
  • 摆脱触后
  • ...

参考文献 delete_fluid_midi_router_rule(), FLUID_FAILED, fluid_midi_event_set_channel(), fluid_midi_event_set_type(), fluid_midi_router_add_rule(), fluid_midi_router_clear_rules(), FLUID_MIDI_ROUTER_RULE_CC, FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE, FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE, FLUID_MIDI_ROUTER_RULE_NOTE, FLUID_MIDI_ROUTER_RULE_PITCH_BEND, FLUID_MIDI_ROUTER_RULE_PROG_CHANGE, fluid_midi_router_rule_set_chan(), fluid_midi_router_rule_set_param1(), fluid_midi_router_rule_set_param2(), fluid_midi_router_set_default_rules(), FLUID_OK new_fluid_midi_router_rule().

被引用 fluid_midi_dump_prerouter().

◆ fluid_midi_dump_prerouter()

FLUIDSYNTH_API 整型 fluid_midi_dump_prerouter ( 无效*   数据 ,
fluid_midi_event_t 事件  
)

MIDI事件回调函数可将事件信息显示到stdout。

参量
数据 MIDI路由器实例
事件 MIDI事件数据
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外

一个的实现 处理 _midi_event_func_t 功能类型,用于在MIDI驱动程序和路由器到stdout之间显示MIDI事件信息。对于添加到MIDI路由器链中以调试MIDI事件很有用。

参考文献 fluid_midi_router_handle_midi_event().

◆ fluid_midi_dump_postrouter()

FLUIDSYNTH_API 整型 fluid_midi_dump_postrouter ( 无效*   数据 ,
fluid_midi_event_t 事件  
)

MIDI事件回调函数可将事件信息显示到stdout。

参量
数据 MIDI路由器实例
事件 MIDI事件数据
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外

一个的实现 处理 _midi_event_func_t 功能类型,用于在MIDI驱动程序和路由器到stdout之间显示MIDI事件信息。对于添加到MIDI路由器链中以调试MIDI事件很有用。

参考文献 fluid_synth_handle_midi_event().

◆ new_fluid_midi_driver()

FLUIDSYNTH_API fluid_midi_driver_t* new_fluid_midi_driver ( fluid_settings_t 设定 ,
处理 _midi_event_func_t  处理程序 ,
无效*   事件 _handler_data 
)

创建一个新的MIDI驱动程序实例。

参量
设定 用于配置新的MIDI驱动程序的设置。
处理程序 MIDI处理程序回调(例如: fluid_midi_router_handle_midi_event() 用于MIDI路由器)
事件 _handler_data呼叫者定义的数据传递给“处理程序”
退货
新的MIDI驱动程序实例或错误时为NULL

参考文献 FLUID_DBG , FLUID_ERR, fluid_settings_option_concat()fluid_settings_str_equal().

◆ delete_fluid_midi_driver()

FLUIDSYNTH_API无效delete_fluid_midi_driver ( fluid_midi_driver_t 司机 )

删除MIDI驱动程序实例。

参量
司机 MIDI驱动程序删除

◆ new_fluid_player()

FLUIDSYNTH_API fluid_player_t* new_fluid_player ( fluid_synth_t 合成器 )

创建一个新的MIDI播放器。

参量
合成器 流体合成器实例以创建播放器
退货
新的MIDI播放器实例或错误(内存不足)为NULL

参考文献 FLUID_ERR, FLUID_PLAYER_READY, fluid_player_set_playback_callback(), fluid_settings_getint(), fluid_settings_str_equal()fluid_synth_handle_midi_event().

◆ delete_fluid_player()

FLUIDSYNTH_API 整型 delete_fluid_player ( fluid_player_t 播放器 )

删除MIDI播放器实例。

参量
播放器 MIDI播放器实例
退货
总是返回 FLUID_OK

参考文献 FLUID_FAILED, FLUID_HINT_TOGGLED, FLUID_OK fluid_player_stop().

◆ fluid_player_add()

FLUIDSYNTH_API 整型 fluid_player_add ( fluid_player_t 播放器 ,
const char *  midifile  
)

将MIDI文件添加到播放器队列。

参量
播放器 MIDI播放器实例
midifile 要添加的MIDI文件的文件名
退货
FLUID_OK 要么 FLUID_FAILED

参考文献 FLUID_FAILED, FLUID_OK FLUID_PANIC.

◆ fluid_player_add_mem()

FLUIDSYNTH_API 整型 fluid_player_add_mem ( fluid_player_t 播放器 ,
const 无效*   缓冲 ,
尺寸 _t    
)

从内存中的缓冲区将MIDI文件添加到播放器队列。

参量
播放器 MIDI播放器实例
缓冲 指向包含完整MIDI文件字节的内存的指针。数据已复制,因此调用方可以立即释放或修改它,而不会影响播放列表。
缓冲区的长度,以字节为单位。
退货
FLUID_OK 要么 FLUID_FAILED

参考文献 FLUID_DBG , FLUID_ERR, FLUID_FAILED, FLUID_OK , FLUID_PANIC, FLUID_PLAYER_DONE, FLUID_PLAYER_PLAYING, fluid_player_set_midi_tempo()fluid_synth_system_reset().

◆ fluid_player_play()

FLUIDSYNTH_API 整型 fluid_player_play ( fluid_player_t 播放器 )

如果尚未播放MIDI播放器,则激活其播放模式。

参量
播放器 MIDI播放器实例
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外

参考文献 FLUID_FAILED, FLUID_OK FLUID_PLAYER_PLAYING.

◆ fluid_player_stop()

FLUIDSYNTH_API 整型 fluid_player_stop ( fluid_player_t 播放器 )

停止MIDI播放器。

参量
播放器 MIDI播放器实例
退货
总是返回 FLUID_OK

参考文献 FLUID_OK FLUID_PLAYER_DONE.

被引用 delete_fluid_player().

◆ fluid_player_join()

FLUIDSYNTH_API 整型 fluid_player_join ( fluid_player_t 播放器 )

等待MIDI播放器终止(完成播放后)。

参量
播放器 MIDI播放器实例
退货
FLUID_OK 成功的话 FLUID_FAILED 除此以外

参考文献 FLUID_OK FLUID_PLAYER_DONE.

◆ fluid_player_set_loop()

FLUIDSYNTH_API 整型 fluid_player_set_loop ( fluid_player_t 播放器 ,
整型   循环  
)

启用MIDI播放器的循环。

参量
播放器 MIDI播放器实例
循环 循环播放列表的剩余时间。 -1表示无限循环。
退货
总是返回 FLUID_OK
以来
1.1.0

例如,如果您要循环播放列表两次,请将loop设置为2并在启动播放器之前调用此函数。

参考文献 FLUID_OK .

◆ fluid_player_set_midi_tempo()

FLUIDSYNTH_API 整型 fluid_player_set_midi_tempo ( fluid_player_t 播放器 ,
整型   速度  
)

设置MIDI播放器的速度。

参量
播放器 MIDI播放器实例
速度 将播放速度设置为的速度(按照MIDI文件规范,以每四分之一微秒为单位)
退货
总是返回 FLUID_OK

参考文献 FLUID_DBG FLUID_OK .

被引用 fluid_midi_event_set_sysex(), fluid_player_add_mem()fluid_player_set_bpm().

◆ fluid_player_set_bpm()

FLUIDSYNTH_API 整型 fluid_player_set_bpm ( fluid_player_t 播放器 ,
整型   bpm  
)

以每分钟节拍数设置MIDI播放器的速度。

参量
播放器 MIDI播放器实例
bpm 每分钟节拍数
退货
总是返回 FLUID_OK

参考文献 fluid_player_set_midi_tempo().

◆ fluid_player_set_playback_callback()

FLUIDSYNTH_API 整型 fluid_player_set_playback_callback ( fluid_player_t 播放器 ,
处理 _midi_event_func_t  处理程序 ,
无效*   处理程序 _data 
)

更改MIDI回调函数。

通常将其设置为fluid_synth_handle_midi_event,但可以选择将其更改为用户定义的函数,以拦截发送到合成器的所有MIDI消息。您还可以将Midi路由器用作回调函数,以在将MIDI消息发送到合成器之前对其进行修改。

参量
播放器 MIDI播放器实例
处理程序 指向回调函数的指针
处理程序 _data发送给回调函数的参数
退货
FLUID_OK
以来
1.1.4

参考文献 FLUID_OK .

被引用 new_fluid_player().

◆ fluid_player_get_status()

FLUIDSYNTH_API 整型 fluid_player_get_status ( fluid_player_t 播放器 )

获取MIDI播放器状态。

参量
播放器 MIDI播放器实例
退货
玩家状态(fluid_player_status)
以来
1.1.0

◆ fluid_player_get_current_tick()

FLUIDSYNTH_API 整型 fluid_player_get_current_tick ( fluid_player_t 播放器 )

获取传递的节拍的数量。

参量
播放器 MIDI播放器实例
退货
拍速拍子数
以来
1.1.7

◆ ()

FLUIDSYNTH_API 整型 fluid_player_get_total_ticks ( fluid_player_t 播放器 )

浏览所有可用的MIDI轨道,并获取最后播放的事件的绝对刻度。

参量
播放器 MIDI播放器实例
退货
序列的总滴答数
以来
1.1.7

◆ fluid_player_get_bpm()

FLUIDSYNTH_API 整型 fluid_player_get_bpm ( fluid_player_t 播放器 )

以每分钟节拍数的速度获取MIDI播放器的速度。

参量
播放器 MIDI播放器实例
退货
BPM中的MIDI播放器速度
以来
1.1.7

◆ fluid_player_get_midi_tempo()

FLUIDSYNTH_API 整型 fluid_player_get_midi_tempo ( fluid_player_t 播放器 )

获得MIDI播放器的速度。

参量
播放器 MIDI播放器实例
退货
MIDI播放器的速度(按MIDI文件规范,每四分音符以微秒为单位)
以来
1.1.7

参考文献 FLUID_ERR, fluid_midi_event_set_sysex() FLUID_OK .