Nova3 Generative Sequencer - bugfix version, 0.8

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

This is very cool! Going to go try it out right now. :D
Incomplete list of my gear: 1/8" audio input jack.

Post

dreadnought wrote:I don't have the interface in front of me right now, but what is the difference between the rovers in white and the ones in black? Are they the same, except that one set is moves twice as fast? That was my best guess at the time, but it seemed odd that the rover palette was duplicated just for that.
Yes, the white rovers move at normal speed and the black rovers move at half speed. I was going to include a button on the rover palette to toggle the palette between normal speeds and slow speeds but decided not to do that in order to keep the interface simpler.
dreadnought wrote:Second, I'd still love some tooltips for the obstacle palette. I know you were in some pretty deep discussions about the obstacle palette earlier in this thread, though, so maybe you're holding off until you completely revamp that part.
I'm not too keen on tooltips since they take CPU cycles just to check if the mouse is hovering or not but I might put them in, or at least print the name of the selected item somewhere as a second-best alternative.
dreadnought wrote:I wonder, though, why the obstacle palette doesn't just work like the rover palette - i.e., you click on an obstacle, and that's what you get when you click in the sequencing matrix. So, click on a particular rover, and a single left click inserts that rover. Click on an obstacle instead, and a single left click inserts that obstacle. Seems simple and makes the most sense to me.
That is simpler for plain inserts. The complication arises when clicking to cycle through the rover directions and obstacle types. If the cycle-to-the-next-type behavior was taken out then interaction would be much simpler: left-click to insert or replace selected thing, right click to clear cell. Or maybe: left-click to insert selected thing, right click to cycle selected "type" (cycle rover direction when rover is selected, cycle obstacle type when obstacle is selected), and add an empty cell to the palette so that selecting the empty cell then left-clicking any cell would clear that cells contents. Opinions ??
dreadnought wrote:The new repetition probability helps with dialing in a little variety, as does the velocity jitter. Would there be some way, though, to add some sort of note length jitter as well? If each note length weren't precisely the same, it would help reduce the mechanical quality of the sound. I realize the note length is based on tempo, but maybe the jitter could mean a certain probability that note length is one increment (maybe an eighth) longer or shorter?
The humanizer control varies the note start and the note length, independently, for up to 15 milliseconds. I'll consider separating out the length jitter or maybe adding an additional length jitter if the humanization is not enough.

Post

dreadnought wrote:I wonder, though, why the obstacle palette doesn't just work like the rover palette - i.e., you click on an obstacle, and that's what you get when you click in the sequencing matrix. So, click on a particular rover, and a single left click inserts that rover. Click on an obstacle instead, and a single left click inserts that obstacle. Seems simple and makes the most sense to me.
ToneCarver wrote:That is simpler for plain inserts. The complication arises when clicking to cycle through the rover directions and obstacle types. If the cycle-to-the-next-type behavior was taken out then interaction would be much simpler: left-click to insert or replace selected thing, right click to clear cell. Or maybe: left-click to insert selected thing, right click to cycle selected "type" (cycle rover direction when rover is selected, cycle obstacle type when obstacle is selected), and add an empty cell to the palette so that selecting the empty cell then left-clicking any cell would clear that cells contents. Opinions ??
I envisioned it the first way: No cycle-to-next-type behavior, so you simply left-click to insert an obstacle or rover, and right-click to remove. All the features you've added are great, but at some point the complexity may begin to overwhelm the simple fun of clicking in the matrix and creating sequenced notes. I think making that part as intuitive as possible helps mitigate against that possibility.
dreadnought wrote:The new repetition probability helps with dialing in a little variety, as does the velocity jitter. Would there be some way, though, to add some sort of note length jitter as well? If each note length weren't precisely the same, it would help reduce the mechanical quality of the sound. I realize the note length is based on tempo, but maybe the jitter could mean a certain probability that note length is one increment (maybe an eighth) longer or shorter?
ToneCarver wrote:The humanizer control varies the note start and the note length, independently, for up to 15 milliseconds. I'll consider separating out the length jitter or maybe adding an additional length jitter if the humanization is not enough.
I thought the Humanize control was just creating an offset at the start of the note, so it's evidently not affecting the note length enough for me to sense much of a difference. And 15 milliseconds, while sufficient for a little offset at the start of the note, doesn't seem like it would provide enough variance in total note length. I would much rather have a separate control just for note length jitter. I think it would go a long way toward the goal of humanization.

Thanks for taking this stuff into consideration - I'm sure whatever you decide to do will be very cool.

Dan

Post

Hey this plugin is growing nicely with each beta, from very good to simply great :) Here's some feedback after testing 0.4:

- The rover palette is great, I would extend its behavior to the obstacle palette as well. As suggested above, +1 for entirely ditching the "cycling" when inserting elements: just consider all elements (rovers and obstacles) as one big palette, and whatever you select on the palette (rover or obstacle), you insert in the sequencer with a simple left-click. And whatever you right-click on the sequencer, it gets deleted. I find the cycling unintuitive and confusing, plus it needs way more mouse clicks on average to get to the desired element than simple select+leftclick.

- Another +1 to separating length jitter from humanizer, plus 15ms might be enough for humanizing the note timing but I think the note length lends itself to bigger variations, which would cover not just humanizing but other creative uses... particularly if implemented in conjunction with a length tilt.
Ideally I'd suggest assigning the 2 most relevant "modifiers" to every note attribute, as follows:
- Note occurrence: Probability + Tilt
- Note timing: Humanising + Swing
- Note length: Jitter + Tilt
- Note velocity: Jitter + Tilt
Just a thought.

- I'm experiencing an issue in energyXT2: only about half the notes are properly generated when a rover hits a wall, even for default values (note probability = 1) and simple situations (a couple of rovers, no obstacles). For the other half, only the note-off is generated and thus no sound, although the wall lights up as if the note-on was being generated as well... (?)
Apparently this issue was introduced in beta 0.3, it didn't happen in 0.2 but it still happens in 0.4. Plus I can only reproduce it in energyXT2 so far, in Reaper it works as expected, no issues. Can anyone reproduce this in eXT2?
The mind boggles.

Post

ToneCarver wrote:
DarkStar wrote:(a) when I click on the Scale arrow it takes me to the folder containing the "scales" folder not into the "scale" folder itself. I've tried several variations of the scalefoldername in the .ini file.
Are you including the name of the folder that contains the scales as part of the path definition in the .ini file ? For example, if you have your scales in a folder at "x:\mymachine\data\nova\scales" then use that whole path as the value in the .ini file.
Yep, I am referencing the scales folder itself. With some trials, I think that the path is too long:
...\Tonecarver\scales works (the full path name is 112 characters)
but ...\Tonecarver\Nova3\scales does not (the full path name is 118 characters)
and ...\Tonecarver1\scales does not (the full path name is 113 characters)

-- as the folder is in "Documents & Settings" I surrounded the path name by " marks,
-- a guess, could it be that the max line length in the .ini file is 128 charcters?
-- PS the comment in the .ini file refers to a txt file: ;ScaleFolder c:\somefolder\otherfolder\Nova\scales.txt
ToneCarver wrote:
DarkStar wrote:(d) what scale is the 00-default.txt. Would it be more useful if the default were the Western Major scale?
The default scale is D A Bb C D E F A C which is one of the scales used by the Hang Drum. There are several YouTube videos of the Hang that are worth checking out if you have never heard one. The default scale is baked into the plugin so that it still makes notes even if there are not any scale files present or loaded.

It seems useful to be able to define a DefaultScale in the .ini file that would cause that scale to be loaded when a new instance of the plugin is inserted .. that is not possible now but it could show up in a future release. In the mean time you could edit the contents of 00-default.txt to be whatever scale you want, or copy the Western Major scale file to something like 000-major.txt so that it sorts alphabetically before 00-default.txt, and load the scale after inserting the plugin. Once a scale has been loaded the plugin remembers the scale notes internally so you should not have to reload it after saving and restoring a project.
OK, that all makes sense. Thank you.
DarkStar, ... Interesting, if true
Inspired by ...

Post

Juanjo wrote:- I'm experiencing an issue in energyXT2: only about half the notes are properly generated when a rover hits a wall, even for default values (note probability = 1) and simple situations (a couple of rovers, no obstacles). For the other half, only the note-off is generated and thus no sound, although the wall lights up as if the note-on was being generated as well... (?)

Apparently this issue was introduced in beta 0.3, it didn't happen in 0.2 but it still happens in 0.4. Plus I can only reproduce it in energyXT2 so far, in Reaper it works as expected, no issues. Can anyone reproduce this in eXT2?
Not quite the same findings here:
-- i have seen a few Note-ons and Note-offs missing,
-- some note lengths generated by Nova3 seem to be invalid - and are interpreted as very large or negative in XT2 but are ignored in other hosts.
-- here are a couple of screenshots showing Nova outputs recorded in XT2 and simultaneously in eXT1.

Image

Image

Big pics:
http://img402.imageshack.us/img402/5295/nova3xt210a.png
http://img823.imageshack.us/img823/286/nova3xt210c.png

Uploaded with ImageShack.us

-----------------
Also
(a) the velocity of the generated notes is one less than the Velocity control
(b) If I set Note Velocity to 80, Note Jitter to 5, generate some notes, then set Jitter back to 0 and generate more notes, then most of those notes have a velocity of 79 but some are 89.
DarkStar, ... Interesting, if true
Inspired by ...

Post

Looks incredibly exiting!

Post

DarkStar wrote:
ToneCarver wrote:
DarkStar wrote:(a) when I click on the Scale arrow it takes me to the folder containing the "scales" folder not into the "scale" folder itself. I've tried several variations of the scalefoldername in the .ini file.
Are you including the name of the folder that contains the scales as part of the path definition in the .ini file ? For example, if you have your scales in a folder at "x:\mymachine\data\nova\scales" then use that whole path as the value in the .ini file.
Yep, I am referencing the scales folder itself. With some trials, I think that the path is too long:
...\Tonecarver\scales works (the full path name is 112 characters)
but ...\Tonecarver\Nova3\scales does not (the full path name is 118 characters)
and ...\Tonecarver1\scales does not (the full path name is 113 characters)

-- as the folder is in "Documents & Settings" I surrounded the path name by " marks,
-- a guess, could it be that the max line length in the .ini file is 128 charcters?
Yes, you are right. (sorry to put you through that, nice detective work though). That will be increased in the next release.
DarkStar wrote:-- PS the comment in the .ini file refers to a txt file: ;ScaleFolder c:\somefolder\otherfolder\Nova\scales.txt
Thanks, will correct that in the next release.

Post

DarkStar wrote:
Juanjo wrote:- I'm experiencing an issue in energyXT2: only about half the notes are properly generated when a rover hits a wall, even for default values (note probability = 1) and simple situations (a couple of rovers, no obstacles). For the other half, only the note-off is generated and thus no sound, although the wall lights up as if the note-on was being generated as well... (?)

Apparently this issue was introduced in beta 0.3, it didn't happen in 0.2 but it still happens in 0.4. Plus I can only reproduce it in energyXT2 so far, in Reaper it works as expected, no issues. Can anyone reproduce this in eXT2?
Not quite the same findings here:
-- i have seen a few Note-ons and Note-offs missing,
-- some note lengths generated by Nova3 seem to be invalid - and are interpreted as very large or negative in XT2 but are ignored in other hosts.
-- here are a couple of screenshots showing Nova outputs recorded in XT2 and simultaneously in eXT1.

Image

Image

Big pics:
http://img402.imageshack.us/img402/5295/nova3xt210a.png
http://img823.imageshack.us/img823/286/nova3xt210c.png

Uploaded with ImageShack.us
Nova3 does not generate note lengths, per se. It generates note on events and note off events but those do not carry any duration or length information. It is up to the host to determine the note length from the difference in time between the two events. I installed a demo version of eXT 2.5.4 and haven't observed any missing notes or out of range note times so if you have specific scenarios where the problem shows up let me know and I can try to reproduce them here for debugging.
DarkStar wrote:Also
(a) the velocity of the generated notes is one less than the Velocity control
(b) If I set Note Velocity to 80, Note Jitter to 5, generate some notes, then set Jitter back to 0 and generate more notes, then most of those notes have a velocity of 79 but some are 89.
Yes, good catch, the velocity is off by one and will be fixed in the next release. The velocity jump to 89 that you are seeing is probably due to having multiple strikes at the same time on the same note value. When multiple strikes occur on the same note at the same time only one note is output but its velocity is increased by (10 x number of strikes) to give some emphasis to the multiple hits.

Post

ToneCarver wrote:
DarkStar wrote:-- a guess, could it be that the max line length in the .ini file is 128 characters?
Yes, you are right. (sorry to put you through that, nice detective work though). That will be increased in the next release.
No problem, fixes are always good.
:)
ToneCarver wrote:Nova3 does not generate note lengths, per se. It generates note on events and note off events but those do not carry any duration or length information. It is up to the host to determine the note length from the difference in time between the two events. I installed a demo version of eXT 2.5.4 and haven't observed any missing notes or out of range note times so if you have specific scenarios where the problem shows up let me know and I can try to reproduce them here for debugging.
I'll try to create a project that reliably creates the issue.
ToneCarver wrote:
DarkStar wrote:Also
(a) the velocity of the generated notes is one less than the Velocity control
(b) If I set Note Velocity to 80, Note Jitter to 5, generate some notes, then set Jitter back to 0 and generate more notes, then most of those notes have a velocity of 79 but some are 89.
Yes, good catch, the velocity is off by one and will be fixed in the next release. The velocity jump to 89 that you are seeing is probably due to having multiple strikes at the same time on the same note value. When multiple strikes occur on the same note at the same time only one note is output but its velocity is increased by (10 x number of strikes) to give some emphasis to the multiple hits.
:tu: One for the Read-me.txt file.
DarkStar, ... Interesting, if true
Inspired by ...

Post

ToneCarver wrote:Nova3 does not generate note lengths, per se. It generates note on events and note off events but those do not carry any duration or length information. It is up to the host to determine the note length from the difference in time between the two events. I installed a demo version of eXT 2.5.4 and haven't observed any missing notes or out of range note times so if you have specific scenarios where the problem shows up let me know and I can try to reproduce them here for debugging.
Well of course, "note length" is nothing more than the time distance between a note-on event and its corresponding note-off. What I'm seeing is Nova, since 0.3, consistently and regularly failing to generate half the note-on events in energyXT 2.6 beta (latest version available)... let me illustrate:

http://img600.imageshack.us/img600/4595/novaissue.gif

This is after a few bars, default Nova values, one single rover and no obstacles. Note in the midi monitor how all expected note-off events are registered but half of the note-on ones are missing. Also note how there's some kind of regular pattern i.e. 2 note-ons ok, then 2 missing. In the gui, I always see the corresponding wall tile light up when the rover touches the wall, even when the actual note-on events aren't generated.

As I said, this only happens in eXT2 2.6 beta with Nova 0.3 and 0.4, it doesn't happen with Nova 0.2 (I just checked in the same system under the exact same circumstances) and it doesn't happen in either energyXT 1.41 or Reaper4 beta7...
The mind boggles.

Post

+1 for separating length jitter from humanizer

+1 for entirely ditching the cycling when inserting elements and replacing with selecting from palette with left click

BTW, many thanks ToneCarver.

With each update this thing just keeps getting better and better!

Post

Juanjo wrote:What I'm seeing is Nova, since 0.3, consistently and regularly failing to generate half the note-on events in energyXT 2.6 beta (latest version available)... let me illustrate:

http://img600.imageshack.us/img600/4595/novaissue.gif

This is after a few bars, default Nova values, one single rover and no obstacles. Note in the midi monitor how all expected note-off events are registered but half of the note-on ones are missing. Also note how there's some kind of regular pattern i.e. 2 note-ons ok, then 2 missing. In the gui, I always see the corresponding wall tile light up when the rover touches the wall, even when the actual note-on events aren't generated.

As I said, this only happens in eXT2 2.6 beta with Nova 0.3 and 0.4, it doesn't happen with Nova 0.2 (I just checked in the same system under the exact same circumstances) and it doesn't happen in either energyXT 1.41 or Reaper4 beta7...
Thanks, excellent description. I'll download the eXT2 beta and have a look.

Post

More info

Here, I get the wrong-length notes when there is a Note_Off first without its Note_On. As if the host is remembering the unused Note_Off and using it at a later stage; the negative length is calculated by the host as the Note_Off precedes the Note_Nn.

Have a look at this:
-- the first event is a Note_Off for A2
-- later notes are generated correctly (ringed in yellow in the midimonitor and highlighted orange in the MIDI clip)
-- at some point the long note is generated (but it does not sound)

Image

Big pic: http://img11.imageshack.us/img11/382/xt2nova30403c.png

Uploaded with ImageShack.us
DarkStar, ... Interesting, if true
Inspired by ...

Post

I'm not sure if this is a bug or I just don't understand the concept correctly...

For obstacle probability, the readme says "the probability of an obstacle being applied to a rover. 1.0 means obstacles will always affect rovers. 0 means all obstacles are effectively bypassed."

If I set the obstacle probability to 0 and have one rover follow a few squares behind another rover, the second rover does not collide with the second rover after the first rover bounces off a wall and meets with the second rover (which is what I figured would happen). However, if I follow a third rover a few squares after the second rover and the third rover meets the first rover after the first rover bounces back from the wall, there is a collision, sending the third rover in a perpendicular direction.

Also, I don't know if this is worth addressing, if someone has already addressed it, or if it is yet another instance of me not knowing what I'm doing...

I don't know if anyone else is having this problem, but when I set up a pattern starting on beat one (which seems to be with the rover two squares from a wall), I would like to be able to "rewind" the pattern so that it will reset to that position. Currently what I am doing is letting the pattern play so that I try to stop the pattern in the start position.

I hope this all makes sense.

Post Reply

Return to “Instruments”