6 Star 8 Fork 5

Lugia工作室 / XMIDI 2.0

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

#XMIDI ###简介

XMIDI是一款IOS上的MIDI文件播放引擎。 	
2.0版本与之前1.0相比最大的变化在于播放模式的变更,由原来的OpenAL改为了AudioUnit。
2.0版本支持多种乐器,可以自己定义和添加乐器。
本引擎使用OC编写,项目示例为Swift语言。
使用上有问题可以联系我。
邮件:watarux@qq.com
QQ:56809958    
交流群:334533178

###更新履历 ####2015-07-09

1.更新2.1,增加播放控制方法。

    //Midi当前标准时间点(秒)(标准时间)
    @property (nonatomic) float timeStamp;
    //跳转到某个音符开始播放
    -(void)gotoNoteByTrackIndex:(int)trackIndex NodeIndex:(int)noteIndex;

####2015-05-22

1.初次版本发布。

###使用方法 ####1.初始化API

    //初始化。
    XMidiPlayer.xInit()

####2.资源释放API

    //资源释放。
    XMidiPlayer.xDispose()

####3.播放MIDI示例

    //读取文件
    var filePath = NSBundle.mainBundle().pathForResource("midiFileName", ofType: "mid")

    //根据URL播放MIDI
    var url = NSURL(fileURLWithPath: filePath!)
    var midiPlayer:XMidiPlayer = XMidiPlayer()
    midiPlayer.initMidi(url!)
    midiPlayer.play()

    //根据Data播放MIDI
    var data = NSFileManager.defaultManager().contentsAtPath(filePath!)
    var midiPlayer:XMidiPlayer = XMidiPlayer()
    midiPlayer.initMidiWithData(data)
    midiPlayer.play()

###4.XMidiPlayer播放控制API

    //Midi总播放时间(秒)(真实时间)
    @property (nonatomic,readonly) float totalTime;
    //Midi当前播放时间点(秒)(真实时间)
    @property (nonatomic) float time;
    //Midi当前标准时间点(秒)(标准时间)
    @property (nonatomic) float timeStamp;
    //当前播放进度 返回一个0~1的一个小数,代表进度百分比
    @property (nonatomic) float progress;

    //初始化MIDI URL
    -(void)initMidi:(NSURL*)midiUrl;
    //初始化MIDI Data
    -(void)initMidiWithData:(NSData*)data;
    //暂停
    -(void)pause;
    //播放、继续播放
    -(void)play;
    //重播
    -(void)replay;
    //关闭播放器
    -(void)closePlayer;
    //跳转到某个音符开始播放
    -(void)gotoNoteByTrackIndex:(int)trackIndex NodeIndex:(int)noteIndex;
    //Midi信息
    - (NSString *)midiDescription;

###5.XMidiPlayer委托事件

    //播放进度变化 progress是一个0~1的一个小数,代表进度百分比
    + (void)progressChanged:(double)progress;

###6.关于乐器字典

字典文件使用.aupreset文件,可以使用Apple的AU Lab生成。
可以在Xcode->Open Developer Tool->More Developer Tools中下载Audio Tools for Xcode。

乐器有两级分类,第一级17个大类,第二级128个子类。
每个大类有一种默认乐器,然后每个子类对应一种乐器。
其实还可以再细分,有兴趣的朋友可以看这里https://en.wikipedia.org/wiki/General_MIDI_Level_2

###7.默认乐器字典

我添加的不全,缺少的大家可以自己添加,可在XAudioPlayer.h文件中修改乐器字典。
第一级
InstrumentFirstType_Piano “Yamaha Grand Piano”
InstrumentFirstType_ChromaticPercussion “Celesta”
InstrumentFirstType_Organ ”Full Organ“
InstrumentFirstType_Guitar “Classical Acoustic Guitar”
InstrumentFirstType_Bass “Muted Electric Bass”
InstrumentFirstType_OrchestraSolo “String Ensemble”
InstrumentFirstType_OrchestraEnsemble “String Ensemble”
InstrumentFirstType_Brass “French Horns”
InstrumentFirstType_Reed ”Alto Sax“
InstrumentFirstType_Wind “Flutes”

第二级
InstrumentSecondType_OrchestralKit “Orchestral Kit”

Empty file

About

XMIDI是一款IOS上的MIDI播放引擎。 expand collapse
Objective-C
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Objective-C
1
https://gitee.com/lugia/XMIDI-2.0.git
git@gitee.com:lugia/XMIDI-2.0.git
lugia
XMIDI-2.0
XMIDI 2.0
master

Search