Page 1 of 2

HarmEx

Posted: 28 Mar 2013 23:29
by Rolix
Hi everybody,

I uploaded my first template: http://liine.net/en/community/user-library/view/372/

It's a template for experimenting with scales, chords and chord progressions. Manual included in the zip file.

Feel free to post anything concerning HarmEx in this thread.

Cheers,
Roland

Edit: current version is 1.4. For a history of changes, please see the history file included in the download archive.

Re: HarmEx

Posted: 29 Mar 2013 00:49
by Joe Soap
Dude - didn't you used to drum with Big Black?

Love that Legal Notice!

Do you know, I think I might? :D

Danke :).

Re: HarmEx

Posted: 29 Mar 2013 00:59
by Softcore
I wanted to see the legal notice....



....lol.....

Thanks!

Re: HarmEx

Posted: 29 Mar 2013 03:27
by Macciza
Hi
Congratulations on an excellent contribution that will no doubt please many in the community - hope it all works out for the best.
Hmm - seems like you a beat a few of us to the release, I know that a few people are working on similar open-source Chord products . . .
And damn it - You beat me with the Circle of Fifths, too - Though mine is implemented differently and includes a few 'extras' as well.
Perhaps setting the RingArea 'speed' to 0 would help so that the cursor simply remains in the middle, rather than moving about . . .

Had a few weirdness's happening at times on the first muckaround running it into Live and various ControlSurface mappings but nothing major
Will have a bit more of a look at it all later to see if I can work out what the issue was, and get back to you with further comments . ..

Maybe I should pull my finger out and just release a lite version of what I have been working on rather than holding off for the fully completed product
And yep, an interesting legal notice there - Just wondering if that means I am not allowed to 'be upset, or serious' when using it . . . (Just joking of course ;~}

Cheers
MM

Re: HarmEx

Posted: 29 Mar 2013 08:44
by Rolix
Hi

thank you for your feedback, much appreciated!

@Macciza: damn it, I wanted to have a break from coding HarmEx, but your remark on a few extras in your Circle of Fifth made me ponder... ;) I added a new feature to it, see the version notes in my first post. Concerning the legal notice: if you have fun in being upset go ahead, it won't violate the rules :)

BTW, I didn't know others were working on similar templates. I've had this idea spinning around in my head for quite a few years but regarded it too much work for a real program. That's what I love about Lemur, it makes it so easy to build tools like HarmEx. Originally I wanted to make an OpenGL based harmonie tool in 3D space, maybe I'll do once I'm retired.

Cheers,
Roland

Re: HarmEx

Posted: 29 Mar 2013 09:49
by wul
Nice one . i will abide by your legal notice.

getting a few hanging notes though when playing too quick or sliding from one chord to another , its a problem i have with mine although its getting much better i get round it by increasing the attack envelope slightly on the pads, or just simply slooooowwww down

did i read somwhere it only took a couple of days to code......... what will next week bring?

well done and thanks

Re: HarmEx

Posted: 29 Mar 2013 10:42
by Rolix
Thanks wul!

I'm having the hanging notes too, will try to solve this soon, thanks for your suggestion on the pad attack env.

Took me about 2 weeks to code, I had the first prototype ready in about week with all of the processing and data logic buried in UI controls, second week was a complete refactoring and adding a few bits here and there. I have a few ideas for upcoming releases, but wanted to have a break from coding now and finally use this tool :)

Re: HarmEx

Posted: 29 Mar 2013 11:26
by wul
I spent an age staring at midiox trying to determine which pad was causing the hanging notes, i use multipads for the chord audition and memory areas that made the problem worse , had to force them to act like radio switches. actually to be honest i didn't think using seperate individual pads with there own midiout's would cause a hanging note problem .
another method i used to make sure all note offs were sent was to use a last_chord array
i thought i was doing well time wise ..... maybe not . as i seem to spend more time playing with it than development

Re: HarmEx

Posted: 29 Mar 2013 12:04
by Rolix
I used custom midis in the first prototype but abandoned them due to the blast of notes and other problems they were causing when opening the template. Now I'm using two vectors, one for the Pitches and one for the Triggers, and iterate them to finally send the midi notes using noteout(). Like this:

when a scale pad is pressed:
zio.ScaleOut.Pitches = m.Scales.current.Pitches; <-- these are calculated when you choose a scale, key or octave
zio.ScaleOut.Trigger = x; <-- from the multipad
zio.ScaleOut.Play();

the Play() function:

decl t = Trigger, p = Pitches;
decl i, z = sizeof(Trigger);
for(i=0; i<z; i++)
{
if (t != PreviousTrigger)
{
if (t)
noteout(Target, Pitches, Velocity, Channel);
else
noteout(Target, Pitches, 0, Channel);
}
};

PreviousTrigger = Trigger; <-- keeping track of the pads that really changed

I've located one problem area that forces hanging notes in HarmEx, that's when you keep a scale pad pressed and tap a chord pad that recalls a scale which then calculates a different pitch unter the pressed scale pad. I'm not sure how to solve this yet, seems I'll have to implement a deferred scale change once all scale pads are released.

Re: HarmEx

Posted: 29 Mar 2013 14:23
by Macciza
Hi
Cool interesting addition - sorry to add more work for you . . . I guess I should mention the possibility of constraining the cursor slightly inside the border, or adding text popups then . . . . Though thats not what I'm doing . .
The 3D OpenGL thing sounds interesting - seen some interesting stuff done with various synthesis methods (Corpus based synthesis / Audio Mosaicing etc) in 2 & 3D that was pretty cool - could see how it might relate to your idea . . .
There is a bit of overlap between your scales and modes as well but its nothing too major and potentially easily sorted - I'm not too bad at a bit of theory though I am not always that good in it's application/use - too many conflicting approaches

I've been coming at from a didactic perspective - which unfortunately has had me caught up in various ways of representing the various information, and building it more as a library resource thing, if that makes any sense . .
So initially i looked at ways to represent a scale- alphabetically, numerically, binarily, intervallicly etc and the different ways one might make use of the different representations
So thats led to several unique base scales all with several non-overlapping modes, plus some pentatonics and synthetic scales - ending up with over 70 pretty much independent scale/modes . ..
So then I looked at concentrating a bit more on just 4 or 5 of the scales and generating tertiary chords out them, giving conceptually over 30 chords to each scale, before deciding to look at including some quartal harmony to generate some chords I had missed . .
Then I unfortunately started at looking at synonyms / substitutions but that gets quite complicated to deal with - stuff like C6 = Am7 is ok but that then leads to Cm6=Am7b5=F9(no root)=B7b9+(no root) and decided against further explorations
At various points along the way I got sidetracked off into possible inversions and voicings, arpeggios, etc., some novel GUI representation ideas and a few formulas only marginally related to the real core idea yet still have not even really made a sound . . . .

Unfortunately all this thought still needs a bit of time to simply settle and cogitate over before continuing in whatever system / direction / implementation seems to stand out as a particularly good way of actually bringing it together and doing it . . .
I guess I kind of just enjoy the whole thought process and possibilities that all this raises even if I don't actually go/get anywhere with it all, which is quite possible due to my Completion Anxiety Disorder, but it has been a fun journey none the less . . .
Maybe I should just get a bunch of the resources I have made together and hand them over to someone who will actually get around to completing something 'non-commercial' rather than just leaving it sitting around taking up space on my hard drive . . .
It's kind of like a all of the other somewhat unique/novel 'proofs of concept' for a whole bunch of other stuff that also has not really seen the light of the net yet, particularly since the whole 'commercial' issue raised it's ugly head . . .

Anyway hopefully some of this makes some sense to someone and it doesn't just come across as the ravings of a lunatic going through a slightly manic phase in the wee hours of the morning . . .

Cheers all . . ..
MM

Thankfully I remembered to copy all that before hitting submit so I can now paste it back in . . .
And oh yeah - maybe you want to look into the various triggering modes available to get around the scale changing issues . . .