标签: guitar

标准吉他歌词/和弦包围的正则表达式

我试图在标准文本文档中为和弦添加方括号,格式化为吉他/歌词,使它们与OnSong应用程序更兼容.我有规则,但不明白如何匹配所有可能的组合.规则是:

  • 和弦将以单一资本AG开始
  • 如果首都AG后跟一个空格,换行符,#,b,m,sus,aug,dim,maj,min或/我想读到下一个空格或换行符(因为标准吉他格式化) ,像F#min/E这样的和弦是可能的,而不是费心分开它,我只想继续阅读直到太空)
  • 如果首都AG后跟另一个不在上面列表中的字母(例如名称"Ed"不匹配),则正则表达式不匹配
  • 奖励积分如果你能弄清楚如何使"小世界"不匹配,因为"A"这个词不是有效的和弦.
  • 超级奖励积分,如果替换可以删除之前(当没有开始一行)和新的括号后(为了保持对齐) - 我已经指出,这将在关闭的和弦上失败...这完全是可以接受的.

一些注意事项:这是一个帮助脚本......不需要完美.我现在手工做,所以偶尔的错过也没关系.我不是要解析和弦的细节,只是将它们包裹在[]中.虽然标准布局是1行和弦,1行歌词,但这不能指望,所以我知道有些场景偶尔会失败.

测试源(和弦是随机用于测试目的,以防任何音乐家打算在可怕的音乐上插话):

Db    Dsus4/F#           A            Cbmin/C
A man can't be asked for that much to do
D/F#        G         A           D#/E
And I can't sweep you off of your feet
Run Code Online (Sandbox Code Playgroud)

应该变成:

[Db]  [Dsus4/F#]         [A]          [Cbmin/C]
A man can't be asked for that much to do
[D/F#]      [G]       [A]         [D#/E]
And I can't sweep you off of your feet
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试让我接近:

([A-G]((?!\s).)*)
Run Code Online (Sandbox Code Playgroud)

但是那些从那些字母开始的单词也是如此.我现在已经四处走动,只能到达:

\b([CDEFGAB](#|##|b|bb|sus|maj|min|aug)?\b)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用时,[^\s+]我会得到更多混合结果,这些结果可以提取我想要的东西,但也会丢弃我需要的东西.我想我只是在脑子里.任何帮助都会非常感激,任何有关它如何工作的解释都会更好.虽然我想要一个解决方案,但我也非常想解释它为什么有效......

regex guitar

6
推荐指数
1
解决办法
1035
查看次数

如何从FFT检测弦音

我得到了傅立叶变换的频谱。它看起来像这样: 路过的警察创建的声音频谱图
警察刚从附近经过

颜色代表强度。
X 轴是时间。
Y 轴是频率 - 其中 0 位于顶部。

虽然吹口哨或警笛只留下一点痕迹,但许多其他音调似乎包含很多谐波频率。

EHGDAE 调音吉他的声音频谱图 电吉他直接插入麦克风(标准调音)

真正糟糕的是,正如你所看到的,没有主要的强度——有 2-3 个频率几乎相等。
我编写了一个峰值检测算法来突出显示最重要的峰值:

    function findPeaks(data, look_range, minimal_val) {
      if(look_range==null)
        look_range = 10;
      if(minimal_val == null)
        minimal_val = 20;
      //Array of peaks            
      var peaks = [];
      //Currently the max value (that might or might not end up in peaks array)
      var max_value = 0;
      var max_value_pos = 0;
      //How many values did we check without changing the max value
      var smaller_values = 0;
      //Tmp variable for performance …
Run Code Online (Sandbox Code Playgroud)

audio fft guitar tuner

5
推荐指数
1
解决办法
1451
查看次数

Python:读取 GuitarPro (.gp5) 文件

我是这里写问题的新手,所以请随时指出我如何提高未来问题的质量!

编辑:按照评论中的要求包含更多代码

我正在尝试将 GuitarPro 文件读入 python 中。这些文件本质上包含歌曲的乐谱,但包含比 MIDI 文件更多的信息。

我想将笔记和笔记的持续时间解析为例如列表结构。此外,我希望其他效果也可以从 GuitarPro 文件中解析出来,例如弯曲、滑动、锤击等。

我一直在尝试使用库PyGuitarPro,但陷入困境:

import guitarpro
import os

# 'wet_sand.gp5' is the guitar pro file
parsed_song = guitarpro.parse('wet_sand.gp5')
song = guitarpro.gp5.GP5File(parsed_song,encoding='UTF-8')
song.readSong()
Run Code Online (Sandbox Code Playgroud)

ReadSong()我从(此处的文档)收到以下错误:

Traceback (most recent call last):

  File "<ipython-input-15-e1663229852d>", line 8, in <module>
    song.readSong()

  File "C:\Python27\lib\site-packages\guitarpro\gp5.py", line 62, in readSong
    song.version = self.readVersion()

  File "C:\Python27\lib\site-packages\guitarpro\iobase.py", line 114, in readVersion
    self.version = self.readByteSizeString(30)

  File "C:\Python27\lib\site-packages\guitarpro\iobase.py", line 97, in readByteSizeString
    return self.readString(size, self.readByte())

  File "C:\Python27\lib\site-packages\guitarpro\iobase.py", line 47, …
Run Code Online (Sandbox Code Playgroud)

python guitar

5
推荐指数
1
解决办法
1975
查看次数

如何在Android上合成乐器的声音(钢琴,鼓,吉他等......)

有人可以给我一些关于如何合成乐器声音的方向(钢琴,鼓,吉他等......)

我甚至不确定该寻找什么.

谢谢

audio android synthesis piano guitar

4
推荐指数
1
解决办法
5265
查看次数

Python中的吉他字符串代码?

我是Python的新手,但我真的很想制作一个可以模拟吉他弦的代码.我该怎么做呢?或者至少我将如何开始这样做?任何帮助表示赞赏!

谢谢!

编辑:

我想在播放不同的弦乐,音符等时看到声波.当两个不同的弦乐正在播放时,我也对声波感兴趣,当它们是不和谐和辅音音符时,它会如何变化.我感兴趣的另一件事是,当弦乐没有被弹拨(共鸣)时,弦乐会有时会振动.

任何帮助表示赞赏,谢谢!

python vpython guitar

4
推荐指数
1
解决办法
926
查看次数

如何从FFT获得基频?

我正在开发一把闪光吉他,发现麦克风数据频率的唯一明显方法似乎是使用 FFT。然而,经过大约 30 个小时的研究后,我无法找到最好的方法。我应该使用谐波积谱 (HPS)、倒谱还是最大似然?调谐器必须显示 25 到 3000Hz 的频率。

另外,如果有人知道一些准备找到基本频率的开源代码,请告诉我。我可以将它翻译成 ActionScript。

谢谢!

fft microphone frequency frequency-analysis guitar

2
推荐指数
1
解决办法
2万
查看次数