[原]Nokia 40系列播放midi指南 V0.0.1

原创 2004年07月16日 14:29:00

[a cross post from clapton.blogone.net]
clapton_xpAThotmailDOTcom

读者对象:想在Nokia40手机上播放稍微长一点时间声音的人们,高手请先看最下面的

“我的疑问”。

首先~N记?

40系列手机不支持播放midi(那你还说个P啊~我闪),但是可以通过将midi转换为co

m.nokia.mid.sound.Sound类可以识别的数组来进行播放,播放出来的为单个的鸣音,

我称之为“通!”(TONE)。

转换工具:一般就用Nokia?Developer's?Suite?2.1?for?j2me(TM)里的Audio?

Convertor即可,但是实践中发现转换时有缺音的现象,至今不知何故。

转换要求:源Midi文件必须是单轨(Track)单声道(Channel)的,这样在Audio?

Convertor里才能取得一个整个的Channel并转换(因为要是两个以上Channel,你选哪

个?哪个都不是全的)。

这时又有问题了~一首midi好几分钟,转换的时候说太长,或者转的时候没说太长,

但放到手机上播了一半儿就停了。这个问题似乎是Sound类对播放的数组有长度限制,

具体是多少我也没仔细试过。


“那这么多问题怎么解决啊~”

那位同学捧哏捧的恰到好处,有火候~
1。对源midi的处理:最好是自己做啦,要把现有的N个轨的midi都弄到一个Channel里

似乎是mission?impossible哦(反正我没琢磨出来),做好后,把它按每几个小节分

成一段并分别保存。
2。对每一段midi用audio?convertor进行转换,并保存结果
3。在播放的程序里,可以在每一段播放完之后马上开始播放下面一段。具体实现请看

Nokia的JavaDoc。这里有一点需要注意的,如果以Sound的状态来判断何时开始下一段

的播放,在模拟器上没什么大问题,但是放到手机上就会有很明显的延时,解决的办

法可以是在模拟器上播放,记录每一个小段落的开始时间(ms),并写一个线程来判

断何时开始下一段播放。
4。刚才说的丢音的现象呢?
偶然发现有一个东东http://www.ringtonecreator.info/files/rtcreator.zip,可以

转换很多厂商的铃声,包括nokia的,但是这个东东要$$$,这个试用版只能转换10秒

的midi,多余的被砍掉,而且人家说明了不让用于商业用途哦(狠……那就自己玩玩

吧)。经过试验,这个东东转出来的播放时没有丢音的现象。



我的疑问:
~~~~~~~
1?真的要切开才能播超过一分钟的文件吗?
2?丢音的现象是源midi的问题还是转换工具的问题?
3?如果真的要切的话,有没有方便的按小节或者按秒来切分midi的工具(要求按几下

键盘,点几下鼠标就行的)
4?合并多轨midi至一个channel到底是不是mission?impossible?



工具:
Cakewalk?Sonar:
http://www.cakewalk.com
Nokia?Developer's?Suite?2.1?for?j2me(TM):
http://forum.nokia.com
RingToneConvertor:
http://www.ringtonecreator.info



资源:
http://www.matrix.org.cn/article/7.html
http://www.midifan.com
http://www.forum.nokia.com


鸣谢:
在我郁闷的时候请教过的各位朋友们,我也不知道是否可以公布你们的名字,所以就

笼统的感谢一下吧,呱唧呱唧呱唧~~


有不对的或者多此一举的地方希望大家能够指出,学徒在此鞠躬~呱唧呱唧呱唧呱唧
clapton_xpAThotmailDOTcom

midi格式的音乐都无法播放

故障的原因:为什么电脑玩游戏,看DVD时声音正常,而播放MIDI音乐文件时却没有声音? 故障分析:出现上述故障现象可能有以下三种情况。 1、使用的是ISA声卡,一些比较老的ISA声卡由于是...
  • pi19740306
  • pi19740306
  • 2014年12月13日 11:13
  • 352

关于编程方面对.mid(MIDI序列)的读写 - 提供一个WebAPI

之前在做一个小项目,C#的,最后需要生成.mid的MIDI文件。网上找了很多资料,大部分都是读取,没有写入。嗯我承认其实读取反过来就是写入。但是没有封装好的类好麻烦的。。 突然看到了MidiShow...
  • developer_ken_2
  • developer_ken_2
  • 2017年01月29日 23:06
  • 740

matlab工具miditoolbox函数中文说明

函数说明
  • u014646950
  • u014646950
  • 2017年03月01日 18:02
  • 676

游戏编程入门(11):播放MIDI 音乐

MIDI音乐是将音乐结合到游戏的最佳方式之一,本章就将介绍究竟如何使用相对较少的代码播放MIDI音乐。 本章内容包括: 如何使用MCI播放MIDI音乐 如何向游戏添加MIDI音乐 接上文 游戏编程入门...
  • Jurbo
  • Jurbo
  • 2017年07月03日 22:02
  • 1112

关于Windows下的MIDI基础编程

简单的MIDI API 调用
  • u013346423
  • u013346423
  • 2015年02月24日 16:20
  • 1942

【Arduino官方教程第一辑】示例程序 4-4 MIDI音乐

本例向你展示如何从Arduino或Genuino板通过标准5端子DIN接口(standard 5 poles DIN)发送MIDI音符标准发送到MIDI乐器。...
  • amagamag
  • amagamag
  • 2016年05月12日 18:17
  • 2333

《Cortex™-A系列编程者指南(V3.0)》第13章<中断处理>笔记

在本章,我们会看看ARM处理器处理中断的一系列方法,简单地看看通用中断控制器(Generic Interrupt Controller,GIC)架构。   旧版本的ARM架构允许实现者在他们的外部中...
  • gfvvz1
  • gfvvz1
  • 2014年05月27日 10:23
  • 2078

OpenGL深入探索——《OpenGL编程指南(原书第8版)》——计算着色器

转载自 《OpenGL编程指南(原书第8版)》——计算着色器 概述 由于图形处理器每秒能够进行数以亿计次的计算,它已成为一种性能十分惊人的器件。过去,这种处理器主要被设计用于承担实时图形渲染中海...
  • panda1234lee
  • panda1234lee
  • 2016年06月28日 21:17
  • 1596

MIDI歌曲解析

MIDI歌曲解析   序言    本文主要讲解MIDI文件的解析,前5章主要介绍MIDI歌曲规范,并引用大量的实例加深理解,学会查看MIDI歌曲的构成,使读者对如何写MIDI格式...
  • shao941122
  • shao941122
  • 2015年05月28日 16:20
  • 4384

MIDI控制器一览表

编号 参数意义 0 音色库选择MSB 1 颤音深度(粗调) 2 呼吸(吹管)控制器(粗调) 3 N/A 4 踏板控制器(粗调) 5 连滑音速度(粗调) 6 高位元组数据输入(Data E...
  • jia_zhengshen
  • jia_zhengshen
  • 2013年04月09日 15:05
  • 1424
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[原]Nokia 40系列播放midi指南 V0.0.1
举报原因:
原因补充:

(最多只允许输入30个字)