没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记193(2007)47-60www.elsevier.com/locate/entcs首页>外文书>艺术>设计> Blues for Gary:Design Abstractions for a爵士即兴助理罗伯特·凯勒1马丁·亨特、斯蒂芬·琼斯、大卫·莫里森、亚伦·沃林计算机科学学院美国加利福尼亚州克莱蒙特史蒂芬·戈麦斯2计算机科学学院美国新罕布什尔州汉诺威摘要我们描述了一个工具的设计和实现,以帮助学生学习爵士乐即兴创作的艺术。该工具集成了数据库元素,自动旋律生成形式的AI和人机界面设计。 我们描述了使用几个协调的迷你语言的哲学 为用户提供该工具各方面的规范,包括旋律和和弦表示、风格、旋律生成和其他音乐知识。保留字: 音乐软件,即兴创作,爵士乐,迷你语言,人机界面1介绍即兴创作是爵士乐的一个关键方面,涉及所有演奏者。虽然它来得更自然1电子邮件:improvisor@cs.hmc.edu2电子邮件:steven.r. Dartmouth.edu1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.10.00748R. Keller等人理论计算机科学电子笔记193(2007)47对一些人来说,即兴创作不是一种天生的技能,关于如何学习即兴创作,存在着各种各样的建议。一个建议是让学生抄写著名球员的即兴独奏,试图获得他们的心态,这样学生就可以学习即兴演奏。一个稍微不同的策略是让学生写出原创的独唱。我们认为,第二种战略带来了更多好处,包括:• 拥有最终结果,因此更自豪• 加强对曲调和声结构的理解,否则很难选择合适的音符。• 这个过程比转录简单,因为结果并不精确地匹配任何预想的旋律。• 与转录相比,结果不一定包括或约束原始玩家可能犯的任何错误。我们已经设计并构建了一个软件工具来帮助即兴创作者构建独奏。它可以在网上找到[1]。该工具具有标准乐谱软件的一些元素,但特别设计用于在和弦进行的背景下创建单个旋律线。这在音乐家的术语中被称为铅板一个leadsheet是一个音乐抽象的例子与典型的乐谱不同,乐谱提供了一个完整的乐谱,可以在钢琴上演奏,铅板有曲调旋律的基本成分一旦旋律被陈述,它是由表演者创造额外的旋律,对应于和弦进行。此外,在整个过程中,包括在原始旋律中,节奏部分,如钢琴,贝司和鼓,即兴伴奏与和弦进行一致。我们首先在图1中展示了一个标题页的例子,用于曲调这首曲子由十二小节每个小节都有一个或两个和弦符号分布在上面,以表示该小节的和声。NC的意思是“没有和弦”。一个单一的旋律出现在舞台线和空间。这是一个非标准的蓝调进行曲,让人想起迈尔斯·戴维斯在20世纪50年代创作的一些作品其中的非标准部分,这将是一个新手即兴棘手,发现在酒吧4和6。这些在技术上被称为“三全音替换”,并使和声在第4小节突然上移了半音级,在第6小节上移了小三度。指出这些转折的原因是,他们是那种即兴遮阳板可以帮助初学者创造好听的旋律线。这首曲子的演奏可以在网上听到[2]。R. Keller等人理论计算机科学电子笔记193(2007)4749Fig. 1. “Blues for Gary”2即兴旋律即兴表演者必须在实际表演中动态地解决几个问题:(i) 选择与所述和声结构一致的音符(ii) 选择从一个音符到下一个音符的顺序。(iii) 提供节奏,进行笔记和创造兴趣的一部分,听众。(iv) 对其他演奏者的建议和细微差别做出反应,特别是钢琴家和鼓手。作为一个在线的,在某种意义上,它被用作实际即兴创作之前的学习工具,我们的工具可以帮助前三个。对于一个没有经验的球员的问题之一是确定什么音符一起听起来很好。最终,这些都是基于物理学,可以抽象为心理声学。然而,爵士乐演奏者是按照更高层次的抽象来思考的,这将在下一节中描述。我们不知道目前有什么方法可以从物理原理中自动推导出这些抽象概念。几十年来,音乐家们通过实证研究了解到了这一点。50R. Keller等人理论计算机科学电子笔记193(2007)473支持抽象爵士音乐家依靠几种抽象来创造一种相当于即兴创作的逻辑。我们在下面列出这些抽象中最重要的:音高:音高是用特定的声音振动频率来识别的音高类:音高类是由八度音阶分隔的音高的等价类,每个八度音阶代表频率的加倍。我们经常把音高和音高类别都称为“音调”,有点滥用术语。和弦:和弦是一组音高类别,其中的音高被同时演奏,从而产生特定的合成音。各种类型的情感,如音阶:音阶是音高的集合(而不是序列)。通常,某些音阶被识别为与某些和弦兼容,以多对多的关系。有些人会说和弦是从音阶中衍生出来的,但我们认为和弦是更基本的抽象,直接基于心理声学。半音:半音大约是一个八度的十二分之一的音程。它是大多数西方音乐中音阶的基础。例如,和声小调音阶由2,1,2,2,1,3,1个低音分隔的音高组成。色调:相对于和弦,色调是与和弦兼容但不是和弦成员接近音:相对于一个音和一个和弦,接近音是一个与另一个音相邻的音,而不是和弦音或色调。在爵士乐中,接近音被用来建立不和谐音,然后通过用接近音替换接近音来解决。一个即兴演奏者,当面对创作一个旋律或旋律线的问题时,可以使用上述概念来推理如何创作那个旋律。例如,假设演奏者正专注于曲调“Blues for Gary”的第二小节。这里的有效和弦是Bb13。由于和弦之间的过渡经常被玩家用来确定旋律,下一个和弦也被考虑在内我们选择通过菜单向玩家提供信息,如图2所示。在那里,演奏者可以选择单个音调或琶音形式的和弦音调序列,这些音调序列被输入到铅表中以进行可能的进一步重新排列。图3显示了玩家使用指向和点击来选择几个音符的结果。R. Keller等人理论计算机科学电子笔记193(2007)4751图二. 和弦和色调菜单图三. 玩家根据用户黑色:黑色音符是和弦中的音调。绿色:绿色音符是不在和弦中的音调,但与它一起响亮(彩色音调)。蓝色:蓝色音符不是和弦中的音调,也不是色调,而是接近和弦或色调的色彩。红色:红色音符不是上述任何一种。它们通常只用作短的传递音调。另一个选项,其可以由音乐上未受指导的用户使用,是选择绘图光标并在该光标上拖动,这将以绘图设备的轨迹的形状留下音符的轨迹Impro-Visor将自动将音符对齐到和弦或指定音阶中。52R. Keller等人理论计算机科学电子笔记193(2007)47继续,玩家可以利用更复杂的功能,选择一个和弦中的音调接近另一个和弦中的音调图4展示了这方面的情况。图四、在一个小节中使用和弦音来接近下一个小节中的和弦音一个预先构建的旋律序列库(称为构建这样一个库,虽然为构造器提供信息,但往往非常耗时,因此我们正在研究自动化此过程的方法,例如通过使用监督学习技术与生成语法相结合。第7节讨论了语法方法。4用于规范的在前面的部分中,我们引用了对爵士音乐家有用的各种抽象。我们希望提供一种文本方式来指定这样的抽象,并决定使用S表达式[3],因为它们很简单,而不是像XML [4]这样的方法,我们认为它对临时用户不太友好。虽然空间不允许我们彻底,但下面我们给出了如何编码抽象以使其可由用户指定的想法。我们的实现基于Polya库[5],它提供了Java中类似Lisp的数据结构抽象。考虑和弦抽象。下面我们将演示各种抽象是如何与它联系在一起的。每个联系都以一个子S表达式开始,该子S表达式以联系的类型开始,然后是澄清子表达式。比如说,R. Keller等人理论计算机科学电子笔记193(2007)4753图五. 选择先前构建的舔。有几个音阶适合C大调七和弦。并非所有的音符都以C作为根音符,所以这个音符也是指定的。和弦规格:(chord)(nameCM7)(pronounceC majorseven)(大调)54R. Keller等人理论计算机科学电子笔记193(2007)47(拼写c eg b)(颜色d f# a)(优先级be gc)(办法(c c c# d)(e eb f)(g f# g#)(b bbc))((左手-A(闭型)(注e g b))(左手-B(闭型)(注b e+ g+))(左手-C(闭型)(注g b e+))(双手-开-1(开型)(注g e+b+))(双手-开-2(开型)(注b g+e++)))(比例尺)(C大调)(C吕迪安)(C比波普大调)(C大调五声)(G大调五声)(E和声小调)(B增音))(替代CM69 Em7 Am9)(分机CM9CM7#11 CM7add13))对于某些和弦所指的每种音阶类型,该音阶中的音符都有相应的规范。只有一个音阶或一个特定类型的和弦被指定。系统负责将它们转移到其他关键中心。14个主要中心通常是感兴趣的。替代和弦是可以用来代替给定和弦的其他和弦。扩展是具有和弦的音调以及附加音调的和弦。延伸的概念在所有和弦的空间中诱导出一种继承等级规模规格:(scale(nameC lydian)(spellc d e f# g a bc))(scale(nameC major)(spellc d ef g a bc))(scale(nameC mixolydian)(spellc d efg a bb c))R. Keller等人理论计算机科学电子笔记193(2007)47555音高和音符符号当然,存在用于表达乐谱、用于排版等的现有系统。我们想要一个系统,这将是非常用户友好的表达旋律和和弦序列(例如,一个完整的铅表)的形式易于阅读的音乐家。在这一节中,我们集中在旋律部分,并在下一节中,我们介绍了和弦和铅表记谱法。对于音高类,我们使用小写符号a b c d ef g#其次是分别用于sharp和sharp at的modifiers#和b。例如,G调和小调音阶中的音高类别可以指定为以下集合:g a bb c d eb f#这种记谱法被扩展到表示音高和音符。在没有进一步注释的情况下,这些符号表示从中C到中C以上的B的八度音阶中的音高加一个+会使音符高一个八度,而加一个-会使音符低一个八度例如,G和声小调音阶严格地从中间C以上的G上升将是:g a bb c+ d+ eb+ f#+ g+如果需要一个音符的持续时间,则默认为八分之一音符。为了形成其他持续时间的音符,我们使用音乐家自然的符号:4代表四分之一个音符,8代表八分之一个音符,16代表十六分之一个其他持续时间可以通过添加一个点来形成,这将音符延长其值的0.5,并通过使用+来形成其他持续时间。后一个加号不会与提高八度的+混淆,因为+在持续时间指定之前比如说,c+4+8+16是指在中间C之上的C,持续时间等于1又3/4拍(1/4音符加上1/8音符,再加上1/16音符)。我们还允许用/3来指定三元组值。这将音符的持续时间减少到其原始值的2/3。作为一个例子,考虑图6中的序列,如:a4/3 f#4/3 b4/3 c#+4 g#8 f856R. Keller等人理论计算机科学电子笔记193(2007)47见图6。 编码旋律序列。6和弦和铅板表示法如前所述,我们想要一个音乐家使用起来简单的文本符号。为了区分和弦符号和音符,我们使用和弦符号总是以大写字母开头,音符以小写字母开头的惯例因此,C2代表一个C大调和弦,增加了一个二度(在这种情况下是D),而c2代表中间C音符保持了半个音符的持续时间。我们允许和弦和音符自由混合,软件负责将它们分成两个轨道。一种不同的、更自然的记法被用来指定和弦的持续时间。通常,和弦会持续一个小节或半小节。因此,我们使用竖条来分隔度量值,并根据两个竖条之间的项目数量均匀划分空间如果只有一个项目,则和弦用于整个小节。如果有两个项目,每个和弦持续半个小节,等等,对于四个项目,八个项目,等等。对于一个小节的非均匀划分,我们使用一个常见的音乐家的设备,使用/来表示继续之前的和弦。比如说,| C / / F|这意味着C和弦保持四分之三的措施和F和弦的四分之一。尽管这种记谱法与旋律记谱法不同,但对于音乐家来说,它仍然更自然。音乐家也有一个斜线和弦的概念,我们超载使用/来提供它。很简单,一个和弦后跟一个/和一个音高(这次是大写)意味着一个和弦与指定的音高,而不是和弦的根如果音高恰好在和弦中,这对应于和弦的反转。比如说,G/B是G三和弦的第一个倒置,因为后者通常拼写为G-B-D。如果音高不在和弦中,则将其添加到和弦中,这通常会产生不同的发声结果。比如说,R. Keller等人理论计算机科学电子笔记193(2007)4757G/F表示由G三和弦和低音中的F组成的斜线和弦,使该和弦有效地成为G7:G-B-D-F。一个相关的概念,经常与斜线和弦混合的音乐文本作者,是一个多和弦。实际上,这意味着一个完整的和弦堆叠在另一个之上。我们使用反斜杠\来表示多和弦。比如说,D\ C7表示堆叠在C7弦上的D三和弦。作为一个完整的例子,下面我们有一个完整的铅表的曲调在图1中,旋律部分是一个措施每行:首页>外文书>文学>西洋文学FM69|Bb13|FM69|F#m9 B7|Bb13|Dbm7 |FM69|NC D7alt/ /|GM9|C7b9| F69D7alt|Gm9 C9|r2 a8 r8 c+8f1 d+8c+8 bb8 r4 a8 r8 c+8e2+4+8 eb4d4+8 r8 ab8 c+8 d+8 f+8e+4 cb8/3 bb8/3 g8/3 gb4 r8 d8e8 r8 a8 c+2+8r4 eb+8 c+8 ab8 g8 f#4r4+8 d8 f8 a8 c+8 a8bb4 g8/3 f8/3 e8/3 f8 db4+8 c2bb8 c+8 eb+8 c+8d+8 bb8 g8 f8 e27舔世代我们的工具的一个特殊功能是能够在键盘上生成新的旋律序列。这提供了用于建议不需要编译存储许多和弦组合和对应的舔的大型数据库的舔的替代方案。目前舔生成是通过指定一个概率上下文无关的语法。有一种用于指定产生式的迷你语言,它与我们的其他迷你语言兼容。58R. Keller等人理论计算机科学电子笔记193(2007)47该语法首先生成一个节奏序列,其中每个音符位置都是一个终端符号,指定一个音符类,如和弦音,色调,接近音等,然后根据该点的和弦选择这些家族中的音调。某些额外的限制被放置在多大的旋律跳跃可以。这种方法效果非常好,Impro- Visor可以在一个动作中产生整个合唱,而不仅仅是单个舔。合唱是合理的令人信服的,并可以在实时生成原则上,尽管当前生成不是在播放期间进行。关于语法规范的更多细节可以在[6]中找到8风格规格而不是能够仅仅构建和听到旋律,这是有帮助的,能够发挥爵士乐独奏的背景。为此,我们设计了一种自动伴奏,类似于Band-in-a-Box[7],尽管具有更温和的配器目标。这很快导致了对不同伴奏风格的需求,当然,我们提供了另一种用于指定这些风格的迷你语言,它与其他迷你语言兼容简单地说,一种风格规范包括低音线,鼓和和弦乐器的单独规则我们提供一个简短的例子:风格规格:(风格(name 6-8-rock)(摆幅0.5)(悬挂式开启)(规则B8+8+8 + 8+8+8)(权重10))(规则B8+8+8 C8+8+8)(权重5))(规则B8+8+8A8)(权重10))(规则B8 + 8+8 A8)(权重10))(弦模式(规则X8+8 + 8 +8+8+8)(重量)10))(弦模式(规则X8+8+8)(重量)10))(鼓形)(drum X8X8 X8 X8X8 X8)(drum侧杆R8 R8 R8 X8 R8(重量10))R8)R. Keller等人理论计算机科学电子笔记193(2007)4759(鼓形)(drum闭高顶X8 X16 X16 X8 X8 X8 X8)(鼓侧杆R8 R8 R8 X8 R8 R8)(重量5)))这里的摇摆值为0.5,表示八分音符要同等地演奏,而不是以摇摆风格演奏。发声值指示从和弦规范中选择哪种发声。清音是一种在和弦中叠加音高的方法,使其听起来更有趣,并提供声音引导,一个和弦到下一个和弦的平滑进展。我们的伴奏生成器根据可用的伴奏,通过枚举组合和评估它们的相对距离来创建平滑的进展 如果没有发声 指定,一个是使用和弦指定的优先级部分生成的风格规范中的符号模式部分类似于旋律序列的规范例如,B表示和弦的低音,C表示任意和弦音,X(n)表示伴随音阶的第n个音高,R表示休止符,A表示所有重要的接近音。音高类别后面的数字代表相应音符的持续时间。权重表示选择特定模式的可能性。鼓和和弦模式遵循类似的计划。 在鼓的情况下,关键字drum后面的数字是该打击乐器的MIDI编号。保持迷你语言的兼容性,正如我们所尝试的那样,为音乐家提供了一个不那么陡峭的学习曲线,以便能够创建风格,舔等。9实施说明我们的软件完全用Java实现,并在三个最流行的个人计算平台上运行。我们使用NetBeans[8]并使用jMusic的早期版本[9]来显示一些符号。S-expression I/O和类Lisp数据结构使用Polya库进行编码[5]。10结论我们已经提出了各种抽象,是在爵士乐即兴使用,并展示了他们是如何反映在软件同行。独立但有凝聚力的迷你语言被用来捕捉大部分音乐知识。60R. Keller等人理论计算机科学电子笔记193(2007)47我们已经展示了一些例子,这些例子反映了音乐家在使用我们的系统时的一些心态。有效性的证明最终在于声音。在网络上的“Blues for Gary”的表演引用[1] 前遮阳板,http://www.cs.hmc.edu/jazz/improvisor.[2] 布鲁斯加里性能,http://www.cs.hmc.edu/jazz/improvisor/bluesForGary。[3] John McCarthy,Recursive Functions of Symbolic Expressions and Their Computation byMachine,Communications of the ACM,31(1960)184-195.[4] XML,http:en.wikipedia.org/wiki/XML.[5] Robert Keller,Polya Java library,http://www.cs.hmc.edu/publickeller/polya/。[6] Robert Keller,David Morrison,A grammar approach to automatic improvisation,Proceedings,Fourth Sound and Music Conference,Lefkada,Greece,July(2007)。[7] PG Music,Band in a Box,http:www.band-in-a-box.com.[8] NetBeans,www.netbeans.org/。[9] Andrew Sorensen和Andrew Brown,jMusic Java库,jmusic.ci.qut.edu.au/。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功