优秀的音频EQ均衡器音效源码

不多说,直接上图:这是一款客户定制的播放器,播放器功能很强大,比如变速,变调,BPM节拍响应,淡入淡出,音量管家,EQ均衡器音效调节等等个性化功能:

我们着重推荐下EQ均衡器音效调节功能:

此款EQ均衡器音效调节效果,效果不逊于市面上大部分音效效果,如QQ音乐,酷狗,酷我,百度音乐等。支持各种音效个性化调节,由于客户需求,没有预设更多音效,完全可以实现如QQ均衡器界面功能:

我们的均衡器优势在于,频率段数可以定制,比如10段,15段,20段,30段均可,每段的频点可以设置,可以预设更多效果。

贴点调用代码吧

// EQDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "DanceMusic.h"
#include "EQDlg.h"
#include "DanceMusic.h"
#include "DanceMusicDlg.h"
#include "MusicDlg.h"
// CEQDlg 对话框

IMPLEMENT_DYNAMIC(CEQDlg, CDialog)

CEQDlg::CEQDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CEQDlg::IDD, pParent)
{

}

CEQDlg::~CEQDlg()
{
}

void CEQDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_SLIDER1, m_eq[0]);
	DDX_Control(pDX, IDC_SLIDER2, m_eq[1]);
	DDX_Control(pDX, IDC_SLIDER3, m_eq[2]);
	DDX_Control(pDX, IDC_SLIDER4, m_eq[3]);
	DDX_Control(pDX, IDC_SLIDER5, m_eq[4]);
	DDX_Control(pDX, IDC_SLIDER6, m_eq[5]);
	DDX_Control(pDX, IDC_SLIDER7, m_eq[6]);
	DDX_Control(pDX, IDC_SLIDER8, m_eq[7]);
	DDX_Control(pDX, IDC_SLIDER9, m_eq[8]);
	DDX_Control(pDX, IDC_SLIDER10, m_eq[9]);
	DDX_Control(pDX, IDC_SLIDER11, m_eq[10]);
	DDX_Control(pDX, IDC_SLIDER12, m_eq[11]);
	DDX_Control(pDX, IDC_SLIDER13, m_eq[12]);
	DDX_Control(pDX, IDC_SLIDER14, m_eq[13]);
	DDX_Control(pDX, IDC_SLIDER15, m_eq[14]);
	DDX_Control(pDX, IDC_SLIDER16, m_eq[15]);
	DDX_Control(pDX, IDC_SLIDER17, m_eq[16]);
	DDX_Control(pDX, IDC_SLIDER18, m_eq[17]);

	DDX_Control(pDX, IDC_ST19, m_eqshow[0]);
	DDX_Control(pDX, IDC_ST20, m_eqshow[1]);
	DDX_Control(pDX, IDC_ST21, m_eqshow[2]);

	DDX_Control(pDX, IDC_ST22, m_eqshow[3]);
	DDX_Control(pDX, IDC_ST23, m_eqshow[4]);
	DDX_Control(pDX, IDC_ST24, m_eqshow[5]);

	DDX_Control(pDX, IDC_ST25, m_eqshow[6]);
	DDX_Control(pDX, IDC_ST26, m_eqshow[7]);
	DDX_Control(pDX, IDC_ST27, m_eqshow[8]);

	DDX_Control(pDX, IDC_ST28, m_eqshow[9]);
	DDX_Control(pDX, IDC_ST29, m_eqshow[10]);
	DDX_Control(pDX, IDC_ST30, m_eqshow[11]);

	DDX_Control(pDX, IDC_ST31, m_eqshow[12]);
	DDX_Control(pDX, IDC_ST32, m_eqshow[13]);
	DDX_Control(pDX, IDC_ST33, m_eqshow[14]);

	DDX_Control(pDX, IDC_ST34, m_eqshow[15]);
	DDX_Control(pDX, IDC_ST35, m_eqshow[16]);
	DDX_Control(pDX, IDC_ST36, m_eqshow[17]);

	DDX_Control(pDX, IDC_CHECK1, m_check);

}


BEGIN_MESSAGE_MAP(CEQDlg, CDialog)
	ON_BN_CLICKED(IDC_BUTTON1, &CEQDlg::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_CHECK1, &CEQDlg::OnBnClickedCheck1)
	ON_WM_VSCROLL()
	ON_BN_CLICKED(IDC_BUTTON2, &CEQDlg::OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON3, &CEQDlg::OnBnClickedButton3)
END_MESSAGE_MAP()


// CEQDlg 消息处理程序


 
BOOL CEQDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	for(int i=0;i<MACEQ;i++)
	{
		if(i==3||i==4||i==5||i==6||i==7)
			m_eqshow[i].SetFontSize2(10);
	}

	CString szDefault="40,60,80,100,120,150,200,250,300,400,500,600,1000,1800,3100,5300,9200,15800";
	CString szEQ=theApp.m_main->m_inifile.GetValue("EQSet","Frequency","40,60,80,100,120,150,200,250,300,400,500,600,1000,1800,3100,5300,9200,15800");
	CStringArray tempEQs;
	int nTempCount=GetStringsFromSpace(szEQ,tempEQs,",");
	if(nTempCount<MACEQ)
		szEQ=szDefault;

	CString szDefaultDB="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0";
	CString szDB=theApp.m_main->m_inifile.GetValue("EQSet","DBSave","0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0");
	CStringArray tempDBs;
	int nTempCount2=GetStringsFromSpace(szDB,tempDBs,",");
	if(nTempCount2<MACEQ)
		szDB=szDefaultDB;
	GetStringsFromSpace(szDB,tempDBs,",");

	m_pmain->m_player.m_x.EQInitString(szEQ);
	m_check.SetCheck(1);
	m_pmain->m_player.m_x.EQEnable(m_check.GetCheck());
	for(int i=0;i<MACEQ;i++)
	{
		int nDB=atof(tempDBs[i]);
		m_eq[i].SetRange(-12,12);
		m_eq[i].SetPos(1);
		m_eq[i].SetPos(0-nDB);
		m_pmain->m_player.m_x.EQSet(i,nDB);
		this->GetDlgItem(IDC_ST1+i)->SetWindowTextA(ItoA(nDB));
	}
	CStringArray EQs;
	int nCount=GetStringsFromSpace(szEQ,EQs,",");
	for(int i=0;i<nCount;i++)
	{
		m_eqshow[i].SetWindowTextA(FormatFrequency(atof(EQs[i]))/*+"Hz"*/);
		//this->GetDlgItem(IDC_ST19+i)->SetWindowTextA(FormatFrequency(atof(EQs[i]))/*+"Hz"*/);
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CEQDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	for(int i=0;i<MACEQ;i++)
	{
		if(pScrollBar->GetSafeHwnd()==m_eq[i].GetSafeHwnd())
		{
			int nPos=0-m_eq[i].GetPos();
			TRACE("pos:%d\n",nPos);
			m_pmain->m_player.m_x.EQSet(i,nPos);
			this->GetDlgItem(IDC_ST1+i)->SetWindowTextA(ItoA(nPos)/*+"db"*/);
			SaveDBs();
			break;
		}
	}


	CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CEQDlg::OnCancel()
{
	ShowWindow(SW_HIDE);
}

void CEQDlg::OnOK()
{
	ShowWindow(SW_HIDE);
}

void CEQDlg::OnBnClickedButton1()
{
	for(int i=0;i<MACEQ;i++)
	{
		m_eq[i].SetPos(0);
		m_pmain->m_player.m_x.EQSet(i,0);
		this->GetDlgItem(IDC_ST1+i)->SetWindowTextA(ItoA(0));
	}

	SaveDBs();

}

void CEQDlg::SaveDBs()
{
	CString szF;
	for(int i=0;i<MACEQ;i++)
	{
		int nPos=0-m_eq[i].GetPos();
		szF+=ItoA(nPos);
		if(i!=MACEQ-1)
			szF+=",";
	}
	theApp.m_main->m_inifile.SetValue("EQSet","DBSave",szF);

}

void CEQDlg::OnBnClickedCheck1()
{
	m_pmain->m_player.m_x.EQEnable(m_check.GetCheck());
}

void CEQDlg::OnBnClickedButton2()//自定义频点
{
	m_pmain->m_player.m_x.EQEnable(0);
	CEQSetDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		CStringArray EQs;
		int nCount=GetStringsFromSpace(dlg.m_szFs,EQs,",");
		for(int i=0;i<nCount;i++)
		{
			m_eqshow[i].SetWindowTextA(FormatFrequency(atof(EQs[i]))/*+"Hz"*/);
			//this->GetDlgItem(IDC_ST19+i)->SetWindowTextA(FormatFrequency(atof(EQs[i]))/*+"Hz"*/);
		}
		m_pmain->m_player.m_x.EQInitString(dlg.m_szFs);
		m_pmain->m_player.m_x.EQEnable(m_check.GetCheck());	
		OnBnClickedButton1();//修改后复位
	}
	else
		m_pmain->m_player.m_x.EQEnable(m_check.GetCheck());	
}

void CEQDlg::OnBnClickedButton3()
{
	ShowWindow(SW_HIDE);
}

这是调用代码段:

实际上,封装好的EQ设置方法就3个函数:
 

typedef void(*pEQInitString)(CString szEQ);
typedef void(*pEQEnable)(int nEnableEQ);
typedef void(*pEQSet)(int nIndex,double dbDB); 
CString szDefault="40,60,80,100,120,150,200,250,300,400,500,600,1000,1800,3100,5300,9200,15800";
EQInitString(szDefault);    
for(int i=0;i<MACEQ;i++)   
{       
 int nDB=atof(tempDBs[i]);       
 EQSet(i,nDB);    
}

调用挺简单的是吧。

如果大家有这方面需求,可以交流合作的,有需要发DEMO的也可以联系我。这个代码可以出售,由于代码是纯C++编写,可以移植应用到各个平台。欢迎骚扰:QQ35744025,谢谢大家!

https://download.csdn.net/download/xjb2006/13459807

应读者强烈要求做了一个简单的DEMO,欢迎大家免费下载品鉴,谢谢大家!

周星星的星
关注 关注
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
soundify-deepsound-v1.5.2音乐源码一套包含安卓苹果客户端
荻酷网的博客
06-28 1026
客户端教程搭建。
十段均衡器开源 android,十段均衡器最美人声(10段均衡器最清晰人声)
weixin_42292348的博客
06-02 8880
超低音20Hz-40Hz,适当时声音强而有力。能控制雷声、低音鼓、管风琴和贝司的声音。过度提升会使音乐变得混浊不清。 均衡器低音40Hz-150Hz,是声音的基础部份,其能量占整个音频能量的70%,是表现音乐风格的重要成份。适当时,低音张弛得宜,声音丰满柔和,不足时声音单薄,150Hz,过度提升时会使声音发闷,明亮度下降,鼻音增强。中低音150Hz-500Hz,是声音的结构部分,人声位于这个位置,...
AudioEQ-均衡器源码
08-18
Equalizer source code, debugging through the machine on adjust each band audio. 均衡器源码
参数化均衡器(PEQ)制作指南(二)
最新发布
NTZ2019的博客
06-30 959
在上一节的基础上,设计一个可以添加无限数量滤波器的参数化均衡器(PEQ
均衡器代码
03-05
最近在做均衡器,上网找了一堆,但是方便的多。还好有xmms这个eq插件,感谢开源的奉献精神,原来的代码是在linux的,我把其中跟均衡相关的都抽出来了。开源帮助了我,我整理的资源也希望能帮助到大家使用只要包含eq.h就可以了。eq的值从-16到16比较好。0为平衡点
声音均衡器的源代码程序
04-30
一个语音信号均衡的代码源程序,可以在Tms320c54x上实现
非常好用的均衡器EQ源码
08-09
c++代码,使用方便
Android 均衡器 apk 源码
04-21
Android 均衡器 apk
EQ开源.e 开源市面上某防封源码.开源市面上某防封源码
07-01
开源市面上某防封源码.
Matlab:实现音频均衡器Android模式(附完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
03-03 452
Matlab:实现音频均衡器Android模式(附完整源码)
Matlab:实现音频均衡器(附完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
03-03 656
Matlab:实现音频均衡器(附完整源码)
直播音效助手源码-易语言
06-12
直播音效助手源码
易语言2D音效源码-易语言
06-13
易语言2D音效源码
易语言2D音效源码加DLL
02-03
源码为易语言源码。例程展示了2D音效实现方法。音效播放为调用C++编译的DLL(由于无法转为易源码,只能编译成DLL了)。
EQClassic:来自2010年的EQClassic源代码。EverQuest Trilogy Server Emulator
05-11
从2010年1月1日开始的EQClassic源代码-适用于EverQuest Trilogy(大框) 在线文档: : 支持 打开问题单 加入我们的Discord 已知的问题 如果/ maps / maps文件夹中没有地图文件,则不会生成NPC。 除非在数据库中指定NPC的漫游范围以及放置在游戏中的节点,否则NPC不会漫游。 玩家将必须使用EQW.exe进行连接。 补丁后缀会让您断开连接。 屏幕截图
音频 eq算法, 采用IIR梳状滤波器,IIR滤波器, 傅里叶逆转换,声音增益gain,Q值, 滤波类型,带通.zip
01-12
音频 eq算法, 采用IIR梳状滤波器,IIR滤波器, 傅里叶逆转换,声音增益gain,Q值, 滤波类型,带通.zip
均衡器代码
Nhsoft的专栏
03-05 7658
     最近在做均衡器,上网找了一堆,但是能方便使用的很少。大部分都是直接MP3出来后就来一个EQ,一个功能的代码散落在各个角楼里,很难整理。     还好有xmms这个eq插件,感谢开源的奉献精神,原来的代码是在linux的,我把其中跟均衡相关的都抽出来了。开源帮助了我,我整理的资源也希望能帮助到大家使用只要包含eq.h就可以了。eq的值从-16到16比较好。0为平衡点 -----------
音效php源码,音效大全mp3_音频素材下载(19999款音效素材包)
weixin_39559097的博客
03-20 557
当下时代,短视频非常的丰富,制作短视频的自媒体也相当的多,一个视频的好坏,它的音效是非常重要的!我相信大家也在网络上下载过各种免费的音频作为自己的素材,但是大家往往无法找到自己最心仪的,优质的音效素材是不多的。为了解决大家这一烦恼,这里我给大家整理了一套非常齐全的音效素材包,提供给大家下载。内容极其丰富,大家可以按需下载。音效分类这里我给大家已经分好类了,总共分为了 10 类。001-第一部分:影...
7波段参数均衡器源码程序
FPGA/MATLAB学习教程/源码/项目合作开发
01-24 4524
function [Hd]=shelvingEQ(fc,g,type) fs=44100; if strcmp(type,'LP')==1 g=10^(g/20); if g >= 1 a1=-0.5*tan(pi*(fc/fs-0.25)); else a1=-0.5*tan(pi*(fc/fs*1/g-0.25)); end b0t=0.25-0.5*a1; b2=0; a2=0; b0=0.5+(...
音频均衡调节器 EQ
07-28
音频均衡调节器(EQ)是一种用来调节音频频谱中不同频率的音量的工具。它通过增加或减少特定频率范围内的音量来改变音频的声音特性,从而实现音频的均衡。EQ通常用于音乐制作、音响系统和音频处理等领域。 EQ通常以图形界面的形式呈现,其中有一系列可调节的频率滑块。每个滑块代表一个特定的频率范围,用户可以通过调整滑块来增加或减少该频率范围内的音量。例如,通过增加低频滑块的音量,可以增强低音效果;通过降低高频滑块的音量,可以减少尖锐的高音。 EQ还可以分为多个类型,常见的包括图形均衡器、参数均衡器和全通滤波器等。不同类型的EQ具有不同的功能和特点,可以根据具体需求选择适合的类型。 总的来说,音频均衡调节器(EQ)是一种常用的工具,可以调整音频的频谱特性,使其更符合个人喜好或特定需求。
写文章

热门文章

  • 三层交换机配置多网段互访并上网:型号:交换机TPLINK(TL-SG5428) 路由器TPLINK(TL-WVR600G) 29594
  • dxva2+ffmpeg硬件解码(Windows)重要笔记2 9267
  • ffmpeg快速抓屏DXGI技术,基于screen-capture-recorder抓屏的升级screen-capture-dxgi:directshow滤镜,升级为支持dxgi120帧 9130
  • DXGI抓屏优化扩展:鼠标功能+数据获取+多显示器捕获(屏幕共享源码) 5611
  • ffmpeg中音频解码方法(附代码)+ffmpeg音频解码播放速度快的问题(随手笔记,以供查阅) 5565

分类专栏

  • MP3 7篇

最新评论

  • 关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要

    beifangdelang_3389: 感谢作者分享,研究了下,h264_amf 低延迟 对应av_opt_set(c->priv_data, "usage", "ultralowlatency", 0); 还有个问题,ffmpeg h264_amf初始化会先尝试dx11,好像dx11就是会导致缓存一帧,强制使用dx9再改下recvpack流程可以做到不延迟

  • dxva2+ffmpeg硬件解码(Windows)重要笔记2

    杭电羊皮卷: 博主您好,我有个问题想要请教一下您,就是我想要在Windows平台下实现硬件加速解码,然后直接在gpu上进行缩放,混屏,叠加水印,然后进行编码,需要什么样的技术可以实现,能否指明方向

  • 关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要

    周星星的星: 这是编码,不是解码表情包

  • 关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要

    shengutong9765: qsv 解码设置了av_opt_set(pCodecCtx->priv_data,"async_depth","1",0); 还是比cpu 解码要慢一秒

  • 关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要

    周星星的星: 作者笔误,正确的英伟达硬件编码字符串为h264_nvenc,而不是h264_cuvid😂😂

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • dxva2+ffmpeg硬件解码(Windows)终结发布
  • 关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要
  • 图像处理算法大全(基于libyuv或IPP)----RGB32(ARGB)转成yuv420,RGB24,nv12,yuv422集合
2023年4篇
2022年3篇
2021年1篇
2020年7篇
2019年5篇
2018年16篇
2017年8篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周星星的星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家佛山黑色小型玻璃钢花盆商丘玻璃钢卡通雕塑厂家哪家好阜阳人物卡通玻璃钢雕塑信阳玻璃钢艺术雕塑价格价钱户外玻璃钢雕塑方法玻璃钢九龙壁浮雕雕塑开原玻璃钢人物雕塑东营玻璃钢人物雕塑价格北京周年庆典商场美陈费用肇庆欧式玻璃钢卡通雕塑梅州玻璃钢动物雕塑销售价格漯河制作玻璃钢雕塑厂选哪家河北环保玻璃钢雕塑多少钱方山玻璃钢花盆花器重庆商场节庆美陈雕塑吉林欧式玻璃钢雕塑价位古代玻璃钢名医雕塑厂家郑成功玻璃钢人物雕塑批发珠海动漫玻璃钢卡通雕塑梅州玻璃钢艺术雕塑张家界动物玻璃钢雕塑安装广西玻璃钢动物雕塑小区景观昆明玻璃钢雕塑厂家直供合肥玻璃钢校园雕塑玻璃钢雕塑奶牛市政玻璃钢雕塑厂家生产基地西安玻璃钢雕塑厂家电话福建秋季商场美陈有哪些广东玻璃钢动物雕塑艺术摆件肇庆玻璃钢花盆厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化