Welcome to %s forums

BrainModular Users Forum

Login Register

harmony rotator.

I need help on a Patch
Post Reply
seamus
Member
Posts: 484
Contact:

Unread post by seamus » 27 Sep 2012, 23:10

http://www.sensomusic.com/forums/upload ... %205.1.pat


i have been trying to build a harmonic rotator similar to the oberheim rotate mode.
This rotator works except there is one problem i cant overcome.

If one of the voices in the rotation receives a note on for the same note it just played the note wont sound.

ex:

V1 c3 d3
v2 e3 e3
V3 g3 f3


the second voice of the second chord wont play because it is receiving the same note.
Can anyone help?

bsork
Site Admin
Posts: 1334
Location: Asker, Norway
Contact:

Unread post by bsork » 27 Sep 2012, 23:54

Hi, I took a quick look, and to me looks ok. However, I did try with input from a keyboard with NoteOns and NoteOffs. I you maybe only send NoteOns to monophonic synths or samplers, you would mostly when repeating the same note number either get no reaction like you describe, or a retriggered note.
Bjørn S

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 28 Sep 2012, 00:19

http://www.sensomusic.com/forums/upload ... stream.JPG


here is an example of my midi stream. i send note ons and offs.
This rotator doesnt work perfectly. Im not sure how to fix it.

bsork
Site Admin
Posts: 1334
Location: Asker, Norway
Contact:

Unread post by bsork » 28 Sep 2012, 09:05

I suppose the screenshot is from some MIDI monitor before entering Usine? I also wonder whether you don't get any action when the input note changes, and the output from the rotator should change as well?

If the problem appears only with repeated input notes, I think I see the problem. In the screenshot the NoteOff of the first note comes after the NoteOn of the next note. That would mean that whatever's listening to the MIDI stream receives two NoteOns for the same note without a NoteOff between them. Are you using some kind of step module or sequencer as the input source? If so, try to avoid the "legato" style of note stream and make sure that the NoteOffs come before the next NoteOn.
Bjørn S

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 28 Sep 2012, 15:51

seamus wrote:http://www.sensomusic.com/forums/upload ... %205.1.pat


i have been trying to build a harmonic rotator similar to the oberheim rotate mode.
This rotator works except there is one problem i cant overcome.

If one of the voices in the rotation receives a note on for the same note it just played the note wont sound.

ex:

V1 c3 d3
v2 e3 e3
V3 g3 f3


the second voice of the second chord wont play because it is receiving the same note.
Can anyone help?
I don't know how it would be done in Usine, but here is an example of simple code to address such a problem:
public decimal Value
{
get
{
return _value;
}
set
{
if (_value != value)
{
_value = value;
if (_propertyChanged != null) _propertyChanged(this, new PropertyChangedEventArgs("Value"));
}
}

}
If you take a moment to think about it essentially if you are playing the same note as which is already recorded you don't need or want that note to be recorded again (or triggered more than once) so what you need is to filter out the notes with the same value as what is being played during recording, maybe someone more familiar with Usine can help you out with that.

of course in Midi you want to use ( bit #7 clear) in a filter on incoming data, if a incoming note matches a note from the recorded data bit #7 clear will be sent and cancel out unwanted duplicates allowing the processor to move onto the next task.


jerm :cool:

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 28 Sep 2012, 17:56

I just took notice Usine uses Pascal.

in that case you would have to create a function (or use and existing one) and declare a variable to be used, from the help page:
function function_name ( param1 : type ; param2: type ; … ;
paramN : type): type_of_result;

Var variable_name : variable_type; // here you declare the local variables used in your function
Begin
// Here’s the code of your function, assign the result of it to the variable Result
Result := ….;
End;
the type would be Tmidi I think, geez it's been so long since I've done anything in Pascal, high school I remember bits and pieces....
I would probably attempt to add the filter in the Box you have labeled "transpose".

I like this patch thank you sharing it, I was unable to duplicate your problem but did notice some unusual behavior as far as how it reacted to notes of various velocity.
A heavy note (vol 90--127) produced the triad, a lighter note (vol 10-50) also produced triad, however notes inbetween produce nothing..

I don't know if that is intentional or not, but can see how it may be advantageous in the right circumstances.


jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 28 Sep 2012, 23:00

Bjorn wrote:
That would mean that whatever's listening to the MIDI stream receives two NoteOns for the same note without a NoteOff between them. Are you using some kind of step module or sequencer as the input source? If so, try to avoid the "legato" style of note stream and make sure that the NoteOffs come before the next NoteOn.

Yes that's the problem. I am using a wind controller (ewi) so unfortunately legato style playing is desired sometimes.

If Jeremy can add the code somehow I would be grateful but unfortunately code and pascal is beyond my reach.

Thanks for your input guys!

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 28 Sep 2012, 23:26

seamus wrote:If one of the voices in the rotation receives a note on for the same note it just played the note wont sound.
ex:

V1 c3 d3
v2 e3 e3
V3 g3 f3

the second voice of the second chord wont play because it is receiving the same note.
Can anyone help?
I took a stab at it, inside the code for "transpose> Module" I changed this line:


pKeep := CreateParam('keep input', ptSwitch); SetIsOutput(pKeep, TRUE);

from False to True in all four modules,

Now if I send in a C chord in octave 5 with setting "forecast" these notes comes out:

First press:
G# 4
E 4
B 4

Second:

E 4
G# 4
B 4

Third:

A 4
F# 4
D 4

Forth:
E 4
G# 4
B 4

The C 5, D 5, and E5 never make it through to the midi out port (which had to be created for this patch), although I can hear them at the same time since they are also going to external modules.

jerm :cool:

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 28 Sep 2012, 23:33

seamus wrote:If Jeremy can add the code somehow I would be grateful but unfortunately code and pascal is beyond my reach.
huh, someone coming to me for code help, that will be the day! lol :lol:

the guys that right these Pascal scripts are pro's and grad students, I'm just a musician with no formal training in such matters....

I hope what I did works for you but if so it really was pure chance that it did, changing one parameter on or off is simple sometimes but I wouldn't consider it writing code.

HEy if you are a wind synth player you should check out what ONYX Ashanti is doing with pure data and his own "beatjazz" system if you haven't already, truly revolutionary stuff!

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 28 Sep 2012, 23:46

I will try changing what you changed and see if it helps.
Regarding Onyx Ashanti I saw a Ted presentation on him.
The setup was very cool and futuristic although I wasn't so keen on it musically. Perhaps there are some more clips I can listen to.

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 29 Sep 2012, 00:06

seamus wrote:I will try changing what you changed and see if it helps.
cool def let us know it will make my day to know if it helped.

from what I gather that command string passes incoming notes to the output, since disabling it with the value of TRUE they no longer go anywhere once they are received, with any luck that will solve a simple double midi note dilemma.
seamus wrote:Regarding Onyx Ashanti I saw a Ted presentation on him.
The setup was very cool and futuristic although I wasn't so keen on it musically. Perhaps there are some more clips I can listen to.
He has come a long way in the last few years in sounding more organic due to better control of data stream, implementation and synthesis.

I mostly follow the tech, not so much the music, although I do like the organic direction it is taking.

jerm

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 01:50

it still happens. i can build a similar rotation scheme in Kontakt by transposing samples and round robin use of groups. It is more time consuming and only works on samples but i dont have the dropouts that i have with my Usine rotater. Would sending a midi file from my ewi help? perhaps i just need to articulate more ;)

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 02:45

http://www.sensomusic.com/forums/upload ... %202.1.pat


What is interesting is that this harmonizer that was made by fleau and that i adapted to send out to 4 different midi channels does not have the problem of my rotator. Perhaps i can add my rotation stuff to this harmonizer.

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 03:26

jeremysdemo wrote:I like this patch thank you sharing it, I was unable to duplicate your problem but did notice some unusual behavior as far as how it reacted to notes of various velocity.
A heavy note (vol 90--127) produced the triad, a lighter note (vol 10-50) also produced triad, however notes inbetween produce nothing..

I don't know if that is intentional or not, but can see how it may be advantageous in the right circumstances.

Actually that may be the source of the problem. I didnt notice this before but your right. Where is the volume filtering coming from?
i never intended to have this as a feature.



jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 03:27

oops messed up the qouting.

my reply



Actually that may be the source of the problem. I didnt notice this before but your right. Where is the volume filtering coming from?
i never intended to have this as a feature.

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 03:57

now i am not getting the volume filtering issues. the real culprit is the note off/on issues. When moving from chord to chord if the voice has the same note as the last voicing a double note on produces silence. Im not sure how to get around this problem

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 29 Sep 2012, 05:19

seamus wrote:a double note on produces silence
exactly!

that was why I changed that part of the code, it seemed to indicate input note~output note, if memory serves me correct in Pascal it takes the sum of integers in this case how many FALSE or TRUE's come out of the equation for something to happen (in this case for incoming midi Data to go thru to the out port, I may have been wrong but...

it worked on my end, then again I am sending all 4 Modules out to my own midi output (instead of the MIdi Bus in the patch) and monitoring on Midi OX along with hardware synth modules.

Watching the data being put out the midi port thru Midi OX is how I know the original chord data (C major) is not being forwarded and the data of the offset dials, -7 -5, -22, -etc. is.

In theory if I set one of the dials to -3 and play a G 5 (3rdnote in a C chord) a E 5 should come out (which is also the second note in that C chord), however I am unable for some reason to change or save the changes to these variables in this patch so no way for me to test that since I don't own Usine all I can do is test presets and whatever they are set at, unless they are -6 -4 or -3 they don't correspond to any of the same notes in the original chord being produced.

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 11:31

Are you playing single notes in legato?

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 29 Sep 2012, 13:52

seamus wrote:Are you playing single notes in legato?
no chords on an Axiom25 controller/keyboard, the problem you described in the OP had to do with chords.

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 18:21

i will send a midi file and see if that helps to demonstrate my issue.

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 18:47

not so easy.... the piano roll doesnt record my aftertouch so i have to record midi in some other app like ableton.

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 18:51

it does record aftertouch. im just having problems sending the piano roll to the rotator for some reason

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 19:07

http://www.sensomusic.com/forums/upload ... 20roll.pat

load up this piano roll and send it to the rotator. select the patch 1st rotate and hit the reset button. It should start playing from just before bar 3 in the piano roll. if you reset the rotator before anything is played it should give an example of the double notes on producing muted notes in voices 3 and 4.

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 29 Sep 2012, 21:59

an couple of things I noticed today that I did not yesterday.

I cannot see how many nobs or rotators as you call them are in the patch, only 3 of them are visible at the size of the GUI in my USine.
Originally I only knew of 4 of them, the fourth one is out of vision off to the left but I knew it was there since I found the octave module in the layout.
Today, I find a FIFTH transpose module inside USINE, I now connected that to the MIDI out port that needs to be created in the patch so we are going to see different results as far as MIDI OUTPUT goes.

when I play your piano roll (connected to MIDI IN of transpose modules) using FOrecast preset queued up to 4th (so it will trigger 1st)I get this from MIDI OX output port monitor.

FIrst NOTe (F 6) in sequence produces:

A 3
Bb 4
F 5
G 3
G 3

Second nOTe (D6) in sequence, unable Rotator note rotating any more....it's not cycling through the steps from notes in the piano roll as it does from notes coming in MIDI IN...have to try and set that up earlier in the stream...

I see you have some sort of hard wiring changes in the Rotator, for example when I press D5 it goes from patch 1 to 15.


it's actually really hard for me to test this patch further since I don't own Usine I cannot save any changes so before I can even use it each time I have to make a MIDI OUT port and connect all the transposers to it, then I have to change that line of Pascal to TRUE so the incoming midi data does not get forwarded to output, THEN add in your piano roll and connect that to all 5 transposers....

sorry could not be of more help, still it is a learning process to be able to look at these patches and tinker with them.


jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 29 Sep 2012, 22:09

yes i think not owning usine makes it difficult. i appreciate your effort alot. you seem to be very knowledgable with computers and music. let me know if you get usine. i recommend it. it is a great program unlike anything else

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 30 Sep 2012, 15:24

I'm assuming you are trying to make something like this:

EWi harmonic expander

if the programs I was trying to make were already made so affordable I probably wouldn't be spending my time with USINE and MAX right now.

in any event this Xpander of John's would be a good program to dissect and see what challenges he overcame in the last two years.

I use a similar one Xposer from Zyklus IMPROVisor which is free, there you record your sequence and then step it into different keys with single notes from the instrument.

best of luck,

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 04 Oct 2012, 00:16

yes that guy has implemented the oberheim expander technique. I shall have to see if i can dissect his if he was able to overcome the repeated notes issue we have been talking about.

i would also love to commission a Usine genius. Any takers.? Name your price patch programming geniuses!

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 06 Oct 2012, 00:40

I guess your time isn't worth the $24 dollars that guy is asking for his program?

how much are you thinking to pay someone to make a EWi expander type USine program?

is there something wrong with his affordable program you are not wanting to use it?

I just don't get it. :/

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 06 Oct 2012, 02:54

oh no i will check his program out! It is worth 24 $. I dont know logic so well... only a cursory level of familiarity with the environment window but i will probably pick up some tips. I am not going to use logic ultimately because i have been seduced by Usine and all the things it can do.

jeremysdemo
Member
Posts: 36
Contact:

Unread post by jeremysdemo » 06 Oct 2012, 23:35

my mistake I did not notice it was for "logic" only....it does make sense you would want one as VST for use in any DAW

try this one out,

Harmony Rotator Beta

jerm :cool:

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 07 Oct 2012, 10:34

im flying back from POland today. gonna check this out. Fantastic thanks for your interest and help!

seamus
Member
Posts: 484
Contact:

Unread post by seamus » 12 Mar 2013, 20:43

im happy to say that the problems I was encountering before have now been solved. What i needed was a a simple "pass if changed" module so that a repeated "note on" of the same note does not cause a dropout. Usine rocks!

Post Reply

Who is online

Users browsing this forum: No registered users and 29 guests