Chord Change "Synthesis" and Looping Playback in (sigh) ChucK - A Musical Practice Tool For To Make Benefit The Glorious Nation Chrizakhstan (Alternatively, it'll be some similar title to be determined at a later date)

From CCRMA Wiki
Revision as of 04:11, 7 April 2009 by Cweil (Talk | contribs)

Jump to: navigation, search

Overview

The project will be a practice tool, created in ChucK, which will synthesis a set of chord changes and then return it to the user in a playback scheme with looping, allowing the user to play along with it to practice whatever they would like. The structure will be synthesis based on a large set of rules defined in the code to correspond to musical style (such as jazz or tonal music) so that the changes aren't random or nonsensical. For example, it will know how to move from one chord to another, what moves are allowed, how to modulate keys, how to resolve by the end of the structure, etc.


User Input

There will be a number of user-definable options for the output structure.

Format

The style who's rules are followed. If tonal music is picked, it will follow standard tonal music rules of chord structure/type, transition, resolution and modulation.

If jazz is picked, the rules will be much more open, while it will also follow standard accepted rules for easier difficulties, it will leave room for much more harmonic complexity and variation. This method is the true intention for this project, as it will produce a set of new chord changes to practice along with (for soloing, walking, comping, etc) or potentially even to compose around.

Doing a blues setting could also be done.

Key

Chose a specific starting key center, or allow it to chose randomly.

Length

Number of bars in the loop and, depending on difficulty, roughly the number of chord changes occurring during each measure. Number of bars could be 4, 8, 16, 7, whatever.

Difficulty

The difficulty will vary the frequency of chord changes, frequency of key modulation, variation and complexity of chord voicing (for example, leaving out root, triads versus 13th chords, etc), etc. Essentially, it changes a combination of the parameters below all at once.

Frequency

How often the chords change per bar, roughly. IE, the higher the number, the more likely it is to change chords more frequently.

Density

How much the playback engine is playing notes. Is it holding the chord the whole way through the bar, is it playing staccato, leaving silence/rest, etc.

Complexity

Complexity of the chord shown, which can vary from simple triads in root position to M7b5#13 chords in 4th inversion. As the complexity increase, the more likely it is to use inversions and to leave out roots.

Rhythmic Complexity

Varies the amount of off-beat and syncopated rhythm in the chord playback.

Time Signature

Sets the beat length for each bar. Particularly useful for practicing in odd time signatures.


Playback

Sound

The sound of the chords is, as of yet, undecided. It could be made to model string or piano sounds, or it could simply be a simple filtered and enveloped set of tones. The timbre of the sound is not particularly important for function, but aesthetically it might be more pleasing to listen to one type of sound or another.

Looping

An important function in using this as a practicing tool is to create a looping function so that it can play over and over without the user having to interrupt their own practice to start the progression again. This means that they could play, uninterrupted, for anywhere from a few seconds to an hour without breaking. At the moment there is no intention to have the loop change over time; it should be able to be stopped by the user at any time and recalculated when a new progression is required. (Though it would be nice to implement a structure where you could start and stop the same loop, it may not be possible in ChucK.)