Giter Club home page Giter Club logo

textcomposer's Introduction

TextComposer

Description

TextComposer is a desktop app that plays chord progressions and melodies based on your input text. It allows you to quickly test musical ideas with a simple GUI and syntax. It's especially useful when you want to experiment with chord progressions.

The output sound does not come from prerecorded audio files, but is generated directly by the soundcard using wavetable synthesis, with the help of the PortAudio library. The GUI is made with HTML, CSS, and Javascript using Sciter.JS.

uipreview

Installation

You can download the compiled app here (the .rar file). It's only been tested on Windows 10. I'm not sure if it works on MacOS and Linux.

If you want to compile it yourself, just clone this repo, open TextComposer.sln with VisualStudio, and click Build Solution. All external libraries and necessary configurations are already included.

Syntax

I. Duration:

  • '-' means an eighth note; '.' means a sixty-fourth note. Chain them together to create other durations.

  • Examples: '--' (fourth note), '--.', '..' (thirty-second note).

  • The real duration (in seconds) will be calculated based on your inputs in 'Time signature' and 'BPM'.

II. Chords and notes:

There are currently two modes available:

  1. Chord Progression:

    • For this mode you'd choose a scale and use Roman numerals - from one to seven - to represent chords. Upper case letters indicate major chords, while lowercase letters signify minor chords. 'b' and '#' imply flat and sharp, respectively. Add 'd' and 'a' at the end for diminished and augmented chords. Currently only triads and major/minor scales are supported.
    • Add duration symbols at the end of each chord and chain the chords together to complete a chord progression.
    • Examples: E Major I--V--vi--IV--, A Minor i----VI----III----VII----
  2. Melody:

    • For this mode you'd use the musical alphabet - 'A', 'B', 'C', 'D', 'E', 'F', 'G' - to represent notes. 'b' and '#' imply flat and sharp, respectively. Put an integer (>=0) at the end to indicate which octave the note is in. E.g., 'A4', 'C3', 'F#4', 'Db5'.
    • Add duration symbols at the end of each note and chain the notes together to complete a melody.
    • Examples: C#5-E5-C#5-F#5---A5---G#5------.C#5-E5-C#5-A5---G#5---E5------ (Linkin Park - Numb).

textcomposer's People

Contributors

bucket420 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.