0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样翻译在Arduino上播放的歌曲

454398 来源:网络整理 作者:网络整理 2019-12-09 16:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:MXL文件

怎样翻译在Arduino上播放的歌曲

我发现的MXL文件最佳来源是musescore.com,大量的收藏用户提交了乐谱增强音乐。 MXL文件是压缩的xml文件,其中包含语音,乐器,音符和持续时间定义。我下载了Riley Apperson的这个版本的Stranger Things主题曲。

可以下载许多音乐格式,但是MXL包含转换为Arduino可以播放的音乐所需的信息。

上面的图片2显示了以PK开头的内容,这是文件被PK Zip压缩后的立即泄漏。

图片3是未压缩的相同文件,包含标准XML格式。

步骤2:MXL文件数据

在数据中有几件事情要看。请记住,我们必须使音符和整体歌曲保持简单,因为没有比Arduino更强大的功能或其他一些技巧,我们一次只能演奏一个音符。

音符步骤-E

音符八度音阶-3

持续时间-1ms ish

声音-语音将在彼此之上分层叠加。您可能需要找到歌曲的简单版本,或者挑选出想要的每种声音的哪个部分。

我获取了此信息,使用C#进行了解析并将其放入arduino代码中

步骤3:Arduino代码

从MXL文件中解析数据之后,我将其放入arduino代码中。必须播放持续时间才能使歌曲以您的感觉呈现出来。您可以找到我在GitHub上编写的Arduino代码。

int notes [] = {NOTE_C3,NOTE_E3,NOTE_G3,NOTE_B3,NOTE_C4

int持续时间[] = {750、750, 750、750、750

现在看来,我看到多维数组会更有效。音符和持续时间相对应,因此,如果有5个音符,则应该有5个持续时间。

每个音符都定义为一个音调

#define NOTE_B0 31

#define NOTE_C1 33

#define NOTE_CS1 35

#define NOTE_D1 37

然后循环遍历数组中的每个音符,然后使用上面显示的音符定义进行播放。

tone(8,notes [thisNote],noteDuration);

请注意,Arduino Uno有文件大小限制,因此必须缩短注释量以达到该限制。我编写的应用程序有一个音符限制器,可以更改它以满足您的需求。

步骤4:C#

我编写了一个用C#编写的小型应用程序以解压缩MXL,解析出音乐数据,然后将arduino格式输出到文本区域。该应用程序的源代码位于GitHub上。

请注意,Arduino Uno有文件大小限制,因此必须缩短注释量才能达到该限制。我编写的应用程序具有一个音符限制器,可以对其进行更改以满足您的需求。

第5步:Arduino接线

这非常简单。我只是使用了对讲机中的压电体,然后将“正极”(红色)连接到引脚8,将“负极”(黑色)连接到地面。

步骤6:音频预览

这是arduino产生的音频的预览。

步骤7:文件

所有需要的文件都在GitHub上https://github .com/MrRedBeard/DotNet-MXL-Parsing-for-Arduino

只需在此处下载MXL Parser。

Arduino代码在一个文件中,但需要在第50行上分为2。audio.ino和pitches.h。也可以从GitHub上获取该代码。

Rangerley Apperson在musescore.com上提供的Stranger Things主题曲MXL示例文件

步骤8:应用程序的未来

首先,我要说的是我不介意帮助他人进行他们的项目,但是就应用程序而言,除非有其他项目出现,否则我不打算对它做太多其他事情。话虽如此,如果其他人想贡献和/或与之合作,我将很乐意加入并竭尽所能。

如果您想做出贡献,请访问GitHub https://github.com/MrRedBeard/DotNet-MXL-Parsing-for-Arduino并开始使用。向我发送消息或只是开始将代码发布到新分支,其中包含您所做的更改的详细信息。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195977
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    WEMOS D1 R32 用Arduino IDE 点灯程序 及搭建

    https://v.kuaishou.com/J43p6seX D1 R32 "Arduino IDE "闪烁 该作品快手被播放过1次,点击链接,打开【快手】直接观看!
    的头像 发表于 10-27 14:51 238次阅读

    HarmonyOS中使用AVPlayer播放流媒体

    HarmonyOS 中,使用 AVPlayer 播放流媒体,不是“能播就行”,而是要“稳、准、快、可控”。
    的头像 发表于 10-15 11:45 1380次阅读
    <b class='flag-5'>在</b>HarmonyOS中使用AVPlayer<b class='flag-5'>播放</b>流媒体

    翻译失去网络,时空壶新T1翻译机开创首个离线模型赋能全球沟通新体验

    全球化交流日益紧密的当下,跨语言沟通工具的重要性愈发凸显。近日,时空壶推出的T1翻译机凭借其强大的离线模型与便捷应用,成为市场焦点,为人们跨国交流场景中带来前所未有的便利。时空壶T1翻译
    的头像 发表于 09-08 16:52 910次阅读
    当<b class='flag-5'>翻译</b>失去网络,时空壶新T1<b class='flag-5'>翻译</b>机开创首个离线模型赋能全球沟通新体验

    如何在 NuMaker-IoT-M467 板使用 Arduino IDE 控制 Wi-Fi 模块?

    NuMaker开发板,有一个ESP-12F Wi-Fi模块;但是,Arduino IDE 中的 NuMaker UNO 包不提供该模块的相关控制。如果您希望
    发表于 09-04 08:28

    如何使用 M487 微控制器 (MCU) 通过 DAC SD 卡播放 WAV 文件声音?

    使用 M487 微控制器 (MCU) 通过 DAC SD 卡播放 WAV 文件声音
    发表于 08-20 06:05

    请问Vision Five2怎样安装openeuler24.03 LTS SP1?

    Vision Five2怎样安装openeuler24.03 LTS SP1?
    发表于 07-29 09:02

    蜻蜓FM开源“SmartXPlayer”音频播放组件,打造鸿蒙多端音频播放新引擎

    分布式能力和多线程架构,提供高性能、易集成的音频播放能力支持,助力开发者高效构建更顺滑、更智能、更便捷的音频播放体验。 当前,随着音频内容和智能设备的普及,传统播放多端适配、分布式
    的头像 发表于 07-21 16:31 439次阅读
    蜻蜓FM开源“SmartXPlayer”音频<b class='flag-5'>播放</b>组件,打造鸿蒙多端音频<b class='flag-5'>播放</b>新引擎

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    的发展,Arduino出现以前,虽然也有很多公司推广一些简单易用的可编程控制器,但是由于开发平台种类繁多,而且使用这些控制器基本都需要对电子技术、数字逻辑、寄存器等内容进行多方面
    发表于 05-13 09:28

    【开源获奖案例】基于T5L智能屏的音乐播放与歌词显示方案

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的音乐播放与歌词显示方案。该方案通过T5L串口与通用开发板、解码板进行数据交互,将解析完成的音频和歌词通过串口发送给智能屏,实现音乐播放、歌词显示、歌曲
    的头像 发表于 05-08 09:52 640次阅读
    【开源获奖案例】基于T5L智能屏的音乐<b class='flag-5'>播放</b>与歌词显示方案

    STM32开发板一般都会配置arduino接口,是不是基本也都会支持arduino

    STM32开发板一般都会配置arduino接口,是不是基本也都会支持arduino?这个在哪里可以查询开发板是否支持
    发表于 03-07 06:33

    海贝HiBy R1播放器体验

    之前分享过用接入便携耳放来提升音质,让手机端也能享受HiFi级的听感体验。这个方案对于没有数码播放器的初烧用户来说,确实是种非常高效的方法。 但缺点也是有的,比如歌曲存放需要占用手机存储空间,手机
    的头像 发表于 01-24 11:27 4684次阅读
    海贝HiBy R1<b class='flag-5'>播放</b>器体验

    AI助力实时翻译耳机

    你是否曾经因为语言障碍而无法与外国人顺畅交流?或者旅行中因为语言不通而错过了一些精彩的经历?现在,随着AI技术的发展,实时翻译耳机可以帮你轻松解决这些问题。 1 什么是实时翻译耳机 实时翻译
    的头像 发表于 01-24 11:14 3294次阅读
    AI助力实时<b class='flag-5'>翻译</b>耳机

    将基于PC的MP3播放器软件移植到ADSP-21262 SHARC处理器

    电子发烧友网站提供《将基于PC的MP3播放器软件移植到ADSP-21262 SHARC处理器.pdf》资料免费下载
    发表于 01-03 14:54 0次下载
    将基于PC的MP3<b class='flag-5'>播放</b>器软件移植到ADSP-21262 SHARC处理器<b class='flag-5'>上</b>

    DP83822IF怎样硬件配置成RMII接口?

    请问一下各位大神,DP83822IF怎样硬件配置成RMII接口,规格书上写的太复杂了,有没有简化的模型。谢谢
    发表于 12-19 06:08

    LLMWorld上线代码翻译新工具——问丫·码语翻译侠,快来体验!

    01. 工具介绍 aicode.llmworld.net 问丫·码语翻译侠 是一款由LLMWorld新推出的代码翻译工具,支持各种语言之间的翻译,包括计算机语言到自然语言。 02.
    的头像 发表于 12-09 11:11 1610次阅读
    LLMWorld上线代码<b class='flag-5'>翻译</b>新工具——问丫·码语<b class='flag-5'>翻译</b>侠,快来体验!