浅谈动感歌词-歌词生成篇

1引言

在写这生成篇时,我仍是在烦恼应该是先写歌词解析篇,仍是先写歌词生成篇,后来我想想,其实仍是要先有歌词文件,才有解析嘛,固然,咱们也能够经过现有的歌词(krc、trc和ksc等)直接跳过这一步,直接解析歌词便可。git

2制做软件

这里介绍一下《小灰熊卡拉ok字幕制做软件》,咱们能够经过一些专业的制做软件,来理清和弄懂歌词的制做原理。这里先上个截图:github

由图和软件制做歌词的使用教程,咱们能够知道以下信息:app

1.歌词以行为单位制做,逐【字】制做spa

2.在制做歌词时,软件彷佛已经把每一行歌词的【字】都分割好了,应该是为了后面方便制做歌词,因此预先把行歌词分割成每个【字】,这里的【字】包括:英文单词、数字串、中文,其中空格【只能】与英文单词、数字串或者中文组成一个【字】,且空格的位置要放在后面设计

3.在制做歌词的过程当中,音乐响起,听到行歌词中的【字】时,就按一下【空格】,这里按一下【空格】,其实应该就是记录该【字(A)】的出现时间,当按下下一个【字(B)】或者换行时,那就能够记录【字(A)】的持续时间视频

4.歌词换行,则记录行歌词的开始时间教程

5.歌词制做完成后,则根据歌词格式,生成对应歌词文件ip

注:第2和第3点是实现制做歌词的重点,如没法理解,则没法制做歌词。get

3自实现制做软件

知道制做歌词的原理后,咱们就要动手本身编写和实现制做歌词软件,这里我采用Java Swing来编写一个桌面程序,界面方面参考酷狗实现。源码

3.1API

Java Swing:Graphics2D.setClip。固然也有Android的,后面的博客会说到。

 

由图可知,Graphics2D在绘画文本时,先画默认颜色的歌词文本,再设置clip层的长度宽度,而后再绘画【高亮】歌词文本,只要咱们不断地修改clip层的宽度,就是咱们想要的动感歌词效果了。固然咱们在制做歌词时,只须要设置渐变递增宽度为每一个【字】的宽度就能够了。

3.2实体类设计

3.2.1歌词实体、行歌词实体、标签实体

采用《浅谈动感歌词-歌词分析篇》里的实体类,制做歌词时,生成的数据,会保存到,歌词实体(LyricsInfo)里面,方便歌词的预览和生成。

3.2.2歌词文件生成器

这个类的做用,就是为了方便后面拓展支持多种动感歌词格式。

 

3.2.3HRCX歌词生成器

 

3.3界面

3.3.1录入歌词

 

3.3.2制做歌词

思路:

1.大概就是将【录入歌词】的歌词文本,进行行分割

2.获取行歌词后,对歌词的内容进行分析,并进行【字】分割

3.播放歌曲,按下【左右箭头】和【空格】制做歌词

4.分割部分代码:

 

5.界面

注:紫色,是已完成。红色,表示正在生成。

3.3.3制做完成

 

3.4歌词生成

部分代码,文件后缀名:hrcx

3.5歌词效果预览

 

4参考

卡拉OK歌词实现

注:这个是好像是Android的视频教程,我也是从这个视频的原理来找到Java Swing的API的。

5源码

乐乐音乐

注:这是我用Java Swing写的一个PC音乐播放器

6最后

下一篇,将介绍动感歌词的解析。若有侵权,麻烦告知。

相关文章
相关标签/搜索