我试图在标准文本文档中为和弦添加方括号,格式化为吉他/歌词,使它们与OnSong应用程序更兼容.我有规则,但不明白如何匹配所有可能的组合.规则是:
一些注意事项:这是一个帮助脚本......不需要完美.我现在手工做,所以偶尔的错过也没关系.我不是要解析和弦的细节,只是将它们包裹在[]中.虽然标准布局是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+]
我会得到更多混合结果,这些结果可以提取我想要的东西,但也会丢弃我需要的东西.我想我只是在脑子里.任何帮助都会非常感激,任何有关它如何工作的解释都会更好.虽然我想要一个解决方案,但我也非常想解释它为什么有效......
我得到了傅立叶变换的频谱。它看起来像这样:
警察刚从附近经过
颜色代表强度。
X 轴是时间。
Y 轴是频率 - 其中 0 位于顶部。
虽然吹口哨或警笛只留下一点痕迹,但许多其他音调似乎包含很多谐波频率。
电吉他直接插入麦克风(标准调音)
真正糟糕的是,正如你所看到的,没有主要的强度——有 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) 我是这里写问题的新手,所以请随时指出我如何提高未来问题的质量!
编辑:按照评论中的要求包含更多代码
我正在尝试将 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的新手,但我真的很想制作一个可以模拟吉他弦的代码.我该怎么做呢?或者至少我将如何开始这样做?任何帮助表示赞赏!
谢谢!
编辑:
我想在播放不同的弦乐,音符等时看到声波.当两个不同的弦乐正在播放时,我也对声波感兴趣,当它们是不和谐和辅音音符时,它会如何变化.我感兴趣的另一件事是,当弦乐没有被弹拨(共鸣)时,弦乐会有时会振动.
任何帮助表示赞赏,谢谢!
我正在开发一把闪光吉他,发现麦克风数据频率的唯一明显方法似乎是使用 FFT。然而,经过大约 30 个小时的研究后,我无法找到最好的方法。我应该使用谐波积谱 (HPS)、倒谱还是最大似然?调谐器必须显示 25 到 3000Hz 的频率。
另外,如果有人知道一些准备找到基本频率的开源代码,请告诉我。我可以将它翻译成 ActionScript。
谢谢!