Android如何识别简谱,再转换成MIDI,我是大二学生,做一个这样的软件,但是并不会。请教啊!

Android如何识别简谱,再转换成MIDI,我是大二学生,做一个这样的软件,但是并不会。请教啊!,第1张

简谱变成midi已经有很多软件实现了。一般音序器软件都可以将简谱或者五线谱转化成midi音轨。这种算法实现起来也不困难,前提是你得能识谱。但如果是格式的简谱的话,就会困难得多,因为目前还没有OCR可以识别乐谱的。

大多数音序器是反向识别的,即你输入midi音轨,程序帮你制作成简谱或是五线谱。

另外看看有没有相关的函数或者类可以用。

遇到一个即研究音乐又研究算法的人还真是不容易。

;TowTigerasm

;乐谱是:;1231 1231 345 345 565431 565431 25(低)1 25(低)1

;--------------------------------------------------------------------------------------------------

extrn delay:far

data segment

ftable dw 2 dup(262,294,330,262)

dw 2 dup(330,349,392,19)

dw 2 dup(392,440,392,349,330,262)

dw 2 dup(294,196,262,19),-1

ttable dw 8 dup(8)

dw 8 dup(8)

dw 2 dup(4,4,4,4,8,8)

dw 8 dup(8)

data ends

code segment

assume cs:code,ds:data

begin: mov ax,data

mov ds,ax

lea si,ftable

lea bp,ds:ttable

freq: mov di,[si]

cmp di,-1

je exit

mov bx,DS:[BP]

call sound

add si,2

add bp,2

jmp freq

exit: mov ah,4ch

int 21h

sound proc near

push ax

push bx

push cx

push dx

push di

mov al,0b6h

out 43h,al

mov dx,12h

mov ax,348ch

div di

out 42h,al

mov al,ah

out 42h,al

in al,61h

mov ah,al

or al,3

out 61h,al

call delay

mov al,ah

out 61h,al

pop di

pop dx

pop cx

pop bx

pop ax

ret

sound endp

code ends

end begin

;--------------------------------------------------------------------------------------------------

这中间还用到了一个延迟用的通用子程序: delay

在delayasm里实现:

;--------------------------------------------------------------------------------------------------

public delay

code segment

assume cs:code

delay proc far

push ax

ms250: mov cx,16666

us015: in al,61h

and al,10h

cmp al,ah

je us015

mov ah,al

loop us015

dec bl

jnz ms250

pop ax

ret

delay endp

code ends

end

在word中打出简谱的方法如下(以windows10系统的word2019版为例):

1、在word文档中输入1-7几个数字。

2、将需要输入高音符的文字选中,点击上方的“wen”按钮。

3、将对应的拼音文字改为“·”。

4、随后选中需要添加低音的文字,点击上方的“更多”按钮。

5、点击着重号,随后电脑及“·”为着重号。

6、接着选中需要添加连音的音符,点击下划线图标。

7、最后即可看到制作好的简谱,包括高音、低音和连音。

蜂鸣器貌似分直流和交流两种,具体哪种可以根据频率发出相应声音我也不大记得,买个喇叭蛮好的,也不贵。如果你硬件使用的是数模转换器的话,程序就用数组,具体还得看你想输出的波形,方波效果会好一些,程序也简单,先上网搜下各个音阶的频率吧,然后在搞定程序,蛮简单。如果不想编程序的话,用555也行,我做过类似的电子琴,555硬件电路很简单。

先运用MP3转MIDI工具“WaveToMidi”等,再用MidiNotate Musician、 eyesong、乐音、简谱制作大师等MIDI转成五线谱或简谱。

具体步骤:

一、下载安装软件

从网站搜索下载相关软件,在电脑中进行安装

二、转换乐谱:

1、运行MP3转MIDI工具把MP3等格式的音乐转换成MIDI格式

2、运行转谱软件MidiNotate Musician、 eyesong、乐音、简谱制作大师等把MIDI格式的文件转换成乐谱。

单片机实现音乐的原料很简单,把乐曲中的符号按次序排成一个表,然后按该表编辑要播放的音乐,再由查表程序依次取出,产生音符并控制节奏。

一般来说结束符为ff,体止符为00,

0x是16进制数字表示法前缀

其他字符的意思,你可以查看你d片机程序是怎么定义的就知道了。

以上就是关于Android如何识别简谱,再转换成MIDI,我是大二学生,做一个这样的软件,但是并不会。请教啊!全部的内容,包括:Android如何识别简谱,再转换成MIDI,我是大二学生,做一个这样的软件,但是并不会。请教啊!、实验要求:1. 以小组为单位进行开发,乐谱参考《IBM-PC汇编语言程序设计实验教程》P74两只老虎简谱;、怎样在WORD上打出简谱啊教我1!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10079099.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存