#和弦 #音乐 #作曲

和弦作曲家

用于构建和弦进行和模式的音乐作曲工具

4个版本

0.3.1 2020年3月23日
0.3.0 2020年3月15日
0.2.8 2019年12月15日
0.2.7 2019年12月15日

#595音频

每月 35 次下载

MIT 许可证

93KB
2.5K SLoC

和弦作曲家

用Rust编写的用于构建和弦进行和模式的音乐作曲工具。

和弦作曲家的理念是制作一个轻量级、便携且易于使用的工具,以结构化和弦模式和进行,以便为音乐创作构思提供结构。它必须适应常见的数字音乐写作工作流程,并不妨碍用户的创作过程。

此库的CLI可以在这里找到。

特性

  • 使用YAML或通过API描述作曲模式。
  • 作曲模式导出到MIDI剪辑。
  • 使用音频样本播放作曲模式

未来工作

  • 开发更好的音频引擎和乐器采样器。
  • 支持MIDI路由。
  • 探索支持常见音乐跟踪器的需求。

作曲参数YAML文件

以下模板中概述了作曲参数 YAML文件的架构。

# Name of the composition
name: default_composition

# The default master parameters of the composition. 
# New master pattern can be assigned to a pattern that overrides
# the default master values.
master:
    # The musical key to transpose the chords. 
    # Supported values: C, C#, D, D#, E, F, F#, G, G#, A, A#, B
    key: F# 

    # The beats per minute of the composition.
    time: 120

    # The time signature of the composition.
    # Beat numerator supported values: must be > 0.
    # Beat denominator supported values: 2, 4, 8, 16, 32, 64 
    # e.g 3/8 is supported, 0/7 is not supported.
    signature: [4, 4]

# Composition defined chords.
chords:
    # [chord_name, [chord intervals]].
    - [custom1, [0, 3, 8]]
    - [custom2, [0, 5]]

# The composition's chord patterns/progressions.
patterns:
    - name: part_a
      # Each pattern event = [bar, beat, beat interval, chord name, chord transpose].
      pattern:
          - [1, 1, 1, MAJOR_SEVENTH, 0]
          - [1, 3, 1, custom1, 0]
          - [2, 1, 1, MAJOR_NINTH, 0]
          - [2, 3, 1, custom1, 0]
          - [3, 1, 1, MAJOR_SEVENTH, 3]
          - [3, 2, 1, custom1, 0]
          - [4, 1, 1, MAJOR_NINTH, -3]
          - [4, 2, 1, ?, 0] # ? = Select a random user defined chord.

    - name: part_b
      master:
          signature: [4, 8]
          key: C#
          time: 69
      # Each pattern event = [bar, beat, beat interval, chord name, chord transpose].
      pattern:
          - [1, 1, 1, MAJOR_SEVENTH, 0]
          - [1, 2, 1, custom1, 0]
          - [2, 1, 1, MAJOR_NINTH, 0]
          - [2, 2, 1, custom1, 0]
          - [3, 1, 1, MAJOR_SEVENTH, 3]
          - [3, 2, 1, custom1, 0]
          - [4, 1, 1, MAJOR_NINTH, -3]
          - [4, 2, 1, ??, 0] #?? = Select a random chord from user defined and internal defined chord.

依赖关系

~3.5–5.5MB
~91K SLoC