Android 音乐频谱实现

最近由于需要实现音乐频谱,所以今天就为大家普及一下。关于音乐频谱你需要了解数字信号处理的知识,尤其是FFT的知识。简单说就是把时域上连续的信号(波形)强度转换成离散的频域信号(频谱)。我理解波形就是信号的强度,或者说音响设备的输出的功率,功率高,音量就大。但是歌曲的曲调是不会变的,因为频谱是不会变的。

频谱反映的是这个这个音乐在某个连续时间段内,声音的震动频率。不知道理解的对不对。

本文的音乐频谱实现是仿照Android Api Demo 里的一个例子实现的,需要Android 2.3及以上系统,因为要用到Visualizer 类,这个类只在Android 2.3以上的API才支持。

首先实例化Visualizer,参数SessionId可以通过MediaPlayer的对象获得

	visualizer = new Visualizer(mPlayerInstance.getAudioSessionId());
接着设置需要转换的音乐内容长度,专业的说这就是采样,该采样值一般为2的指数倍,如64,128,256,512,1024。这里我设置了128,原因是长度越长,FFT算法运行时间更长。

	visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[0]);
然后为visualizer设置监听器,这样当Capture一段数据后,就会触发两个函数进行处理。设置监听函数为

	setDataCaptureListener(OnDataCaptureListener listener, rata,iswave,isfft )
参数解释:

rate, 表示采样的周期,即隔多久采样一次,联系前文就是隔多久采样128个数据,本文设置为512mHz更新一次

iswave,是波形信号

isfft,是FFT信号,表示是获取波形信号还是频域信号

OnDataCaptureListener,表监听函数,匿名内部类实现该接口,该接口需要实现两个函数

	onWaveFormDataCapture(Visualizer visualizer,byte[] waveform, int samplingRate) 

	public void onFftDataCapture(Visualizer visualizer,byte[] fft, int samplingRate) 
samplingRate是采样速率,即上文的rate值,512mHz。

其中两个byte[] waveform和byte[] fft数组,分别是获得波形数据和FFT的数据,该byte数组的大小即为之前设置的采样值大小128,获得数据如下图所示。

其中n为采样值,index 0 表示直流分量,Rf表示FFT计算后的实部,If表示FFT计算后的虚部。

如何计算出该频率,就是将FFT的实部和对应的虚部先各自平方再相加然后开方,简单说就是平方取模。

具体计算请看如下的代码。

	visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {@Overridepublic void onWaveFormDataCapture(Visualizer visualizer,byte[] waveform, int samplingRate) {// 这里添加获得数据的处理 byte[] 数组 更新出去,并画图。这里可以把这个// 数组传到RunOnMusic里去// visualView.updateVisualizer(waveform);}@Overridepublic void onFftDataCapture(Visualizer visualizer,byte[] fft, int samplingRate) {byte[] model = new byte[fft.length / 2 + 1];model[0] = (byte) Math.abs(fft[1]);int j = 1;for (int i = 2; i < 18;) {model[j] = (byte) Math.hypot(fft[i], fft[i + 1]);i += 2;j++;}visualView.updateVisualizer(model);}}, Visualizer.getMaxCaptureRate() / 2, false, true);}

其中visualView是显示程序,updateVisulizer是将model获取的频谱值更新到要显示的view。

	protected void onDraw(Canvas canvas) {super.onDraw(canvas);if (mBytes == null) {return;}if (mPoints == null || mPoints.length < mBytes.length * 4) {mPoints = new float[mBytes.length * 4];mRect.set(0, 0, getWidth(), getHeight() - 50);for (int i = 0; i < 9; i++) {if (mBytes[i] < 0)mBytes[i] = 127; mPoints[i * 4] = mRect.width() * i / 9;mPoints[i * 4 + 1] = mRect.height() / 2;mPoints[i * 4 + 2] = mRect.width() * i / 9;mPoints[i * 4 + 3] = 2 + mRect.height() / 2 + mBytes[i];}canvas.drawLines(mPoints, mForePaint);}}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25511.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FLStudio水果21最新Daw (宿主软件)电音混音编曲制作工具

对许多音乐爱好者来说&#xff0c;从单独欣赏作品过渡到按自己的心情创作作品&#xff0c;是一种奇妙而令人高兴的体验。 音乐的编曲&#xff0c;特别是电子的编曲&#xff0c;Daw (宿主软件)是重要的要素。 编曲软件有很多。 “专业”这个词取决于你是否在行业的某个部分。 就…

编曲新手可以用什么编曲软件?

如今我们可以在网上找到各种各样学习资料&#xff0c;涵盖各个领域&#xff0c;可以说现在的学习门槛很低了。就拿学音乐来说&#xff0c;各种音乐工具软件、音乐教学视频等等降低了学习音乐的门槛。但是资源多了&#xff0c;如何选择适合自己的呢&#xff1f; 比如市面上音乐…

2023适合新手的免费编曲软件FL Studio水果21中文版

水果软件即FL Studio&#xff0c;这是一款较为专业的编曲软件&#xff0c;这款软件自带高品质打击乐、钢琴、弦乐以及吉他等107种乐器效果&#xff0c;内置了包括经典电子音色、合成利器3xosc、sytrus、slicex等多种插件&#xff0c;可以帮助音乐制作人创作不同的音乐曲风&…

编曲鼓音源推荐 编曲怎么编鼓

现代音乐打击乐中鼓点的应用所占的比重非常大&#xff0c;无论是流行乐&#xff0c;摇滚乐&#xff0c;还是EMD几乎都有大量的鼓元素的使用。在编曲的时候&#xff0c;好的鼓音源能让编曲增色不少&#xff0c;那么有哪些鼓音源推荐呢&#xff1f;编曲怎么编鼓呢&#xff1f;下面…

Python编曲实践(一):通过Mido和PyGame来编写和播放单轨MIDI文件

前言 人工智能编曲是一个十分复杂的话题&#xff0c;而这一话题的起点便是选择一个良好的编曲媒介&#xff0c;使得开发者能够将AI的音乐灵感记录下来&#xff0c;并且能够很方便地将其播放、编辑、分享。 MIDI文件是电脑编曲的一种通用格式&#xff0c;它容易通过音乐编辑软件…

电脑版fl studio水果音乐编曲软件 v20.8新中文版

FL Studio又称水果萝卜&#xff0c;是一款专业的音乐制作软件&#xff0c; FL Studio新版本体积过大&#xff0c;小编故提供FL Studio 20.8中文收藏高级版&#xff0c;这个版本可说是非常的经典。 01&#xff0c;安装第一步&#xff1a;flstudio20.8英文原版安装文件。安装时一…

fl studio 20.9Mac新版中文水果音乐制作工作站编曲软件

fl studio 20.9Mac水果音乐制作工作站编曲软件 fl studio 20.9Mac是Image-Line公司出品音乐制作工作站FL Studio 20.9水果音乐制作工作站一个功能齐全的音乐编曲工具&#xff0c;可以为需要创作高品质音乐曲目的专业和业余艺术家提供多轨录音&#xff0c;排序和混音。借助FL S…

Image-Line新版flstudio20.9水果编曲制作音乐

导读&#xff1a;昨晚Image-Line发布FL Studio 20.9&#xff0c;而今年也是他们成立第21周年。FL 20.9一经发行便引起了广大制作人的关注&#xff0c;今天我们来介绍一下这款软件。 即使你不是一位制作人&#xff0c;你也肯定听说过FL Studio 20.9或是“水果”的大名。在各大编…

2021年4款好用的音乐编曲软件推荐

对很多音乐爱好者而言&#xff0c;从单独的欣赏作品&#xff0c;过渡到按自己的心情创作作品&#xff0c;是一段奇妙又欣喜的体验。而音乐编曲&#xff0c;尤其是电音编曲&#xff0c;Daw&#xff08;宿主软件&#xff09;是一个很重要的元素。 编曲软件很多&#xff0c;但实际…

《零基础作曲编曲完全教程》(合辑)崛起的卧室音乐人 编曲教程 作曲教程精进篇

1、精进篇1展开音乐 必须反复 崛起的卧室音乐人精静篇这节是精进篇的第一讲&#xff0c;展开音乐入门篇的比较务实。精进篇我会把重点放在拓宽思维以及提高认知上&#xff0c;**经过了一番折腾&#xff0c;一个小乐段大家应该都能写出来了吧。**但此时距离完整的音乐还有一段比…

MIDI 音乐程序设计 (可以自己编曲的快乐)

乐器数字接口(MIDI)简介 乐器数字接口&#xff08;Musical Instrument Digital Interface&#xff0c;MIDI&#xff09;&#xff0c;是20世纪80年代初为解决电声乐器之间的通信问题而提出的&#xff0c;是电子乐器制造商们建立的通信标准&#xff0c;是电子乐器之间以及电子乐…

FL Studio21水果编曲高级版本音乐编曲工具

说到电音已经不是很新鲜的话题了&#xff0c;在这个自媒体视频为王的年代&#xff0c;相信很多年轻人都想成为一个优秀的up主&#xff0c;在各大媒体网站上上传一些自己录制的游戏剪辑&#xff0c;再配上一段劲爆的电音&#xff0c;可能视频就会从3分变成7分的评价了。筱黑君也…

Fruity Loops Studio2022最新版水果音乐编曲软件

FL Studio水果编曲英文名&#xff1a;Fruity Loops Studio&#xff0c;简称FL&#xff0c;是国人熟知的水果编曲工具&#xff0c;圈内音乐人习惯叫它“水果”。FL Studio是一个全能音乐制作环境或数字音频工作站&#xff0c;可以进行编曲、剪辑、录音、混音 &#xff0c;让电脑…

FL Studio21傻瓜式编曲音乐编辑器FL水果软件

在我看来软件只是工具.不管哪个都可以做任何风格的音乐,区别只是软件操作相对而言fl studio更容易上手,在国内也很受欢迎,弱项应该是混音上如果你做电音的话 还是FL更好一些 ,因为他就是为舞曲而生的!flstudio内配置音源、插件、录音软件、混音效果!而FLStudio则更偏向于电子音…

自己写歌怎么编曲?4款超好用编曲软件推荐

对很多音乐爱好者而言&#xff0c;从单独的欣赏作品&#xff0c;过渡到按自己的心情创作作品&#xff0c;是一段奇妙又欣喜的体验。而音乐编曲&#xff0c;尤其是电音编曲&#xff0c;Daw&#xff08;宿主软件&#xff09;是一个很重要的元素。 编曲软件很多&#xff0c;但实际…

FL StudioV21电脑版水果编曲音乐编辑软件

这是一款功能十分丰富和强大的音乐编辑软件&#xff0c;能够帮助用户进行编曲、剪辑、录音、混音等操作&#xff0c;让用户能够全面地调整音频。FL水果最新版是一款专业级别的音乐编曲软件&#xff0c;集合更多的编曲功能为一身&#xff0c;可以进行录音、编辑、制作、混音、调…

FL Studio21中文版编曲音乐宿主软件

FL Studio这款宿主应该算得上是全中国最多人用的宿主软件了&#xff0c;不知道有多少接触音乐制作的同学最开始就是用的这个&#xff0c;在我看来&#xff0c;FL Studio是对小白同学比较友好的&#xff0c;界面简单&#xff0c;自带的素材多&#xff0c;而且比较适合做电音。FL…

Android平台上做一个完美的音乐频谱--Music Audio Glow

一直在网上寻找一个做得比较好的音乐的频谱&#xff0c;始终未能找到一个很合适自己用的音乐频谱&#xff0c;后面实在没办法&#xff0c;就自己研究着做了&#xff0c;基本实现的功能有&#xff1a; 1、能够修改频谱柱子的图案 2、能够修改整个软件的颜色&#xff0c;包括&a…

FL Studio2022水果编曲音乐制作软件自带完整插件

FL Studio 2022是一款非常好用的音乐制作软件&#xff0c;又称水果编曲软件&#xff0c;软件集合了录音、混音、编辑等多种功能于一体&#xff0c;能够完成各种各样的音乐编曲工作&#xff0c;强大的音乐制作功能受到了很多用户的喜爱&#xff0c;帮你完成各种类型音乐的编曲制…

FL Studio21中文版D编曲数字音乐工作软件

随着现在人们的生活水平不断提高&#xff0c;我们的精神生活也越来越丰富&#xff0c;对于现在的年轻人来说&#xff0c;DJ舞曲是一个较受欢迎的领域&#xff0c;有许多年轻人对DJ这个职业感兴趣&#xff0c;想要深入了解DJ编曲这份工作&#xff0c;那么今天我们就来说一说DJ编…