问题标签 [guitar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
116 浏览

c# - 如何从 C#(GuitarPro 文件)中的 alphatab 分数生成 midi

我想用 C# 中的 AlphaTab 项目创建一个 midi 文件。

0 投票
1 回答
17 浏览

java - Java:与 Karplus-Strong 方程相关的方程的方法不返回预期结果;原因不明

在提示的第 1 部分中,我希望将一个方程集成到 Java 中以获得一个周期 (T) 的值。等式如下:T = FS / (440 * (2 ^(h/12))

笔记:

FS = 采样率,即 44100 / 1。

h = 半步,由用户提供。

这个等式的一个例子是:44100 / (440 * (2 ^(2/12)) = 89.3

我写的代码如下:

但是当我使用 h = 2, T = 100.0 而不是预期的 89.3 运行这段代码时,我不确定问题是什么。有什么想法吗?

0 投票
1 回答
55 浏览

java - 如何让我的 Java 程序在读取某个频率后立即停止捕获音频?

我正在 netbeans IDE 上用 Java 创建一个吉他调音器,我希望我的程序在读取到某个频率后立即停止捕获实时音频。下面的代码开始音频捕获,但立即停止。例如,我希望它在达到 Low E 弦的频率时立即停止。到目前为止,我已经使用此网站寻求帮助:https ://docs.oracle.com/javase/tutorial/sound/capturing.html

0 投票
1 回答
26 浏览

android - 在 android studio 的设计器窗口中滚动图片

我要滚动的图像

我有这个吉他指板图像,我想在上面放置点,但 android studio 的设计师不允许我滚动它来放置它们。这是一张大图,因此无法一次显示整个内容,需要在设计器中滚动并使用 java 以编程方式滚动(我已经在使用后者)。

这是我的简单 xml 代码

在此处输入图像描述

这是在任何人想要尝试复制时使用的图像。我在 Android Studio 4.0.1 上,模拟器运行的是 Android 9.0 Wear OS。

如您所见,它在 xml 中翻转了 90 度,这使得它更难一些。我不得不居中裁剪它,因为它不会让我在不离开屏幕的情况下使用高度和宽度参数来增加它的大小。图像可以使用 java OnTouchListener 很好地滚动,尽管有点草率。对此,我们深表感谢任何帮助。

0 投票
0 回答
35 浏览

python - 如何从吉他标签中捕捉事件(拨弦)?

我写信给你是为了获得关于实现特定音乐目的的方法的建议。

我有一个项目,我想将吉他手的“右手”自动化和自动化,这意味着,不是用手拨弦,而是用拨片,连接到步进电机(6 个拨片连接到 6 个步进电机,每个每个字符串上一个)。然后我仍然会用自己的左手在脖子上弹奏。

为此,我不想对其进行硬编码,而是创建一个灵活的算法,这意味着我想首先在 TuxGuitar 之类的编辑器中创建吉他标签,然后在每次字符串时获取事件拨动,并触发相应的电机(在python,C++ ..)。

问题是我正在努力寻找正确的方法。首先我找到了 PyGuitarPro,但据我了解,它只是读取和操作文件,而没有时间和回放的概念。然后我正在考虑将 Tab 从 TuxGuitar 导出到 midi,然后使用另一个库来读取这些事件,但是通过导出到 midi,我丢失了吉他标签的信息,它告诉我哪个弦被弹奏(作为单个音符可以可以在吉他上的不同琴弦上演奏)。

你有一个很好的起点来实现这一目标吗?

谢谢!

安托万

0 投票
0 回答
17 浏览

javascript - 将我的吉他信号转换为键盘按键的问题

对于我正在制作一个导入浏览器游戏的网站的项目,很酷的部分是,它们可以使用吉他而不是普通的键盘键来玩。到目前为止,在 Javascript 中我得到了音调,并且使用 RobotJS(使用 NodeJS)我基本上使用 if 语句将它们转移。使用 RobotJS,我可以说,例如,如果 ...pitch 然后按“e”,我找不到更好的库,所以我使用了这个。另外,我使用 websockets 将我的吉他数据发送到 NodeJS。

我的问题是,当我敲击一个字符串时,声音响起,这意味着某个键的 if 语句被调用多次而不是 1 次。例如,在 Subway Surfers 中,它不是向左走 1 次,而是想要走4次,导致我不及格。

调用 IF 语句后,我希望它停止。就像每次我敲击某个音符时,我只希望使用 IF 语句一次。

这是我的代码,任何提示都非常感谢!!!

我的代码基本上将我的吉他输入转换为按键:

我试图创建一个函数来打破 if 语句,如果语气与已经调用的语气相同,它确实有效,有点,但不够好。

如果有人有任何提示或想法,以便每次我击中正确的音符时,只有 1 次 if 语句被激活,我会非常、非常、非常高兴!

周末愉快。

0 投票
0 回答
32 浏览

python - 从音品号、弦号和拾音器设置中查找低音吉他的音高

我想找到 4 弦贝斯吉他的音高。我有以下可用信息-

  1. 字符串编号(1-E、2-A、3-D、4-G)
  2. 品格数
  3. 拾音器设置(1 琴颈拾音器、2 琴颈和琴桥拾音器、3 琴桥拾音器)

我不知道如何映射这些信息来找到音高。需要一些帮助。

0 投票
1 回答
13 浏览

guitar - 无法调用 org.herac.tuxguitar.action.TGActionContext.setAttribute

在磁盘空间错误之后,它从 linux 上的 tuxguitar 给了我这个错误:

无法调用“org.herac.tuxguitar.action.TGActionContext.setAttribute(String, Object)”,因为“actionContext”为空

有人可以帮助我吗?

0 投票
1 回答
57 浏览

embedded - 在 STM32 上实现 Tap Tempo 功能的最简单方法是什么?

我正在使用 STM32F411RE Nucleo 板为数字吉他效果踏板开发一些代码,并且我需要能够实现节拍速度。

一般来说,我对编码相当缺乏经验。有谁知道简单地按两次 GPIO 按钮、测量两次按下之间的间隔并将该值分配给参数的最简单方法?或者至少只是在那个延迟时间间隔并让 LED 闪烁?假设这将使用某种中断。

谢谢!

编辑:我将 STM32CubeIDE 与 HAL(硬件抽象层)库一起使用。通过使用这个库,我能够轻松读取输入并将输出发送到各种 GPIO 引脚。我也在使用一个外部 8MHz 时钟。