开源MIDI项目

主页 | 新闻 | 论坛 | 文件 | 常见问题 | 链接 | 贡献者 | 作者

Japanese | English | Chinese


MIDI乐器定义文件库“MIDIInstrument库”(DLL)

MIDIInstrument库是自由且开源的MIDI乐器定义文件库。这个库有把Cakewalk仪器定义文件(*.ins)读取的功能,把音色名追加・变更・取得・删除的函数,把控制变更项名追加・变更・取得・删除的函数。

/* 使用示例:从乐器定义文件取得指定仪器的音色名一览表 */
#include <stdio.h>
#include <tchar.h>
#include <MIDIInstrument.h>
int _tmain () {
	MIDIInstrument* pMIDIInstrument = NULL;
	MIDIInstrumentDefinition* pMIDIInstrumentDef = NULL;
	MIDIPatchNameTable* pMIDIPatchNameTable = NULL;
	TCHAR szTitle[256];
	TCHAR szName[256];
	long j = 0;
	long ret = 0;
	/* 读取MIDI仪器定义文件(*.ins) */
	pMIDIInstrument = MIDIInstrument_Load (_T("SC-8850.ins"));
	if (pMIDIInstrument == NULL) {
		_tprintf (_T("MIDI仪器定义文件载入失败。\n"));
		return 0;
	}
	/* 为这个文件的每个MIDI仪器 */
	forEachInstrumentDefinition (pMIDIInstrument, pMIDIInstrumentDef) {
		/* 表示仪器定义名 */
		MIDIInstrumentDefinition_GetTitle (pMIDIInstrumentDef, szTitle, 255);
		_tprintf (_T("[%s]\n"), szTitle);
		/* 取得群号码0番(CC#0=0,CC#32=0)的群名表。 */
		pMIDIPatchNameTable = MIDIInstrumentDefinition_GetPatchNameTable 
			(pMIDIInstrumentDef, 0);
		if (pMIDIPatchNameTable) {
			/* 表示这个群名表的标题 */
			MIDIPatchNameTable_GetTitle (pMIDIPatchNameTable, szTitle, 255);
			_tprintf (_T("    PatchNameTable(0)=%s\n"), szTitle);
			/* 表示全音色名在这个群名表里(空号除外) */
			for (j = 0; j < 128; j++) {
				ret = MIDIPatchNameTable_GetName 
					(pMIDIPatchNameTable, j, szName, 255);
				if (ret > 0) {
					_tprintf (_T("        %d=%s\n"), j, szName);
				}
			}
		}
	}
	MIDIInstrument_Delete (pMIDIInstrument);
	pMIDIInstrument = NULL;
	return 1;
}
对应OS 文件名 发布日 容量
Windows 7 / 8.1 / 10 / 11 MIDIInstrumentLib8.0.zip 2024/01/21 1.47MB
Windows 7 / 8.1 / 10 / 11 MIDIInstrumentLib7.0.zip 2021/08/15 760KB
Windows XP / Vista / 7 / 8.1 MIDIInstrumentLib0.7.zip 2014/04/29 324KB
Windows 95 / 98 / ME / 2000 / XP / Vista / 7 MIDIInstrumentLib0.6.zip 2012/02/19 216KB
Windows 95 / 98 / ME / 2000 / XP / Vista / 7 MIDIInstrumentLib0.5.zip 2010/02/28 196KB
Windows 95 / 98 / ME / 2000 / XP / Vista / 7 MIDIInstrumentLib0.4.zip 2009/05/04 192KB
Windows 95 / 98 / ME / 2000 / XP / Vista / 7 MIDIInstrumentLib0.3.zip 2008/03/31 85KB


(C)2000-2024 kuzu All rights reserved.