C++音乐播放系统
C++音乐播放系统
- 音乐的好处
- c++发出声音
- 乐谱与赫兹对照
- 把歌打到c++上

学习c++的同学们都知道,c++是一个一本正经的编程语言,因该没有人用它来做游戏、做病毒、做…做…做音乐播放系统吧!!
音乐的好处
-
提升情绪:音乐能够影响我们的情绪。快节奏的音乐能够增加兴奋和活力,而慢节奏的音乐则能够帮助放松和减压。选择适合自己心情的音乐,可以帮助我们调整情绪状态。
-
减轻压力:听音乐可以帮助释放压力。研究发现,愉悦的音乐能够降低我们的应激反应,减轻紧张和焦虑感。
-
提高认知能力:学习音乐可以促进大脑的发育和认知能力的提高。音乐的学习过程需要我们使用多个感官和认知技能,如记忆、注意力和空间感知等。
-
增强专注力:音乐可以帮助我们集中注意力。一些研究表明,在进行需要专注的任务时,背景音乐可以提高工作效率和注意力的集中程度。
-
促进社交:音乐有助于建立社交联系。参与音乐活动,如合唱团、乐队或音乐课程,能够与他人分享共同的兴趣爱好,增强社交关系。
-
增强记忆力:音乐与记忆有很强的联系。通过将信息与音乐进行关联,能够帮助记忆和提高记忆力。
-
提高创造力:音乐可以激发创造力。音乐的创作和演奏过程中,我们可以发挥自己的想象力和创造力,表达自己的情感和思想。
既然音乐这么有用,我忍不住用c++做一个音乐播放系统
c++发出声音
c++是一种功能强大、灵活且高效的编程语言,适用于各种应用场景。它在计算机科学和软件工程领域有着广泛的应用,是一门值得学习和掌握的编程语言。它提供了丰富的特性和工具,使得开发人员能够编写高质量、可维护和高性能的代码。然而,由于其复杂性和灵活性,学习和掌握c++可能需要一定的时间和经验。
c++如何在不加入任何特殊库的情况下发出声音呢?
方法十分的简单:
#include <Windows.h>
int main() {Beep(440, 1000); // 发出440Hz的声音,持续1秒钟return 0;
}
Beep函数!!
Beep函数的作用很简单,就是发出不同高低、不同长短的嗡鸣声。但要想让这个东西形成音乐,好像还差点东西。。。
乐谱与赫兹对照
我在网上经过20分钟的查找,找到了一个十分可靠的赫兹与C调的对照表:

因此我们可以做三个数组,分别代表低音、中音以及高音,再将这些数据打上去,得到了下面是三个数组
int s1[2][10]={{0,262,294,330,349,392,440,494},{0,277,311,-99,370,415,466,-99}};int s2[2][10]={{0,523,587,659,698,784,880,988},{0,554,622,-99,740,831,932,-99}};int s3[2][10]={{0,1046,1175,1318,1397,1568,1760,1976},{0,1109,1245,-999,1480,1661,1865,-999}};
这样在进行Beep操作就简单多了~~
把歌打到c++上
这里属于暴力打代码,我就把代码放在下面了~~
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int s1[2][10]={{0,262,294,330,349,392,440,494},{0,277,311,-99,370,415,466,-99}};int s2[2][10]={{0,523,587,659,698,784,880,988},{0,554,622,-99,740,831,932,-99}};int s3[2][10]={{0,1046,1175,1318,1397,1568,1760,1976},{0,1109,1245,-999,1480,1661,1865,-999}};void cppmusic()
{Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],800);Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],800);Beep(s2[0][3],400);Beep(s2[0][5],400);Beep(s2[0][1],600);Beep(s2[0][2],200);Beep(s2[0][3],1600);Beep(s2[0][4],400);Beep(s2[0][4],400);Beep(s2[0][4],600);Beep(s2[0][4],200);Beep(s2[0][4],400);Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],200);Beep(s2[0][3],200);Beep(s2[0][3],400);Beep(s2[0][2],400);Beep(s2[0][2],400);Beep(s2[0][1],400);Beep(s2[0][2],800);Beep(s2[0][5],800);Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],800);Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],800);Beep(s2[0][3],400);Beep(s2[0][5],400);Beep(s2[0][1],600);Beep(s2[0][2],200);Beep(s2[0][3],1600);Beep(s2[0][4],400);Beep(s2[0][4],400);Beep(s2[0][4],600);Beep(s2[0][4],200);Beep(s2[0][4],400);Beep(s2[0][3],400);Beep(s2[0][3],400);Beep(s2[0][3],200);Beep(s2[0][3],200);Beep(s2[0][5],400);Beep(s2[0][5],400);Beep(s2[0][4],400);Beep(s2[0][2],400);Beep(s2[0][1],1200);
}int main()
{cppmusic();return 0;
}
另外想要循环播放也很简单,只要加个循环就行了~~
相关文章:
C++音乐播放系统
C音乐播放系统 音乐的好处c发出声音乐谱与赫兹对照把歌打到c上 学习c的同学们都知道,c是一个一本正经的编程语言,因该没有人用它来做游戏、做病毒、做…做…做音乐播放系统吧!! 音乐的好处 提升情绪:音乐能够影响我们…...
Django笔记之log日志记录详解
以下是一个简单的 logging 模块示例,可以先预览一下,接下来会详细介绍各个模块的具体功能: LOGGING {version: 1,disable_existing_loggers: False,formatters: {verbose: {format: %(levelname)s %(message)s,}},handlers: {file_1: {leve…...
vue局部打印多页面pdf
技术背景 html打印程pdf,使用的官方提供的window.print()打印的样式 media print {} 方法一 const printContent this.$refs.bodyright;var textInput printContent.getElementsByTagName("input");for (var i 0; i < textInput.length; i) {textInput[i].se…...
指定或降低Rust 工具链的版本
要更改 Rust 工具链的版本,您可以使用以下命令之一: rustup default stable:使用 stable 版本的 Rust 工具链作为默认版本。rustup default beta:使用 beta 版本的 Rust 工具链作为默认版本。rustup default nightly:使…...
数据驱动成功:商城小程序分析与改进
在当今数字化时代,商城小程序成为了企业与消费者之间互动的重要途径。然而,一个成功的商城小程序不仅仅是一个购物平台,更需要通过数据分析不断进行改进和优化,以提升用户体验和营销效果。本文将深入探讨如何利用数据驱动的方式进…...
基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理
目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 长短期神经网络的原理 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期…...
Docker环境安装elasticsearch和kibana
一、安装elasticsearch 创建es-network,让es、kibana在同一个网段: docker network create --driverbridge --subnet192.168.1.10/24 es-network运行elasticsearch docker run -d \ --name elasticsearch \ # 容器名 --hostname elasticsearch # 主机…...
【剖析STL】vector
vector的介绍及使用 1.1 vector的介绍 cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是…...
Redis、Memcache和MongoDB的区别
>>Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度…...
2023中大ACM游记
游记 中午快十二点时才到了广州六中,在附近吃了塔斯汀汉堡,味道还不错。 十二点半才卡点到了考场,本以为来晚了,但老师说比赛时间延迟,十二点五十才开场。 三个人用一台电脑,这种比赛方式还是第一次遇到…...
记一次线上OOM事故
OOM 问题 linux内核有个机制叫OOM killer(Out-Of-Memory killer),当系统需要申请内存却申请不到时,OOM killer会检查当前进程中占用内存最大者,将其杀掉,腾出内存保障系统正常运行。 一般而言,一个应用的内存逐渐增加&…...
Learning to Super-resolve Dynamic Scenes for Neuromorphic Spike Camera论文笔记
摘要 脉冲相机使用了“integrate and fire”机制来生成连续的脉冲流,以极高的时间分辨率来记录动态光照强度。但是极高的时间分辨率导致了受限的空间分辨率,致使重建出的图像无法很好保留原始场景的细节。为了解决这个问题,这篇文章提出了Sp…...
怎么使用手机远程控制Win10电脑?
可以使用手机远程控制电脑吗? “近期,我将出差一段时间。问题是,我希望能够从很远的地方浏览家里电脑上的一些东西,但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗? ” 当然&am…...
W6100-EVB-PICO 做UDP Client 进行数据回环测试(八)
前言 上一章我们用开发板作为UDP Server进行数据回环测试,本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段: 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…...
Typora 相对路径保存图片以及 Gitee 无法显示图片
目录 Typora 相对路径保存图片 Gitee 无法显示图片 Typora 相对路径保存图片 Step1:修改 Typora 的偏好设置 自动在当前目录创建名为 "./${filename}.assets" 的文件夹粘贴图片到 md 中时,图片会自动另存到 "./${filename}.assets&qu…...
深入探索:Kali Linux 网络安全之旅
目录 前言 访问官方网站 导航到下载页面 启动后界面操作 前言 "Kali" 可能指的是 Kali Linux,它是一种基于 Debian 的 Linux 发行版,专门用于渗透测试、网络安全评估、数字取证和相关的安全任务。Kali Linux 旨在提供一系列用于测试网络和…...
Python 实现语音转文本
Python 实现语音转文本 Python可以使用多种方式来实现语音转文本,下面介绍其中两种。 方法一:使用Google Speech API Google Speech API 是 Google 在 2012 年推出的一个 API,可以用于实现语音转文本。使用 Google Speech API 需要安装 Sp…...
使用DSA、ECDSA、Ed25519 和 rfc6979_rust实现高安全性的数字签名
第一部分:背景和DSA简介 在数字世界中,确保数据的真实性和完整性是至关重要的。一个有效的方法是使用数字签名。在这篇文章中,我们将探讨四种流行的加密签名算法:DSA、ECDSA、Ed25519 和 rfc6979_rust。我们将重点讲解它们的基础…...
“深入探索JVM内部机制:解密Java虚拟机的奥秘“
标题:深入探索JVM内部机制:解密Java虚拟机的奥秘 摘要:本文将深入探索Java虚拟机(JVM)的内部机制,介绍JVM的基本原理、运行时数据区域以及垃圾回收机制,并通过示例代码解释这些概念。 正文&am…...
css3新增属性
文章目录 css3新增属性box-shadowborder-radius设置椭圆 position: sticky;渐变背景线性渐变可重复的渐变背景 径向渐变可重复的渐变背景 过渡分属性 动画关键帧与transition的关系demo 变形平移使用 旋转使用 其他使用立体效果perspective元素位于3D空间还是平面中 缩放变形的…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
