- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用模拟传感器作为按键来制作Arduino钢琴。但是,所有键都产生相同的音调,所产生的音调不会出现在程序中的任何位置。同时按下多个键时,该音调会在两个期望的音调之间交替,并且不会产生不确定的音调。我检查了按下键时是否还激活了其他命令,并且只有在按下相应的键时它们才会激活。
#define Note_C 65.41 //Hz
#define Note_D 73.42 //Hz
#define Note_E 82.41 //Hz
#define Note_F 87.31 //Hz
#define Note_G 98 //Hz
#define Note_A 110 //Hz
#define threshold 1000
const int speaker=3;
const int B_1=A0; // pins A0-A5 have sensors attatched to them
const int B_2=A1; // pins 13-8 are being used to power each sensor
const int B_3=A2;
const int B_4=A3;
const int B_5=A4;
const int B_6=A5;
const int P_1=13;
const int P_2=12;
const int P_3=11;
const int P_4=10;
const int P_5=9;
const int P_6=8;
int val_1=0;
int val_2=0;
int val_3=0;
int val_4=0;
int val_5=0;
int val_6=0;
void setup()
{
Serial.begin(9600);
pinMode(P_1, OUTPUT);
digitalWrite(P_1, HIGH);
pinMode(P_2, OUTPUT);
digitalWrite(P_2, HIGH);
pinMode(P_3, OUTPUT);
digitalWrite(P_3, HIGH);
pinMode(P_4, OUTPUT);
digitalWrite(P_4, HIGH);
pinMode(P_5, OUTPUT);
digitalWrite(P_5, HIGH);
pinMode(P_6, OUTPUT);
digitalWrite(P_6, HIGH);
}
void loop()
{
analogRead(B_1); // checks each sensor value and stores it
delay(1); // each value must be checked twice with a
val_1=analogRead(B_1); // delay inbetween to provide consistant values
analogRead(B_2);
delay(1);
val_2=analogRead(B_2);
analogRead(B_3);
delay(1);
val_3=analogRead(B_3);
analogRead(B_4);
delay(1);
val_4=analogRead(B_4);
analogRead(B_5);
delay(1);
val_5=analogRead(B_5);
analogRead(B_6);
delay(1);
val_6=analogRead(B_6);
if (val_1 < threshold)
{
tone (speaker, Note_C);
Serial.println("1");
}
else
{
noTone (speaker);
}
if (val_2 < threshold)
{
Serial.println("2");
tone (speaker, Note_D);
}
else
{
noTone(speaker);
}
if (val_3 < threshold)
{
Serial.println("3");
tone (speaker, Note_E);
}
else
{
noTone (speaker);
}
if (val_4 < threshold)
{
Serial.println("4");
tone (speaker, Note_F);
}
else
{
noTone (speaker);
}
if (val_5 < threshold)
{
Serial.println("5");
tone (speaker, Note_G);
}
else
{
noTone (speaker);
}
if (val_6 < threshold)
{
Serial.println("6");
tone (speaker, Note_A);
}
else
{
noTone (speaker);
}
noTone(speaker);
}
最佳答案
我怀疑问题在于,每次循环时,您都在不断激活和停用音调。我认为更好的方法是在激活特定输入时启动音调,并继续播放直到禁用输入为止。 (您不能使用tone()
同时播放多个音符。)
您需要将当前正在播放的音调的编号存储在变量中。这样的事情可能会起作用:
int currentTone = 0;
void loop()
{
// (take your analog readings here)
if (val_1 < threshold)
{
if (currentTone == 0)
{
tone(speaker, Note_C);
currentTone = 1;
}
}
else if (currentTone == 1)
{
noTone(speaker);
currentTone = 0;
}
if (val_2 < threshold)
{
if (currentTone == 0)
{
tone(speaker, Note_D);
currentTone = 2;
}
}
else if (currentTone == 2)
{
noTone(speaker);
currentTone = 0;
}
// etc.
}
关于audio - arduino tone命令问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069702/
我正在尝试使用tone.js在Angular 9中实现一个简单的节拍器,但是在执行过程中似乎正在发生某种类型的心律失常... 我不知道我是否在实现中遗漏了一些东西。 这是我的代码: playM
简而言之,按下按钮我想使用 PolySynth 弹几个音符和 Sequence .如果用户反复按下按钮,我希望播放的内容停止,然后重新开始。这很可能是因为信封的衰减/维持。 问题:无论我尝试什么,我都
我有一个使用 Tone.js 在循环上运行的简短、交叉渐变的环境声音剪辑。麻烦的是,在一个播放的结束和下一个播放的开始之间有一个听得见的间隙。 我知道可以使用音频 Sprite 在 Howler.js
我正在与 CJKLIB 合作,使用 getReadingForCharacter 将中文字符转换为拼音。但是,有什么办法吗 readings = cjk.getReadingForCharacter(
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
你能帮我看看如何使用 SVG 在下面的链接上实现棕褐色调吗? My Sepia Tone made with Photoshop's Color Balance 我试过下面的代码:
我是 Tone.js 的新手,并且对 Gain 对象有疑问。我在 html 中设置了一个音量 slider ,如下所示: Play Stop Vol: 4 单击“播
In this ramping example在 Tone.js 中,斜坡的作用不是“平滑”,而是几乎像延迟一样。似乎当它收到一个值时,它不会开始向那个值倾斜,而是会在当前值之后安排另一个斜坡。 当您
我正在尝试创建一个复选框 ($('#button')),其操作会根据 播放器 的状态(音频是否为播放或不播放)使用 Tone.js 和 jQuery。 因此,逻辑是,如果音频已经启动,则复选框的操作只
我一直在研究人们的 Java 合成器,但不知道如何生成他们程序的简单版本。我的目标是用 java 创建一个简单的测试音,用户可以通过按某些键来更改它。例如,按“r”将提高幅度,或“f”将增加频率。我只
我正在构建一个由 Tone.js 提供支持的小型网络应用程序,用于训练自己弹奏钢琴的关键(可能还有其他一些练习)。到目前为止,您可以选择根音符和音阶类型并单击播放,它将循环播放该音阶。还有一个键盘/合
我正在开发一个网络游戏,点击一个按钮应该连续播放两个音符。我可以使用上传的音频文件和 audio.onended 回调来完成。 function playMusic(){ audio.src
我使用 Codepen 编写了一个简单的合成器。它实际上可以工作并且做了我期望它做的事情(在 Codepen 上和网站上的 Debug模式下)。不幸的是,它在我的本地计算机上不起作用:如果我下载代码并
我想用代码控制 iPad 屏幕的亮度和颜色。我可以使用以下方式管理亮度: UIScreen.main.brightness 但是否可以通过编程方式访问和禁用“True Tone”和“Night Shi
我想在音符播放完毕后使用 tone.js 更新我的 UI const now = Tone.now() synth.triggerAttack("G3", now); synth.triggerRel
我正在尝试在 ESM 模块上使用 tone.js。 (我可以在带有 bundler 的“commonjs”中毫无问题地使用它) 在我的html中 和 tests.js: import * as To
找不到如何提出关于 Steve Pomeroy 发布的“使用 Android 播放任意音调”的问题,所以开始了一篇 here . 是否有任何代码需要添加到 xml 文件中? 无法让 sim 发出声音。
我想同时完成两件事: 1) 更改播放速率声音文件到 1/2 速度 2) 降低间距 由五分之一 最后,我不想使用单独的按钮来播放结果 将其连接到音频标签 并使用那里的播放按钮。 下面是迄今为止我使用 T
我正在尝试在 Laravel 应用程序中使用 Tone Analyzer API。无论我尝试什么,我总是得到相同的响应 {"code":401, "error": "Unauthorized"}。我怀
我想实现一个基本的音调播放器来从文件夹加载文件并通过按 ReactJS 中的按钮来播放它。 import React, { Component, PropTypes } from 'react'; i
我是一名优秀的程序员,十分优秀!