Feature Requests

Locked New Topic
RELATED
PRODUCTS

Post

I look forward to trying the new one when it is ready.

Post

Feature Requests:

- Saving Randomizer settings and loading them via internal browser
- ImportingLoading normal melodic/ polyphonic midi-files via internal browser
(at the moment loading of midi-files crashes Nora and DAWs
- Option that the playlist walks with the DAW playcursor in playmod: playlist

Post

I've read you FR (I never ignore them). However I'd like to ask you more about the crash on loading the MIDI files. Could you please send one of these MIDI file to my inbox? support [] squaredheads [] com.

Post

Is there a window in Nora that the user can open to see a list of all the shortcut keys?

I would like this for easy reference while I'm working if possible.

Post

No, there isn't. I have in my to do list a keyboard shortcut editor. Would help if the future manual would have an easy table to print?

Post

I would prefer to have an icon the user can click to open up the shortcut list similar to this one but using just Nora shortcut keys of course. The workflow is better for me when I can look at the screen rather than a piece of paper. It will also be easier to keep the list current, especially when adding user-defined keys.
You do not have the required permissions to view the files attached to this post.

Post

Yes, I have a similar idea like that, but with user editable shortcuts.

Post

no rush

Post

found this topic :D

is it possible to send the notes out(per pitch) from Nora with different channels to able to send them to different tracks in AL(using its channel input filter), PXT-Live Push extension can send the notes this way so u can add different effects to different chord voices for ex.

Image

can we do this already?
"Where we're workarounding, we don't NEED features." - powermat

Post

i do not know if its useful to you but,
you can do this via workaround

Image

Post

By default every single note in Nora has its own hidden channel (1-16), but at the moment it's setup in "auto" (and it is not used editable until I create a tool for it), which mean something like "create a midi note with the same channel than MIDI input". Thanks to this the final user don't have to worry about MIDI Channels, except the Pattern Editor Output.

In a picture:

Image

So, the best way to do it nowadays is changing the input note channel, or using different outputs like yellukan is showing.

Does it solve the problem?

Post

created a velocity based splitting at the end by a custom max device

Image

<pre><code>
----------begin_max5_patcher----------
868.3oc0XssaaBCF95To8NfPZ2kEg4L6tsWippHGvswofMx1IMcU6ce9.gPN
.gPZnZ2XGrM3uuO+ex4iu8vD6EzsHts0OsdzZxjOjiLQOlZjI6FXhcAbaZNj
qWnMA8FcwJ6oUyIPaE5wKYnRDIyBSD0SRVWfI4Hg9MA6FsDJRWhIuLmgRElM
GDDMyYpkWnupKLP055Lyw5ocuDNSuKxs9GAM+9z0hS1.t38bjd40qzrLw6kH
yFZaa8jdp+9sGT8xto8WBVWr.wF.KSzDyC3p5Bb5jkt0eeoxxQDATfoji1BF
r.IPr4HBbggxNm6sZfAesBmD0FBNTRcuJIcpk8BH4kaRZaw5p.mgelxJfsXb
E0gr6ooomShpK1sSU229SPHzt.2nIVG5fb+tdauJQHNV04G0oH30hH3bFQ3S
mg6hiPnBzPoIHDn5h7OklOSIBN9OZzCTK9T5Ga2bwDoKldpewvvbqeSyy9xi
+zlzASe87RlaGRVUDAOs8g2fTL.3+LIaCjUCxU7SUxUbqzkTVFuLGKDsEq28
hFhtdg5fNCTVcGIYsd4vMnr4xsVRi4PgfgWrVXJPXxdkUhFbNpFMmUnZI4jY
xpCvAcP9JOGm03.ojQETEapwCu.lm+J58ETHau.UPyPGHM89jDXJJAjnyejn
irnJWYur81Rr.I2wTZNkYdImYINIwN9Sa4WsjyO5xI8oO+LGINHbLSlz0PtZ
drHWFK3XH4LsQCnIFFRkDt5jHlZYh0RTfWOpjX4wnJLwAjDpPUrGvKxSCsiv
2Uj0U0cGhs9cqFdi821wTzwMEb0MbLhBbmjMUVbL45yiaTLPno0cXgOGpv4M
Pyt1r9Ln1NGSN4xVZpql3HwkSWyR2sEUEkX0f9YHt.SpiN739DFMW0RbVFhb
fybFlqbvy1GN9rG28FWA8FWfQEW98AWditbobluLtT4AFaf0GbEL5vR4C2zx
oC8pa6K4EmJoRuyJGPf4tA.f4lP9AyBpdpwdcO3xkO6CunHeLWbbUnupLEP7
tG9pYh5VAChIAg5Vuc+9NSDPuHxPLuLDILZDHRu7e8Ge+WPevU7Mgqpzqvxx
MHFu5KafjrHkUlJMM+AQxyIh4YSUa1LzFL+fRrsgrTU87oh0LSt+sgU+qP5K
QvHqw5UKGQiAYy+.CkqriA
-----------end_max5_patcher-----------
</code></pre>

here is the js file

Code: Select all

var splitter = {
   voiceNumber : 3
  ,chord     : []
  ,addStatus : false
  ,outChord  : []
  ,reset : false,  
}

//*NOTE IN*//
//* When a note is received we check if the note is a note on or a note off and route them accordingly. *//
splitter.newNote = function(note){
    // if note velocity different of 0 add note otherwise remove
  note[1] ? this.addNote(note) : this.delNote(note);
}


//*NOTE ON*//
//* When a note on (vel not equal to 0) is received, the note is added to the buffer, then the buffer is sorted and sent to output *//
splitter.addNote = function(note){ /* add a note to the chord */
  this.addStatus = true;
  this.chord.push(note);  
  this.chord = this.chord.sort(function(a,b){
	return a[0] - b[0];
  });
  for (i = 1; i <= this.chord.length; i++){
	this.chord[i-1][1] = i;
  }
//post(this.voiceNumber);
  if(this.voiceNumber == this.chord.length){
	this.output42();
  }
}

//*NOTE OFF*//
//* When a note with a velocity of 0 (note off) is received, the corresponding note on is removed from the buffer and the note off is send with the channel number of the corresponding note on, then the buffer is sent to output *//
splitter.delNote = function(note){
  this.addStatus = false;
  var chordArray = this.chord.concat();
	
  for (i = 0; i < chordArray.length; i++) 
  {  
    if(chordArray[i][0] === note[0])
    {	
      outlet(0, [chordArray[i][0], 0]);
      this.chord.splice(i, 1); 
    }
  } 
 
 // this.output42();
}

//*RESET*//
//* On a reset message a note off is sent to the output and the buffer is cleared. *//
splitter.reset = function() 
{
  
  for (i = 0; i< this.chord.length; i++)
  {
    outlet(0, [this.chord[i][0], 0]);
  }
  this.chord = [];
}  

//*OUTPUT*//
//* When we need to send the whole buffer (after a note on or off) we trig this output function *//
splitter.output42 = function(){ 

  this.outChord = [];   
  for (i = 0; i < this.chord.length; i++){     
//	post(this.chord[i][1]);

	outlet(0, [this.chord[i][0], this.chord[i][1]]);
   
  }
//  post("\n");  
}

/* MAIN */

inlets  = 2; // number of inlets
outlets = 1; // number of outlets

function note(note, vel)
{
  splitter.newNote([note, vel, false]);
}

function list(info, note, vel) 
{
  splitter.newNote([note, vel, false]);
}


function reset()
{
  splitter.reset();
}

function msg_int(i){
  splitter.voiceNumber = i;
}
based on https://github.com/HerrmuttLobby/chord-splitter , velocity of the first note is 1, second is 2 etc. (notes are ordered and indexed by pitches, so the lowest gonna get the smallest velocity index etc. shold set the voice number in the input field) AL hasn't got inner channel support and the device containers supports only note,velocity based splitting by default (this is my very first MAX patch yeahh :D)

https://www.youtube.com/watch?v=JnqsFcz9OEo

(watched this one https://www.macprovideo.com/tutorial/li ... -musicians never worked with MAX before and voilá so it quite nice intro series)
"Where we're workarounding, we don't NEED features." - powermat

Post

Good work xbitz :)

Thanks very much for posting.

Post

created a topic about the from scratch using (for non Max users) http://www.kvraudio.com/forum/viewtopic ... 7&t=460628 please add some comment if u have better idea than the velocity based one (I'm also a very noob Max user so keep it simply ... :D )
"Where we're workarounding, we don't NEED features." - powermat

Post

I would do it, but unfortunately I have no idea how Max for Live works. Hopefully some day they do not flatten all MIDI channels to channel 1 when they're routed internally.

Locked

Return to “Squaredheads”