Skip to content

Parts and track ideas #17

@odoare

Description

@odoare

Following a discussion on parts and tracks on 2024-07-13

Part

Properties

  • Tempo
  • Time signature
  • Number of Bars

Tracks : tables of events of unique type (one track per type)

Main tracks (defined by the main conductor)

  • Chord event : {time, chord}

  • Scale event : {time, scale}

Optional main tracks

  • Nuance, dynamics : {time, nuance}
    Nuance can be a float between 0 and 1, eventually later converted to an int between 0 and 127.
    An enum-like thing could translate nuance names (piano, forte, fortissimo...) to actual values.

  • Main theme (melody) : {time, note, duration, (velocity?)}

Tracks defined at the interpreter level

  • Theme (if not defined globally or if interpreter wants its own theme)

  • Nuance (same)

  • Rhythm (for percussive instruments) : {time, (velocity?)}
    A multi-instrument percussion has multiple rhythm tracks (eg. a drummer with kick, snare, hi-hat...)

  • Generic parameter : {time, value}
    Any parameter that a player can interpret, eg. any CC parameter of a synth

Proposal for accessing tracks

Tracks could be accessed in a folder way. Eg. to access the kick rhythm of the drummer part: drummer.get_track({"kick", "rhythm"}).

In a more general/global implementation, each interpreter can be a folder, the conductor level being the root level:

get_track({"drummer","kick","rhythm"})
get_track({"chords"})
get_track({"guitar1","melody"})

OSC implementation would not be far away!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions