/PSHarmonize

Powershell Music framework

Primary LanguagePowerShellMIT LicenseMIT

PSHarmonize

Powershell Music framework

Create Music without musical knowledge

PSHarmonize let's you create Music without you having to know Musictheory or how to play an instrument.

How can it do that, you ask? It knows Music theory for you!

AzurePipelines

Overall Status Windows Linux MacOS
Build Status Build Status Build Status Build Status

Roadmap

  • basic Scales
  • basic Chords
  • ChordProgressions
  • Basic Console Output Sheet Music
  • Actualy Basic Sheet Music
  • Basic Midi Output
  • DSL
    • Create Basics for writing Sheet Music
    • Add way to notate Chords directly
    • Add way to notate inversions of chords directly
    • Add Support for accidetals
    • Add Bassline Notation
    • Add ties in notation
    • Add Key Definition of Song
    • Add functionality to export the notated music to a Midi Script
      • Basic Midi Support now Works!!! :D
  • More Complex Scales
  • More Complex Chords
  • Actual harmonizing of melodies
  • Possibility to output Midi from DSL

Intro

In Music we usually define a 'key' to which we relate what we play. A key is defined by its root note.

So for example if we take the key of 'C' we have 'C' as our root note. Now how would do we know what other notes we can use in the key of 'C'? So this is where music theory comes in and you would go ahead and apply intervals (difference between notes in numbers --> 1 above 'C' would be 'D') up until we are at the root note again, but one octave higher. One octave would be 12 semi tones higher than the root note. So in the case of 'C' it is a C again, but played higher.

Confused yet? Good! Cause that's what PSHarmonize is for!

To learn more about the basics and understand better how PSHarmonize can help you go here

Midi

You can Output your notated music to Midi. Check out this Video

Onebar

Read More about Midi here (Docs not done yet)

Notation

The first version of the very basic (and maybe a little buggy) DSL is out!

Check the code here:

Beethovens 5th

Which will give you this:

Beethovens5th

Read More about Notation here