我想知道如何在PHP中创建一个用于移调一些音乐和弦的函数。我将尝试解释它在音乐理论中的工作原理。我希望我没有忘记什么。如有错误,请帮我改正。1。简单的和弦。简单的和弦几乎和字母表一样简单,它是这样的:C,C#,D,D#,E,F,F#,G,G#,A,A#B从B再次循环到C。因此,如果原始和弦是E并且我们想要移调+1,则生成的和弦是F。如果我们转置+4,得到的和弦是G#。2。展开的和弦。它们几乎像简单的和弦一样工作,但包含更多的字符,在移调时可以安全地忽略这些字符。例如:Cmi,C#7,Dsus7,Emi,Fsus4,F#mi,G...再一次,与简单的和弦一样,如果我们转置Dsus7+3=
以下面的输入为例:[Ami]Songlyricsherpderp[F]songlyricscontinue[C7/B]Songlyricscontinueonanother[F#mi7/D]line我需要解析上面的内容并将其回显如下:AmiSonglyricsherpderpFsonglyricscontinueC7/BSonglyricscontinueonanotherF#mi7/Dline所以基本上,我需要:1)更改[至,2)然后追加括号中的内容,3)然后改变]至....使用PHP5.3+。 最佳答案 这会起作用。$tab="
我按照这里的指南:https://plot.ly/python/filled-chord-diagram/我制作了这个:在指南中,我按照ribbon_info代码将hoverinfo添加到连接的功能区,但没有任何显示。我可以让hoverinfo只显示功能区末端。谁能看出我哪里出错了?ribbon_info=[]forkinrange(L):sigma=idx_sort[k]sigma_inv=invPerm(sigma)forjinrange(k,L):ifmatrix[k][j]==0andmatrix[j][k]==0:continueeta=idx_sort[j]eta_inv=
是否可以运行chord即使主要任务失败也会回调?我创建了一个和弦,我添加了一堆任务并注册了一个回调。我的问题是,如果其中一项任务失败,则不会触发回调。但我希望以任何一种方式触发回调。我已经尝试使用si()(immutability)注册回调callback=tasks.run_delete_rule.si([timestamp])header=[tasks.run_update_rule.s(i,timestamp)foriinitem_ids]result=chord(header)(callback)我还尝试将参数ignore_result=True添加到两个任务装饰器,但没有成功
我想要实现的是从我的python应用程序中弹奏吉他和弦。如果需要,我知道(或可以计算)和弦中的频率。我在想,即使我做了低电平腿部工作,以正确的频率产生多个正弦波,但由于包络也需要正确,所以听起来也不会正确,否则它听起来不像吉他,而是更多嗡嗡声令人兴奋的是,linuxsox命令play可以产生一个非常有说服力的个人音符:play-nsynth0pluckE3所以我真正要问的是,a)是否有可能将播放命令硬塞进整个和弦(理想情况下,开始时间略有不同以模拟拨弦行程)——我无法做到这一点,但也许有一些bashfairydust会fork一个过程等等,所以听起来不错。如果这是可能的,我会满足于从我
我有一个以文本格式显示吉他和弦/乐谱的网站。这是我当前显示的内容:Em:|||||||||||||22|||||||||||||||我了解到GD可以为此创建动态图像。但我是PHP的新手,我不知道该怎么做。在PHP中创建这样的东西来显示图像是否简单?谢谢 最佳答案 首先下载arial字体并获取此图像(另存为guitar.jpg):并将它们放在与此脚本相同的文件夹中(例如chords.php):0){$add=30;}//chordspositions$interval1=($chords[0]!=0?(25+$add+(intval(
如何仅通过知道歌曲的和弦序列以编程方式找到歌曲的调?我问了一些人他们如何确定一首歌的调,他们都说他们是“靠耳朵”或“反复试验”来做的,并通过判断和弦是否解决一首歌......对于普通的音乐家来说可能很好,但作为一个程序员,这真的不是我想要的答案。所以我开始寻找与音乐相关的库,看看是否还有其他人为此编写了算法。但是虽然我在GitHub上找到了一个非常大的库,叫做'tonal':https://danigb.github.io/tonal/api/index.html我找不到可以接受和弦数组并返回键的方法。我选择的语言是JavaScript(NodeJs),但我不一定要寻找JavaScri
我正在使用celery,我有几个任务需要按顺序执行。例如我有这个任务:@celery.taskdeftprint(word):printword我想做这样的事情:>>>chain(tprint.s('a')|tprint.s('b'))()然后我得到TypeError:tprint()只需要1个参数(给定2个)。和chord一样,在这种情况下,我需要在一组任务之后执行一个任务:>>>chord([tprint.s('a'),tprint.s('b')])(tprint.s('c'))那么如何处理这种情况呢?我不关心每个任务的结果,但它们需要按顺序执行。添加第二个参数不起作用:@cele