- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 LilyPond 来创建练习乐谱和练习曲。我已经弄清楚如何允许在 Moveable Do 视唱记谱中输入音符,并有一个模板(见下文)支持将视唱符号显示为音符下方的歌词。目前,我必须从生成音乐的乐谱和标记中手动提取歌词。我已经能够使用一些 python 和 vim 代码(此处未显示)部分自动化此操作,但它仍然有些不令人满意。
在我看来,最好的解决方案是使用LilyPond 的内置Scheme 解释器在处理文件时提取音调名称。我已经尝试将 map 与 ly:note-pitchname 一起使用,但到目前为止没有成功。可能是因为我了解Scheme,特别是在LilyPond 脚本中使用的squat。
% Moveable Do as lyrics example
% define some solfege pitchnames
% (in practice, the full set goes into "english.ly")
pitchnames = #`(
(do . ,(ly:make-pitch -1 0 NATURAL))
(re . ,(ly:make-pitch -1 1 NATURAL))
(mi . ,(ly:make-pitch -1 2 NATURAL))
)
#(ly:parser-set-note-names parser pitchnames)
% compose as though in C major
mynotes = \relative do' {\key do \major do2 re4( mi4) }
% transpose to desired key
melody = \transpose do mi { \mynotes }
% I WANT TO AUTOMATICALLY CREATE THE
% THE PITCHNAMES IN THIS BLOCK
% FROM THE CONTENTS OF \mynotes
solfa = \lyricmode {
\set ignoreMelismata = ##t % one syllable per note
do re mi
\unset ignoreMelismata % allow normal placement of other lyrics
}
% Produce score with solfege names as lyrics
\score {
<<
\new Voice = "myVoice" {
\melody
}
\new Lyrics \lyricsto "myVoice" \solfa
>>
}
\version "2.12.3"
最佳答案
我在 LilyPond 用户论坛上收到了来自 Valentin Villenave 的有用信息,这些信息导致了以下可行的解决方案:
LilyPond 提供了一个 NoteNames 雕刻机,可以自动打印音高名称,例如。 “c d e”作为音符下方的歌词,但存在一个长期存在的错误,导致音符名称恢复为荷兰语音高名称。 Valentin 的解决方法是创建一个关联数组,并将其用作 lambda 函数中的查找,该函数在每个音高即将打印时被调用。通过替换数组中的条目,可以打印所需的音高名称。
为了使该解决方案完全可行,我还必须添加第二个乐谱 block ,以将 MIDI 输出生成与乐谱打印分开。这是为了防止 NoteNames 雕刻机产生 MIDI 输出。
我已经使用完整的半音视唱名称集使用更大的文件测试了该解决方案。它运作得很好。唯一剩下的问题是,如果能够调整 NoteNames 输出上的字体属性以使视唱与正常歌词不同,那就太好了。到目前为止我还没能做到这一点。
% Moveable Do as lyrics example
% define solfege pitchnames
pitchnames = #`(
(do . ,(ly:make-pitch -1 0 NATURAL))
(re . ,(ly:make-pitch -1 1 NATURAL))
(mi . ,(ly:make-pitch -1 2 NATURAL))
)
#(ly:parser-set-note-names parser pitchnames)
% Apparently, LilyPond reverts to dutch names when
% using the NoteNames context. The following
% workaround was posted by V. Villenave at
% http://lists.gnu.org/archive/html/lilypond-user/2010-10/msg00687.html
newnames =
#`(("c" . "do")
("d" . "re")
("e" . "mi"))
myNoteNames =
#(lambda (grob)
(let* (
;; bindings
(default-name (ly:grob-property grob 'text))
(new-name (assoc-get default-name newnames))
)
;; body
(ly:grob-set-property! grob 'text new-name)
(ly:text-interface::print grob)
)
)
% compose as though in C major
mynotes = \relative do' {\key do \major do2 re4( mi4) }
% transpose to desired key
melody = \transpose do mi { \mynotes }
% Produce score with solfege names as lyrics
\score {
<<
\new Voice = "myVoice" {
\melody
}
\context NoteNames \with {
\override NoteName #'stencil = #myNoteNames
} { \mynotes }
>>
}
% Use a second score block to produce midi,
% otherwise the NoteNames will produce a duplicate
% track.
\score {
\new Voice = "myVoice" {
\melody
}
%% This generates the midi file
\midi {
}
}
\version "2.12.3"
更新:事实证明,字体属性可以通过 markup function 来控制。 ,例如,通过改变
(ly:grob-set-property! grob 'text new-name)
至
(ly:grob-set-property! grob 'text (markup #:italic #:smaller new-name))
可能还有其他方法可以完成同样的事情,但这很简单并且可以满足我的需要。至此,我认为这个问题得到了解答。请注意,LilyPond 的 future 版本可能会修复 NoteNames 错误,并消除为此目的使用 Scheme 的需要。
关于scheme - LilyPond:从音乐中提取音名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378228/
启动Android游戏时,我试图让一些音乐淡出。音乐在主菜单中播放,然后在播放器单击播放时淡出。我可以停止播放音乐,只是不会消失。 我试图用这个淡出: using UnityEngine; using
我正在 XNA 中创建一个游戏,它可以使用大量的音乐循环,但我似乎无法同步这些声音。 我总是错过几毫秒你能帮我吗? 这是我第一次尝试同步声音。请注意,我需要处理数十种声音...... 这个同步问题可能
我使用以下代码播放了一首歌,但它有 11 分钟长,我该如何停止它? 此代码位于 jFrame 1 中。如何使其停止在 jFrame 2 中? Input
在阅读我的书并浏览一些 YouTube 教程后,我对标准化的理解是,重要的事情之一就是不要有重复的值。更具体地说,主键 (ID) 不应重复。 因此,如果我正在使用音乐/音乐会数据库中的某些表,那么以下
我正在用 java 创建一个应用程序/游戏,其中包含背景音乐/声音。一切都按预期工作。如果播放某些系统声音/媒体声音/其他声音,我想静音/停止。 有什么建议...?? 最佳答案 我建议不要关心这个问题
只是尝试从图像 (1080p .png) + 音乐 (320Kb mp3) 为 youtube 制作视频。 ffmpeg -loop 1 -i image.png -i music.mp3 -
我正在GW-Basic中开发游戏,我想向其中添加音乐,但问题是我无法在后台播放,但是当我添加声音时先播放声音,然后在开始执行游戏和vICE之后vERSA。而我希望这两件事同时播放..所以知道怎么做吗?
我正在使用Xcode的Sprite套件开发iPhone游戏,想知道是否有一种简单或最佳实践的方法可以通过编程方式消除所有声音效果/音乐?对我来说,最明显的方法是创建一些 bool(boolean) 变
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 3年前关闭。 Improve this questi
我正在设计一个 Android 应用程序,需要依次播放各种短音乐文件。 我设置了一个“onClick”监听器来运行一个循环,一遍又一遍地播放这些声音文件,它们可能会播放 100 多次。 但是 我需要用
我有一个网站,其中包含集成到布局中的 Flash 音乐播放器。我希望用户能够在不中断音乐的情况下浏览网站。我做了很多研究和思考,以下是我提出的选项(请记住,我希望尽可能对 SEO 友好)。有人有其他想
我可以即时生成一些音调并播放声音吗?例如,如果我想生成 DO RI MI FA SO LA XI 音调并播放它们? 似乎声音 API 都是为了播放现有的音频文件。谢谢! 最佳答案 参见 Matt Ga
我一直在尝试将音乐添加到我的应用程序中,但没有特别成功。我一直在尝试使用 AVFoundation,我的代码如下: //MUSIC var audioPlayer = AVAudioP
MPMediaPickerController 返回一个 MPMediaItem 如果返回本地 url,则可以播放声音。 如果音乐没有下载到本地,则assetURL为空。 如何在本地下载 MPMedi
有什么方法可以检测是否正在播放 iPod 应用以外的其他来源的音乐或媒体? 我知道我可以检测到从 ipod 播放的音乐: [[MPMusicPlayerController iPodMusicPlay
我刚刚安装了 music21,我正在尝试开始使用它。我安装了 Musescore3,但我无法使 show() 函数工作。 我试过按照我在网上找到的一些说明更改路径,但无济于事 from music21
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我目前正在寻找某种方式来扩展SFML.Net以使用MP3。因此,ioctllr推荐了NLayer,我想尝试一下。这是我的方法: namespace AudioCuesheetEditor.AudioB
我包含了正确的库和所有内容,这部分代码由于某种原因给出了段错误: int numerator = atoi(&fraction[0]); int denominator = atoi(&fracti
是否可以播放 AVPLayer 实例(带有视频)并同时使用 MPMusicPlayerController 实例来播放 iTunes 播放列表? 我尝试了几种解决方案,但每次播放视频时音频都会停止,每
我是一名优秀的程序员,十分优秀!