-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chord tool #14
Comments
hi, sure, yes i'm very interested to hear your ideas! |
Ok. Let's do that!
I won't be home for the next few days, but after that, let's open up a
conversation.
First question would be: what was the general idea behind the creation of
Riemann?
2018-02-27 0:20 GMT+01:00 gbrandt1 <notifications@github.com>:
… hi, sure, yes i'm very interested to hear your ideas!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGQug5Taf8Uk2vSTOdSCeak5VNbxvks5tYzxGgaJpZM4SSPn0>
.
|
basically i wanted to give easy access to as many chords as possible and provide the simplest way possible to get harmonically correct chord progressions. the basic design is based on a tonnetz and exploits the fact that it repeats every three rows along the major triad axis. basically you're looking at 3 stacked circles of fifths shifted by thirds, as in the tonnetz. its cutting open the tonnetz torus and projecting it onto a 2D plane. so if you provide a voltage 0 -12V on the P5 input you go around the circle of fifths once. on the other input you go along the major thirds for every 3V. then the parts provide triads to thirteenth major/minor or augmented/diminished chords. the whole thing just works on the chromatic scale at this point. an obvious extension would be constraining to scales/modes and provide additional chord shapes, as well as providing more traditional voicings (currently octaves are just successively counted up/down part by part), and i would like to implement a triggered traversal by PLR transforms. |
so one thing you could for sure help me with is to provide input onto how to implement paths for traditional chord progressions, or automatic harmonization, based on a root note input, for example. |
Ok. Let's do that!
I think that harmony, chords, is basically quite complex, so the first
thing would be to scale down on possibilities. Not as many chords as
possible, but as many chords as needed in a certain situation.
That way, it's a lot easier to keep an overview of what you are doing, or
what you want to achieve.
So, let's say you create a model based on one tonality (key), let's say C,
why not :)
Then make the chords a bit simpler, basically seventh chords max. I think
most people will not use any more complex chords than that in a tonal piece.
Then you have the 7 basic steps: I II III IV V VI VII . In C, that's (just
triads) C, Dm, Em, F, G, Am, Bdim.
B is not used very often, so we can ignore that one mostly.
C is the most important chord, F and G are next, then Dm and Am, then Em.
There are some common chord sequences, like C-F-G-C, etc. We could come up
with some suggestions for that, or (that would be nice!) create some sort
of chord sequencer, where you can enter the chord sequence, and the
duration of each chord.
How's that for a start (of the discussion)?
Best, Joop
2018-02-27 10:41 GMT+01:00 gbrandt1 <notifications@github.com>:
… so one thing you could for sure help me with is to provide input onto how
to implement paths for traditional chord progressions, or automatic
harmonization, based on a root note input, for example.
the P5 / M3 playhead is just the beginning for traversing the complete
"playfield"
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGTM9gt0xvTwkAT6W25MvEQN7r6Cfks5tY828gaJpZM4SSPn0>
.
|
ok, restrictions to a certain scale+root are definitely on the menu. acutally they are already in development and mostly working, i'm just still considering things like selection knobs etc. for a visual guide to the basic chords I,II, ... you mention i was already considering labels (as in Navichord), will implement and check if that doesn't make the field too busy. concerning dropping chords other than major/minor for now and chords with more than 4 parts this makes sense but i think is easy to do with the existing knobs. but i already have some other tools that constrain to only maj/min chords and i find the progressions they provide sound quite basic. concerning a sequencer, there is already the Amalgated Harmonics offering, so we should come up with some thing different than that. since we can reach everything with just two dimensions it might be an idea to provide sequences based on defined movement steps just along the P5/M3 axes. or, just in one dimension using the PLR transforms? do these get much use in real word arranging or are they just for academics and makers of YouTube videos? concerning selection of chord progressions, in principle one could provide a library, but it might be nicer to provide a smooth CV capable solution, for example based on common chord following rules? one principle i would like to follow with the Riemann is that a constrained settings one always gets a "correct" response/harmonics... but when opening up one can go back to more complex twelve-tone based music |
Maybe it would be a good idea to take a step back. What would you like to
accomplish?
2018-02-28 17:24 GMT+01:00 gbrandt1 <notifications@github.com>:
… ok, restrictions to a certain scale+root are definitely on the menu.
acutally they are already in development and mostly working, i'm just still
considering things like selection knobs etc.
i'll probably replace the transposition knob (which i now think doesn't
make too much sense the way it's implemented) with root / scale knobs.
for a visual guide to the basic chords I,II, ... you mention i was already
considering labels (as in Navichord), will implement and check if that
doesn't make the field too busy.
concerning dropping chords other than major/minor for now and chords with
more than 4 parts this makes sense but i think is easy to do with the
existing knobs. but i already have some other tools that constrain to only
maj/min chords and i find the progressions they provide sound quite basic.
so i agree to constrain to them first but i would like to keep the other
options open. more complex chords i think are quite interesting for ambient
styles, in a quite static arrangement with almost no movement, just to
steer different drones/oscillators that will form a complete, harmonically
fitting total soundscape together?
concerning a sequencer, there is already the Amalgated Harmonics offering,
so we should come up with some thing different than that. since we can
reach everything with just two dimensions it might be an idea to provide
sequences based on defined movement steps just along the P5/M3 axes. or,
just in one dimension using the PLR transforms? do these get much use in
real word arranging or are they just for academics and makers of YouTube
videos?
concerning selection of chord progressions, in principle one could provide
a library, but it might be nicer to provide a smooth CV capable solution,
for example based on common chord following rules?
one principle i would like to follow with the Riemann is that a
constrained settings one always gets a "correct" response/harmonics... but
when opening up one can go back to more complex twelve-tone based music
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGRXdO-QbbDRP1Db0-44ByZhpVkbPks5tZXqggaJpZM4SSPn0>
.
|
apart from the basic question in my previous answer (I am just trying to
understand what your goals are, what your interests and knowledge are, and
if and how I can be of any help), I think the soundscape approach is a nice
idea, although it may not be too much rooted in traditional harmony. More
complex chords would be very nice for that, I agree. We'll get back to that.
As you say, traditional harmony gives quite unspectacular results most of
the time, because, well, it's just a bunch of chords that fit well
together, so it sounds really familiar. That's why I haven't used the
Amalgated harmonics stuff much, because the result is quite predictable.
In that light, the randomish approach of Martin Lueder in using Riemann
gives more interesting results, although they too are quite distant from
traditional harmony.
I think we could come up with a sequencer that's way more interesting than
the chord seq of Amalgated harm. It could be that would be combined with a
sort of chord matrix.
Because, as I understand it now, there's a need for vertical structure (how
the chords are built) and horizontal structure (which chords are used, how
they connect, and how long they are used).
Do I make any sense?
2018-02-28 17:37 GMT+01:00 Joop van der Linden <joopvanderlinden@gmail.com>:
… Maybe it would be a good idea to take a step back. What would you like to
accomplish?
2018-02-28 17:24 GMT+01:00 gbrandt1 ***@***.***>:
> ok, restrictions to a certain scale+root are definitely on the menu.
> acutally they are already in development and mostly working, i'm just still
> considering things like selection knobs etc.
> i'll probably replace the transposition knob (which i now think doesn't
> make too much sense the way it's implemented) with root / scale knobs.
>
> for a visual guide to the basic chords I,II, ... you mention i was
> already considering labels (as in Navichord), will implement and check if
> that doesn't make the field too busy.
>
> concerning dropping chords other than major/minor for now and chords with
> more than 4 parts this makes sense but i think is easy to do with the
> existing knobs. but i already have some other tools that constrain to only
> maj/min chords and i find the progressions they provide sound quite basic.
> so i agree to constrain to them first but i would like to keep the other
> options open. more complex chords i think are quite interesting for ambient
> styles, in a quite static arrangement with almost no movement, just to
> steer different drones/oscillators that will form a complete, harmonically
> fitting total soundscape together?
>
> concerning a sequencer, there is already the Amalgated Harmonics
> offering, so we should come up with some thing different than that. since
> we can reach everything with just two dimensions it might be an idea to
> provide sequences based on defined movement steps just along the P5/M3
> axes. or, just in one dimension using the PLR transforms? do these get much
> use in real word arranging or are they just for academics and makers of
> YouTube videos?
>
> concerning selection of chord progressions, in principle one could
> provide a library, but it might be nicer to provide a smooth CV capable
> solution, for example based on common chord following rules?
>
> one principle i would like to follow with the Riemann is that a
> constrained settings one always gets a "correct" response/harmonics... but
> when opening up one can go back to more complex twelve-tone based music
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <#14 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AfyGGRXdO-QbbDRP1Db0-44ByZhpVkbPks5tZXqggaJpZM4SSPn0>
> .
>
|
yes, that makes sense. but i think it might move away a bit from the tonnetz-traversal based approach if taken literally. it sounds more like the Chords view and sequencer in Sundog Song Studio, where there is a chord matrix and a sequencer as you suggest. so as i said i would prefer to sequence "instructions" for moving to positions on the tonnetz rather than directly entering chords - the result should, at "moderate settings", of course be comparable. sorry if my stream-of-consciousness style answers seem not very well defined - they're not. i just want to play with harmony in a flexible and CV controllable modular way and i think it's a novel terrain we're entering here, there's not much precedent - closest are the o_C Automatonnetz and Tonnetz Sequent but they're definitely not as powerful and intuitive as what i hope to achieve. |
Well, I just want to help out, use my knowledge for the benefit of Rack
and/or modules and developers I like.
And you said you wanted a more tonal approach, and did not have much
knowledge about that.
So I am just thinking about a tool that would be of use for Rack, with a
tonality based approach to harmony.
I do not really understand the Riemann (tonnetz) system as a means to
create interesting harmonic structures. As I understand, it was invented
for just intonation, that's a totally different area.
Riemann is based on movement around 5ths and 3rds axes (axises?) That's not
wat harmony does. Harmony is based around scales and the chords built on
each scale.
2018-02-28 20:56 GMT+01:00 gbrandt1 <notifications@github.com>:
… yes, that makes sense. but i think it might move away a bit from the
tonnetz-traversal based approach if taken literally. it sounds more like
the Chords view and sequencer in Sundog Song Studio, where there is a chord
matrix and a sequencer as you suggest. so as i said i would prefer to
sequence "instructions" for moving to positions on the tonnetz rather than
directly entering chords - the result should, at "moderate settings", of
course be comparable.
the vertical structure and horizontal structure you mention should be just
a (not neccessarily continuous) path along chord root notes on the tonnetz
- along with information about what chord shape to play at each point on
the path (for basic maj/min triads this is fully defined by the position of
the playhead), encoded in terms of, for example, a vector on the tonnetz.
one idea i have there is to perhaps define a secondary point orbiting the
playhead, to define type and part number of the chords.
but, as you say, it may be better to leave that feature to a later version
and focus on the basics first.
timing can come from whatever clocks the sequence, i would outsource that
for now (the arpeggio in my own example is timed by an euclidean rhythm
from an SNS, for example).
sorry if my stream-of-consciousness style answers seem not very well
defined - they're not. i just want to play with harmony in a flexible and
CV controllable modular way and i think it's a novel terrain we're entering
here, there's not much precedent - closest are the o_C Automatonnetz and
Tonnetz Sequent but they're definitely not as powerful and intuitive as
what i hope to achieve.
so maybe it would be easier for you to say what you would like to see in
the module rather than trying to understand what i want?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGf5jYoHa5FUoSmtXU6gQfa_Jl4zaks5tZa9jgaJpZM4SSPn0>
.
|
and your help is useful and i appreciate it! as far as i understand the tonnetz, it was originally set up for just intonation but if done in that way is not actually a repeating structure, but infinite. the modern tonnetz is based on equal temperatment which allows it to wrap around and be completely represented by a 12x12 matrix, or - as in Riemann - even by a 3x12 matrix when wrapping so that the major third axis is aligned. |
So if I understand correctly, the sequencer would define the root note of
the chord, and the tonnetz the structure of the chord? That would work!
About the sequencer: I suggest each step has a duration protocol, from
1/4th (or even 1/8th) to 4 or 8 bars. So you can easily create interesting
forms. The thing about harmony is that the rhythm of the chord changes are
where it gets interesting. (and the top note, by the way)
2018-03-01 10:31 GMT+01:00 gbrandt1 <notifications@github.com>:
… and your help is useful and i appreciate it! as far as i understand the
tonnetz, it was originally set up for just intonation but if done in that
way is not actually a repeating structure, but infinite. the modern tonnetz
is based on equal temperatment which allows it to wrap around and be
completely represented by a 12x12 matrix, or - as in Riemann - even by a
3x12 matrix when wrapping so that the major third axis is aligned.
i think to marry the two things - traditional chord progression within a
scale, and the tonnetz style playfield - the crucial thing might be the
interface between the sequencer and the tonnetz, a protocol that describes
chord progression as a sequence of steps on the tonnetz. the sequencer
could look like a traditional sequencer where chords are entered in the
numerical form (I, ii, III, ...) but it outputs CV voltage which takes
appropriate steps on the tonnetz to move to the position representing that
chord.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGXYAUKXjD_hquCB5Gcw_LsrdVILuks5tZ8ANgaJpZM4SSPn0>
.
|
i thought in Roman numeral notation of chords the root note doesn't really come in once the scale is defined (which can be done on the Riemann itself) - you just have I-IV-V-I etc... . but for modulation it's probably best to also track it. |
The Roman number is the root note of the chord. So in the key of C (root
note of the scale) the III chord has a root note of E.
top note is, indeed, voicing, and the melody of the chord sequence.
Which brings the question: what are the chords going to define? Static or
moving chords (where the top line is the main melody) or a chord skeleton
for melodies or other stuff that will follow the chords?
Rhythmically, I am thinking along the lines of Bidoo's dTroy, where each
step has a repeat function. So if you would have 8 or 16 steps, each step
could have a user definable length. So that would not really be a repeat
function, but a length choice.
Rows would be great for the upper chord notes. Selection switch for the
number of chord notes (from 3 to 7, if you want to include 13th chords).
And a few options: maj/min3, natural/dim/aug5, maj/min/dim7 (the last could
better be called 6), maj/min9, natural/augmented11, maj/min13. Where you
could ask yourself if all functions should be available all the time, for
instance a maj3 will not (theoretically speaking) go together with a
natural 11, or a diminished9 will not go together with a min3.
Btw, diminished 9 is usually called flat nine, same for diminished 5 etc.
Keep in mind that the scale, and the steps in the scale, dictate a certain
chord order: I-maj, II-min, III-min-, IV-maj, V-maj, VI-min, VII-dim.
That's in major. Minor comes with its own complications, because you will
have to define what minor scale you use. And then there's blues scale,
which is sort of major with flat7's. Pentatonic, which is a variation on
maj (or min, depending on your view).
Oh, are you familiar with the concept of parallel tonalities? Where Cmaj is
parallel to A natural minor, because they share the same notes in the
scale? That's a theoretically solid way to organise the scale root notes. I
can elaborate some more, but that could be a very efficient way, in a
similar way as the Riemann.
2018-03-01 11:50 GMT+01:00 gbrandt1 <notifications@github.com>:
… i thought in Roman numeral notation of chords the root note doesn't really
come in once the scale is defined (which can be done on the Riemann itself)
- you just have I-IV-V-I etc... . but for modulation it's probably best to
also track it.
same goes for the top note - you are referring to voicing/inversion here?
rhythm as i said i was planning to provide via rhythmic clocking but this
can be reconsidered - right now there isn't any sequencer around that let's
users easily define arbitrary rhythmic structure i think. workarounds are
needed where, for example on Seq3, the first row is used for the (root)
note, the second for the duration - and in our case, the third row could
then define the voicing. food for thought.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGdVfYy6B1sk-5xnvqNUFg0V649i_ks5tZ9JrgaJpZM4SSPn0>
.
|
btw I just realised things would get really interesting once a random
function is included.
Sort of a chord version of Martin Lueders quantum, combined with a
Turing-ish randomness.
…-a Turing generated melody with 4 (or less, or more) voices (block chords,
like the sections in a bigband, or a string section), following a chord
structure. The chord structure could either be manually or randomly
determined. Sort of automatic harmonisation of (random) melodies.
-a slowly evolving chord structure, following natural steps of a scale, or
(manually or randomly set) alterations.
2018-03-01 12:15 GMT+01:00 Joop van der Linden <joopvanderlinden@gmail.com>:
The Roman number is the root note of the chord. So in the key of C (root
note of the scale) the III chord has a root note of E.
top note is, indeed, voicing, and the melody of the chord sequence.
Which brings the question: what are the chords going to define? Static or
moving chords (where the top line is the main melody) or a chord skeleton
for melodies or other stuff that will follow the chords?
Rhythmically, I am thinking along the lines of Bidoo's dTroy, where each
step has a repeat function. So if you would have 8 or 16 steps, each step
could have a user definable length. So that would not really be a repeat
function, but a length choice.
Rows would be great for the upper chord notes. Selection switch for the
number of chord notes (from 3 to 7, if you want to include 13th chords).
And a few options: maj/min3, natural/dim/aug5, maj/min/dim7 (the last could
better be called 6), maj/min9, natural/augmented11, maj/min13. Where you
could ask yourself if all functions should be available all the time, for
instance a maj3 will not (theoretically speaking) go together with a
natural 11, or a diminished9 will not go together with a min3.
Btw, diminished 9 is usually called flat nine, same for diminished 5 etc.
Keep in mind that the scale, and the steps in the scale, dictate a certain
chord order: I-maj, II-min, III-min-, IV-maj, V-maj, VI-min, VII-dim.
That's in major. Minor comes with its own complications, because you will
have to define what minor scale you use. And then there's blues scale,
which is sort of major with flat7's. Pentatonic, which is a variation on
maj (or min, depending on your view).
Oh, are you familiar with the concept of parallel tonalities? Where Cmaj
is parallel to A natural minor, because they share the same notes in the
scale? That's a theoretically solid way to organise the scale root notes. I
can elaborate some more, but that could be a very efficient way, in a
similar way as the Riemann.
2018-03-01 11:50 GMT+01:00 gbrandt1 ***@***.***>:
> i thought in Roman numeral notation of chords the root note doesn't
> really come in once the scale is defined (which can be done on the Riemann
> itself) - you just have I-IV-V-I etc... . but for modulation it's probably
> best to also track it.
> same goes for the top note - you are referring to voicing/inversion here?
> rhythm as i said i was planning to provide via rhythmic clocking but this
> can be reconsidered - right now there isn't any sequencer around that let's
> users easily define arbitrary rhythmic structure i think. workarounds are
> needed where, for example on Seq3, the first row is used for the (root)
> note, the second for the duration - and in our case, the third row could
> then define the voicing. food for thought.
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <#14 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AfyGGdVfYy6B1sk-5xnvqNUFg0V649i_ks5tZ9JrgaJpZM4SSPn0>
> .
>
|
yes sorry, i wasn't clear about differentiating root note of the scale (ie. root note of the tonic, C for C) and root note of the individual chords. and yes the rhythmic structure traditionally available in modular is this "ratcheting" (afaik Schulze et al. built an entire career on that ;-) ) - which is not the same as defining note length since it repeats notes rather than making them longer. i am familiar with parallel tonalities, in the beginning i wanted to just implement two nested circle of fifths (outer circle for major, inner circle for parallel minor tonalities) and then enable walk around producing a simple fifth or fourth progression. but then i realized if a added just one third row i could cover the entire space of the tonnetz, enabling two dimensions to traverse. i'll give a thought how to implement a way to automatically follow restrictions and complications you mention correctly. this is indeed the field i'm least familiar with and where your help is most valuable. and yes, random traversal should always be possible. it's what i did in my initial video example by way of the Two Drunks module. |
you know quite a lot more about harmony than I initially thought :)
2018-03-01 13:22 GMT+01:00 gbrandt1 <notifications@github.com>:
… yes sorry, i wasn't clear about differentiating root note of the scale
(ie. root note of the tonic, C for C) and root note of the individual
chords.
and yes the rhythmic structure traditionally available in modular is this
"ratcheting" (afaik Schulze et al. built an entire career on that ;-) ) -
which is not the same as defining note length since it repeats notes rather
than making them longer.
i am familiar with parallel tonalities, in the beginning i wanted to just
implement two nested circle of fifths (outer circle for major, inner circle
for parallel minor tonalities) and then enable walk around producing a
simple fifth or fourth progression. but then i realized if a added just one
third row i could cover the entire space of the tonnetz, enabling two
dimensions to traverse.
i'll give a thought how to implement a way to automatically follow
restrictions and complications you mention correctly. this is indeed the
field i'm least familiar with and where your help is most valuable.
and yes, random traversal should always be possible. it's what i did in my
initial video example by way of the Two Drunks module.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AfyGGUKND9fAHIuzHqx3jnpHNnXwfmszks5tZ-gKgaJpZM4SSPn0>
.
|
i did quite some reading on music theory in the past years. what i lack is practice and experience of actual composition. |
Hey, just wanted to chime in on some ideas. This is a fun module. joopvdl has some good ideas...though it might be nice to open up the possibilities some more. Firstly, I think the definition of "traditional" harmony has changed quite a bit over the 20th century. Starting with the idea that one chord necessarily leads to only a certain few options of other chords. That was kind of expanded very early (Debussy, Schoenberg, Stravinsky, etc, etc.) Some good reads on this subject are Persichetti's "Twentieth Century Harmony" and Ludmilla Ulehla's "Contemporary Harmony". They discuss the opening up of harmony to allow any note/chord to progress to any other note/chord. That said, there are still some traditional devices which sometimes come in handy, such as voice-leading. All of that said, we also have the influence of pop, jazz, folk, etc music which is very much tied to traditional harmony pre-20th century. I see two possibilities which could allow for a very wide range of compositional processes. The first is, as joop mentioned, basically a chord sequencer where you can just dial in the sequence you want (Gratrix's "Chord G-1" module sort of does this). Another is having ways of constraining the array of chords, like "C Major" or "quartal" or "chromatic". Or even combinations, like "C Major/all major chords" (meaning only play Cmaj/Fmaj/Gmaj chords). And as in joop's idea, constraining to certain traditional progressions (if that's really possible, you get into larger compositional forces there, like cadential patterns, that may be better done with a DAW). Also, just a minor quibble...joop mentioned the major chord with natural 11th...yes, in certain types of harmony, this is a clash because you have the rub of maj 3rd and p4. But it's just fine in some circumstances when that tension is needed (film music, anyone?). Again, I guess something like that can easily be optional via a parameter. What if the module is very similar to what you have now, but with the addition of a parameter for scale constraints (with a menu ranging from maj/min to synthetic scales), a parameter for chord types (all maj, all sus, quartal, default [aka adhere to scale], etc.) This way, you have the option of non-diatonic progressions, as in the current version, or constraining to a scale, or only the major chords of that scale, for example. If they could be changed by CV, that would be cool too. Then maybe a CV parameter for how it jumps, but instead of just 3rds/5ths, it could be any interval or random, or in accordance to traditional diatonic harmony. A great graphic component of this could be that the matrix greys out the notes that aren't available in that scale. |
Hi everybody, I wanna chime in even if this seems to be a pretty dead convo. There's a book outlining how a chord generator putting out musical and aesthetically pleasing chord progressions programmatically. It's by a guy called Timoczko called 'A geometry of music' and it features a lot of graphs whose nodes are chords and the edges transformations/modulations which would be permissible in the western tradition of functional harmony. Doing the same thing as Riemanns torus, traversing the graph produces sensible sounding chord progressions. When I saw that stuff, I immediately thought it'd be supernice to have a module implementing them, have a look: I'd be willing to help where I can. My background is in python/pure data rather than C/C++ though. |
Hi guys, just to give a sign of life and let you know that while development of my module package is indeed currently stalled because I'm busy with other projects (a.k.a. work, personal life, etc.) it is not dead. I am in fact aware of Timoczko's work and read some of his papers available online. However, just as the whole Neo-Riemannian approach I now agree that all of it is more suited towards analysis rather than generation. Nevertheless I've been giving a lot of thought on how these musical structures can be implemented into modules, either into an extended version of Riemann or individual modules for different models / chord structures. I can't promise when I can get back to development, but of course I don't want my package to drop out after the 1.0 release. so maybe around the release time I can pick up. Cheers! |
Stuff happens, such is life. I really can't fault you for prioritising, But if you can, don't let your modules fall of the train, they are too good to loose, you know. Oh, so you checked and Timoczko's ideas aren't the way to go either? Oh, that's dissapointing, he made a point of insisting his concepts are derived for composers rather than theoreticians, The thing I would wanna see markov chain chord sequence, where the state diagram is somehow restricted to only allow transitions to chords targetable by standard modulation techniques (common tone, parallel key, enharmonic, giant steps type substitutions, or somesuch talking outta my ass here anyway (:). Oh, but that's essentially your Riemann chord generator with a different diagram, and built in randomisation, right? >.< Whatever, I'm curious as hell about what you'll come up with. |
Hey Gerhardt,
the Riemann module made me think about the following.
You say you have no capability to compose tonal music (or something like that).
What about a bit of help from me?
I am a trained composer and arranger. I find the Riemann thing interesting, but quite complicated. I could help you out designing a chord creator that's easier to use, and built from a composer's perspective.
Would you be interested?
The text was updated successfully, but these errors were encountered: