-
Notifications
You must be signed in to change notification settings - Fork 12
Blue's nGen score generator
Author: Menno Knevel
Incorporated in Blue is JMask, a Java equivalent of CMask. It covers most of CMask's options and, as a GUI, provides a good overview. Great stuff - love it! nGen on the other hand has some other characteristics that makes me want to have the choice between JMask and nGen, depending the results i'm looking for. Modeled after Score 11 from Aleck Brinkman, it's the same thing but different from JMask/CMask.
nGen strenghts:
- nice rhythms structures can be produced
- working with chords is easy
- p-fields can be made interdependent: one p-field can have an impact on another
- working with note names is an option
- has a seed option, so random events can be 'controlled random events'
In short - compared to JMask/CMask, it's a more musical system. The fact that nGen is also capable of creating Midi note events (where p4 = amplitude and p5 = pitch), prooves this. But it also able to easily generate hundreds of events for granulated sounds, using samples or other sources. In this regard, in my opinion, JMask would be the better choice; it gives a good overview of the granulations' movements in time due to it's GUI. And JMask provides for masks, or borders, so it is easy to model and control the generated events inside these borders.
So it's the same but different, depending on what you want to achieve.
The nGen score generator is a wrapper for the textual nGen. I have tried to push the BSB widgets of Blue to the max. It would be nice to get an overview of some 15 p-fields from 1 to 15 going from top to bottom, but the values from the Vertical Slider goes from bottom to top :P . And you still have to already have mastered the textual nGen in order to be able to make the right choice from the DropDown Menu.
What ís an improvement is that the idea and structure of nGen is much clearer now. It is less a black box and makes me want to try out stuff on-the-fly. Don't expect to always get a nice screen filled with hundreds of events when you push the TEST button of the ObjectBuilder - probably a user error due to incorrect choices or data text format. So, don't close the manual of nGen yet...
Where the GUI of JMask has a different approach, the nGen score generator is based on 'choosing options and entering text'.
This is the original version of nGen:
As you can see, it's not a GUI like JMask that guides you through the process in that, when you click on an option, only those screens associated with this chosen option pops up. The nGen score generator follows the syntax of the textual nGen and thus exposes this syntax and how it is organized; Dynamic Data Functions, Commands, Input Filter, Output filter - the structure and idea behind nGen is revealed to the user in an organized way. p-fields are read from left to right, like the textual version. nGen calculates completely each p-field before going to the next one; Some tricks can be applied, for example appointing a higher number p-field before another, so that this higher numbered p-field can be 'used' as input on the next one. To top it off, Blue's Note Processors can be applied at a later stage as to provide nice variations on the musical gesture.
The nGen score generator is an ObjectBuilder Object; nGen is called by "ngen $infile $outfile" in the command line. Blue spits out the nGen code to nGen itself and receives the score data only! Everything else is stripped. This leads to some differences between using nGen as a standalone program or its use from within Blue.
- Comments, but also ftables are stripped (unlike the textual nGen). This means the ftables should be copied to the Tables Tab of Blue beforehand.
- use of macro's, expressions and the File Preprocessing of the textual nGen are not (yet?) possible.
- a few textual functions and commands cannot be included, like 'rd' (= global random dev). This is replaced by 'dv' (= p-field rand dev) command and the global 'rs' (= global random seed), which makes it sufficient for most needs.
- "only" 2 DDFs for one p-field are included in one ObjectBuilder Object, due to limited space on the computer screen.
The nGen score generator has 2 DDF windows, so it is possible to move from one set of values to a second set of values (DDF A --> DDF B). When you need to be able to make more "moves" just copy the ObjectBuilder, put it to the previous one and you can go on "moving" another 2 times...
As a sounding example for such use, the first ObjectBuilder Object is used (2 moves) that builds up the sonic tension with an opening lowpass filter, then closes again with a second ObjectBuilder.
This is done by overlapping the 2 Objects.
Some words on the syntax of nGen may be necessary, particularly on Dynamic Data Functions 'ra' (random) and 'mo,'ms' (move). It took me a while to figure out what the right code was to get the results i was looking for, so now to summarize what i've found:
- ra(T .2 2 .8 1) versus ra(T 1. [2 8] ). The first one ra(T .2 2 .8 1) will produce for 2/10th of the time the number '2' and 8/10th of the time the number '1'. But ra(T 1. [2 8] ) will result over the total time (= 1.) in numbers between and including 2 and 8. Also, (T*.5 1. [2 8]) will produce numbers for half of the total time (= T*5 1.) between and including 2 and 8 and then stick with the last chosen number for the remaining half of the total time!
- mo(T 1. 1 5) versus mo(T 1. 3 [1 5]). Here, mo(T 1. 1 5), over the total time (= 1.) numbers are from 1 to and including 5. Different is mo(T 1. 3 [1 5]), where the start point is 3 and then moves into 2 directions - towards 1 en 5 at the end. The story of (T 1. [20 100] [1 5]) is: go from the range 20 and 100 to the range between 1 and 5. Again, using the time T (T*.5 1. 100 [ 1 15]) will result in moving from the start value 100 to somewhere in the 1 - 15 range, but only half of the time - the value stays fixed for the remainder of the total time.
The nGen score generator is an ObjectBulder Object from Blue and you can get it from BlueShare. Of course, you'll need to have installed the nGen program itself: http://mikelkuehn.com/index.php/ng ,author: Mikel Kuehn. Running the Blue file should create a cool sound. and provide a nice way to get you started. Please have a look at the Comments Tab of the ObjectBuilder which serves as a mini manual.
october 2021