Nova3 Generative Sequencer - bugfix version, 0.8
-
- KVRist
- 326 posts since 25 Sep, 2007
IMHO, I think you should set up a way of donating money for this gift on your website. I certainly would have paid money for it!
-
- KVRian
- Topic Starter
- 621 posts since 13 Aug, 2005
Thanks for the kind words.
Tooltips on the obstacles is a good idea. For efficiency reasons I may not want to implement full-up tooltips but it would be efficient and easy to at least print the name of the currently selected obstacle.
The idea for repeats is to control the probability that a note repeats (plays twice) when a wall is struck. Sometimes I have a sequence going and just want to add a little extra without introducing a new rover. The repeats probability is intended to control when that little extra is added.
Yes, scale files can define any 17-note scale you like. The note numbers are MIDI notes, 0...127. The first note in the scale definition file defines the 'root' pitch of the scale, the remaining notes can be equal, less, or greater than the root pitch. The exact value of the root pitch is not really that important because Nova3 will transpose that note to the 'root pitch' assigned to the 4 scale variations on the gui. What is important is the relative intervals or offsets from the root pitch. After transposing the root pitch the remaining notes in a scale are transposed by the same amount to preserve the intervals. For example, a scale defined as 0 2 4 6 8 will end up sounding the same as a scale defined as 55 57 59 61 63 because the series of intervals from the root pitch for each of the notes is the same. So, you can define your scales using whatever root pitch is convenient for you. Also, there is no restriction on the scales being defined in ascending order. They can be descending, zig-zag, whatever.
Tooltips on the obstacles is a good idea. For efficiency reasons I may not want to implement full-up tooltips but it would be efficient and easy to at least print the name of the currently selected obstacle.
The idea for repeats is to control the probability that a note repeats (plays twice) when a wall is struck. Sometimes I have a sequence going and just want to add a little extra without introducing a new rover. The repeats probability is intended to control when that little extra is added.
Yes, scale files can define any 17-note scale you like. The note numbers are MIDI notes, 0...127. The first note in the scale definition file defines the 'root' pitch of the scale, the remaining notes can be equal, less, or greater than the root pitch. The exact value of the root pitch is not really that important because Nova3 will transpose that note to the 'root pitch' assigned to the 4 scale variations on the gui. What is important is the relative intervals or offsets from the root pitch. After transposing the root pitch the remaining notes in a scale are transposed by the same amount to preserve the intervals. For example, a scale defined as 0 2 4 6 8 will end up sounding the same as a scale defined as 55 57 59 61 63 because the series of intervals from the root pitch for each of the notes is the same. So, you can define your scales using whatever root pitch is convenient for you. Also, there is no restriction on the scales being defined in ascending order. They can be descending, zig-zag, whatever.
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
I've been testing this and I cannot reproduce the crash in energyXT that I mentioned in the other thread anymore... looks like it's gone, good job!
After playing with it for a while, perhaps the way to insert rovers and obstacles feels a bit cumbersome, so I was thinking... why not implement a "palette" paradigm? You could have a palette with all available rovers (different directions and speeds) and all available obstacles (that's already there) and then:
- To insert an element: just select the element you want (left-click on the palette), and the insertion point (left-click on a square in the sequencer)
- To remove an element: just right-click on it
From a usability pov I think this would be way easier and faster to work with and make the cycling through different options, left or right-clicking depending on type of element, keyboard modifiers, etc completely obsolete... just a thought anyway
After playing with it for a while, perhaps the way to insert rovers and obstacles feels a bit cumbersome, so I was thinking... why not implement a "palette" paradigm? You could have a palette with all available rovers (different directions and speeds) and all available obstacles (that's already there) and then:
- To insert an element: just select the element you want (left-click on the palette), and the insertion point (left-click on a square in the sequencer)
- To remove an element: just right-click on it
From a usability pov I think this would be way easier and faster to work with and make the cycling through different options, left or right-clicking depending on type of element, keyboard modifiers, etc completely obsolete... just a thought anyway
The mind boggles.
-
- KVRian
- Topic Starter
- 621 posts since 13 Aug, 2005
Yes, I've been mulling over different ideas for a rover palette but had not considered combining the rovers and obstacles into a single palette .. good idea. I'll see about getting that into the next release.Juanjo wrote:After playing with it for a while, perhaps the way to insert rovers and obstacles feels a bit cumbersome, so I was thinking... why not implement a "palette" paradigm? You could have a palette with all available rovers (different directions and speeds) and all available obstacles (that's already there) and then:
- To insert an element: just select the element you want (left-click on the palette), and the insertion point (left-click on a square in the sequencer)
- To remove an element: just right-click on it
From a usability pov I think this would be way easier and faster to work with and make the cycling through different options, left or right-clicking depending on type of element, keyboard modifiers, etc completely obsolete... just a thought anyway
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
Exactly, consider them all (rovers and obstacles) as just elements and homogenize the way to select/insert them... with the bonus advantage that if in the future you want to add new elements, gui-wise you just have to add them to the palette.ToneCarver wrote:Yes, I've been mulling over different ideas for a rover palette but had not considered combining the rovers and obstacles into a single palette .. good idea. I'll see about getting that into the next release.
Looking very much forward to any future developments on this plugin, as the more I play with it the more I like it
The mind boggles.
-
- KVRer
- 26 posts since 1 Apr, 2004
I want to thank you for sharing this gem.
I found Nova3 very interesting and a very good machine but it seems that it doesn't respond to midi input by the host. Nova3 is great for creating beatiful sequences but those sequences don't change if you don't interact manually with the vst.
It is difficult to create a sequence that follows the keys of a song: you need to manually change the root key of the wall. Yes, there are the rotation but you must manually change those controls every time to change the key.
I don't know if this option is already available or it is planed but it Would be great if the root note can change according to a trigger note send to nova3 by the host. In this case nova3 could transpose the sequence following the key of the song sent by the host.
You could add this option as single line below the wall palette and this could be a new playback mode (respond to note sent by the host).
I don't know if I succeed to explain exactly what I mean but, and consider my request only if you find useful. In any case, thank you very much for nova3.
Sorry for my english.
I found Nova3 very interesting and a very good machine but it seems that it doesn't respond to midi input by the host. Nova3 is great for creating beatiful sequences but those sequences don't change if you don't interact manually with the vst.
It is difficult to create a sequence that follows the keys of a song: you need to manually change the root key of the wall. Yes, there are the rotation but you must manually change those controls every time to change the key.
I don't know if this option is already available or it is planed but it Would be great if the root note can change according to a trigger note send to nova3 by the host. In this case nova3 could transpose the sequence following the key of the song sent by the host.
You could add this option as single line below the wall palette and this could be a new playback mode (respond to note sent by the host).
I don't know if I succeed to explain exactly what I mean but, and consider my request only if you find useful. In any case, thank you very much for nova3.
Sorry for my english.
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
Another thing that occurred to me while playing with it... the option to define scales per-wall independently. With some careful scale programming it could be very flexible...
(Apologies for being overenthusiastic with the FRs, I can only see endless possibilities with this plugin)
(Apologies for being overenthusiastic with the FRs, I can only see endless possibilities with this plugin)
The mind boggles.
-
- KVRian
- Topic Starter
- 621 posts since 13 Aug, 2005
Adding a little bit of Wobble helps to add some variation to the sequences.rickdom wrote:I found Nova3 very interesting and a very good machine but it seems that it doesn't respond to midi input by the host. Nova3 is great for creating beatiful sequences but those sequences don't change if you don't interact manually with the vst.
Reducing the note probability, putting tilt off-center, and reducing the obstacle probability are all useful for making the sequences less static. I like to lower the note probability to around .7, .8 or .9 depending on the sequence to make the pattern familiar but less predictable.
Patterns with rover collisions tend to be less predictable than patterns with no collisions.
Adding a worhmole, spin or bounce obstacle can introduce random changes to the pattern too.
The current version does not respond to any midi input (except for All Notes Off) but midi mapping is planned for the next release so you should be able to accomplish what you are describing when that becomes available.rickdom wrote:It is difficult to create a sequence that follows the keys of a song: you need to manually change the root key of the wall. Yes, there are the rotation but you must manually change those controls every time to change the key.
I don't know if this option is already available or it is planed but it Would be great if the root note can change according to a trigger note send to nova3 by the host. In this case nova3 could transpose the sequence following the key of the song sent by the host.
You could add this option as single line below the wall palette and this could be a new playback mode (respond to note sent by the host).
This version actually started out using individual scales per wall but I dialed it back thinking that the same thing could be accomplished using 2 or more instances of Nova3, each with different scales. For me, (IMHO) combining scales resulted in a lot of dissonance but it could provide some interesting results if the scales were chosen carefully.Juanjo wrote:Another thing that occurred to me while playing with it... the option to define scales per-wall independently. With some careful scale programming it could be very flexible...
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
Well yeah, of course if you choose totally different scales for each wall you'll probably get a sonic mess... I was thinking more along the lines of: assigning different subsets of the same scale to each wall, or different octaves of the same scale, or maybe use one wall to play only the fundamental of the scale and the others to play harmonics, or just assign a single note to each wall, etc etc.ToneCarver wrote:This version actually started out using individual scales per wall but I dialed it back thinking that the same thing could be accomplished using 2 or more instances of Nova3, each with different scales. For me, (IMHO) combining scales resulted in a lot of dissonance but it could provide some interesting results if the scales were chosen carefully.
It basically would allow to assign a note to each tile of each wall independently, opening up even more possibilities... this could be implemented by simply adding a scale selection column to the "wall config" table, or even by showing the note assigned to each tile on each wall right besides it and letting the user modify it... (now that I think of it, that would be beyond awesome).
But as I said, it's just a thought and I understand it might overcomplicate things a bit.
The mind boggles.
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
A few minor issues I've found during my testing:
- When 2 rovers collide at 90 degrees, they are both rotated clockwise as expected, but sometimes one of them also jumps one row or column to the side
- When 2 rovers collide at 180 degrees they don't always rotate, sometimes there's no "collision" (square icon) and they keep their directions
- There's something weird going on with spin obstacles (<>): when a rover hits a spin obstacle it gets a random direction as expected but only the first time, after that the new direction is always the next one clockwise (if there's a single rover) or the same it had before (when there's more than one rover). Plus spins only generate hotizontal/vertical directions, never diagonal, even when they are hit by diagonal rovers.
- The Speed control appears to be reversed i.e. higher Speed value, slower actual speed
- When the sequencer/transport is stopped, you usually get stuck notes. It would be better if the plugin sent the corresponding note-offs when stopped imho
- The readme mentions a "redirecion algorithm" control for wedge obstacles but I can't find it... I assume this is planned and will appear in a future update?
- Perhaps it woud be a good idea to extend the Tilt range a bit so at 0 the lowest note always plays when hit and the highest note never does, and viceversa
Please bear in mind that some of these issues might be user error (mine) or poor understanding of the intended functionality on my part. Still I thought I'd share them anyway...
- When 2 rovers collide at 90 degrees, they are both rotated clockwise as expected, but sometimes one of them also jumps one row or column to the side
- When 2 rovers collide at 180 degrees they don't always rotate, sometimes there's no "collision" (square icon) and they keep their directions
- There's something weird going on with spin obstacles (<>): when a rover hits a spin obstacle it gets a random direction as expected but only the first time, after that the new direction is always the next one clockwise (if there's a single rover) or the same it had before (when there's more than one rover). Plus spins only generate hotizontal/vertical directions, never diagonal, even when they are hit by diagonal rovers.
- The Speed control appears to be reversed i.e. higher Speed value, slower actual speed
- When the sequencer/transport is stopped, you usually get stuck notes. It would be better if the plugin sent the corresponding note-offs when stopped imho
- The readme mentions a "redirecion algorithm" control for wedge obstacles but I can't find it... I assume this is planned and will appear in a future update?
- Perhaps it woud be a good idea to extend the Tilt range a bit so at 0 the lowest note always plays when hit and the highest note never does, and viceversa
Please bear in mind that some of these issues might be user error (mine) or poor understanding of the intended functionality on my part. Still I thought I'd share them anyway...
The mind boggles.
-
- KVRian
- Topic Starter
- 621 posts since 13 Aug, 2005
Those are all good ideas. You should be able to assign different octaves to each wall with the current version (0.2) by assigning walls to different scale variations then transposing their scales up or down by octaves. Or did you have something more exotic in mind ?Juanjo wrote:Well yeah, of course if you choose totally different scales for each wall you'll probably get a sonic mess... I was thinking more along the lines of: assigning different subsets of the same scale to each wall, or different octaves of the same scale, or maybe use one wall to play only the fundamental of the scale and the others to play harmonics, or just assign a single note to each wall, etc etc.ToneCarver wrote:This version actually started out using individual scales per wall but I dialed it back thinking that the same thing could be accomplished using 2 or more instances of Nova3, each with different scales. For me, (IMHO) combining scales resulted in a lot of dissonance but it could provide some interesting results if the scales were chosen carefully.
It basically would allow to assign a note to each tile of each wall independently, opening up even more possibilities... this could be implemented by simply adding a scale selection column to the "wall config" table, or even by showing the note assigned to each tile on each wall right besides it and letting the user modify it... (now that I think of it, that would be beyond awesome).
The single note per wall is interesting, perhaps a more general "spread" control could be used to assign a note of the scale to 1 or more tiles, i.e. define how spread out the scale is. The default behavior would map 1 scale note to 1 tile, greater spreads would map 1 scale note to multiple tiles up to 17 which would effectively assign the whole wall a single note. Rotation could be used to determine which scale notes are selected for spreading when the spread ratio is greater than 1:1.
User-definable notes per tile is very interesting. All the internal parts and plumbing is in handy to do that, it would be a matter of keeping the gui balanced, usable, not too cluttered, deep control for the power user, approachable by the novice.
-
- KVRian
- Topic Starter
- 621 posts since 13 Aug, 2005
That should not happen unless Wobble > 0. I'll look into that.Juanjo wrote:A few minor issues I've found during my testing:
- When 2 rovers collide at 90 degrees, they are both rotated clockwise as expected, but sometimes one of them also jumps one row or column to the side
The collisions are determined after the rovers advance to their new cells. If 2 rovers are face to face, going 180 degrees opposite directions, then they both step into the next cell without registering a collision. I don't have my setup in front of me to confirm but you should see a collision if you place the rovers facing into each other with an empty cell between them. On the next step they should collide as they move into the empty cell.Juanjo wrote:- When 2 rovers collide at 180 degrees they don't always rotate, sometimes there's no "collision" (square icon) and they keep their directions
Spins not generating diagonal direction changes is a bug and not generating random directions is also a bug (I think ..) but I'll need to get back to my development setup to confirm. Spin should generate vert/horiz directions for vert/horiz rovers and diagonal directions for diagonal rovers.Juanjo wrote:- There's something weird going on with spin obstacles (<>): when a rover hits a spin obstacle it gets a random direction as expected but only the first time, after that the new direction is always the next one clockwise (if there's a single rover) or the same it had before (when there's more than one rover). Plus spins only generate hotizontal/vertical directions, never diagonal, even when they are hit by diagonal rovers.
The speed control is used as a multiplier to stretch or shrink the number of samples (at project tempo and sampling rate) per time unit. More time between steps = higher speed multiplier value. I could see how that would be confusing though. Needs some thought.Juanjo wrote:- The Speed control appears to be reversed i.e. higher Speed value, slower actual speed
Yes, agreed. Will do.Juanjo wrote:- When the sequencer/transport is stopped, you usually get stuck notes. It would be better if the plugin sent the corresponding note-offs when stopped imho
Actually, this was a copy/paste error from the Nova2 documentation that should have been removed for Nova3, but the redirection algorithm could end up in a future release if it seems useful.Juanjo wrote:- The readme mentions a "redirecion algorithm" control for wedge obstacles but I can't find it... I assume this is planned and will appear in a future update?
Thanks, I'll take that into consideration.Juanjo wrote:- Perhaps it woud be a good idea to extend the Tilt range a bit so at 0 the lowest note always plays when hit and the highest note never does, and viceversa
Glad you did. ThanksJuanjo wrote:Please bear in mind that some of these issues might be user error (mine) or poor understanding of the intended functions least ality on my part. Still I thought I'd share them anyway...
-
- KVRian
- 783 posts since 6 Jan, 2006 from Premià
Ah interesting, I've rechecked and that's indeed what happens... 2 rovers face to face collide if they start separated by an odd number of cells, but fly by each other unaffected if separated by an even number of cells as they actually never occupy the same cell at the same time... definitely not a bug, just kinda counterintuitive but expected behavior nonetheless, thanks for the clarification.ToneCarver wrote:The collisions are determined after the rovers advance to their new cells. If 2 rovers are face to face, going 180 degrees opposite directions, then they both step into the next cell without registering a collision. I don't have my setup in front of me to confirm but you should see a collision if you place the rovers facing into each other with an empty cell between them. On the next step they should collide as they move into the empty cell.
Yeah, just a matter of semantics... changing the name of the control (maybe Time Multiplier or something like that instead of Speed) or reversing its range would be more than enough...ToneCarver wrote:The speed control is used as a multiplier to stretch or shrink the number of samples (at project tempo and sampling rate) per time unit. More time between steps = higher speed multiplier value. I could see how that would be confusing though. Needs some thought.
Ah OK, in this case I'd just leave it as it is: there are other ways to introduce random direction changes and a new "redirection control" would be a bit confusing imho as wedges would be the only obstacles needing a secondary control to define their behaviour. From a usability pov, if you wanted that functionality back, I'd do it by defining 4 new "random wedge" obstacles... just an opinion.ToneCarver wrote:Actually, this was a copy/paste error from the Nova2 documentation that should have been removed for Nova3, but the redirection algorithm could end up in a future release if it seems useful.Juanjo wrote:- The readme mentions a "redirecion algorithm" control for wedge obstacles but I can't find it... I assume this is planned and will appear in a future update?
The mind boggles.
-
- KVRist
- 326 posts since 25 Sep, 2007
Another vote for extending the Tilt range a bit so at 0 the lowest note always plays when hit and the highest note never does.
-
- KVRist
- 326 posts since 25 Sep, 2007
Some ideas you might consider implementing for future releases:
I was looking at the pattern section at the bottom of the GUI, and read that it will be implemented in a future release. What are your thoughts for this section? I noticed you have an arrow on the left side (perhaps as a future play button?) I realize I am probably asking too much (I keep trying to remind myself that as a freebie this is a gift, after all) but I hope you are looking at the ability to save and load patterns, and then organize the different patterns similar to how FL Studio puts together patterns to create music pieces.
Also, it would be nice to be able to move a rover move up or down a box at a time somehow while it is playing, so that if you want to change the rover's timing, you don't have to stop the host, delete the rover, and then place another rover either a box above or below the box it occupied previously. You would be able to get immediate feedback of different rover positions quickly this way.
I was looking at the pattern section at the bottom of the GUI, and read that it will be implemented in a future release. What are your thoughts for this section? I noticed you have an arrow on the left side (perhaps as a future play button?) I realize I am probably asking too much (I keep trying to remind myself that as a freebie this is a gift, after all) but I hope you are looking at the ability to save and load patterns, and then organize the different patterns similar to how FL Studio puts together patterns to create music pieces.
Also, it would be nice to be able to move a rover move up or down a box at a time somehow while it is playing, so that if you want to change the rover's timing, you don't have to stop the host, delete the rover, and then place another rover either a box above or below the box it occupied previously. You would be able to get immediate feedback of different rover positions quickly this way.
