Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Sat Nov 01, 2008 3:29 am Post subject:
Kewl ChucK Song Subject description: Automagically Generated
I have created an automatic ChucK song generator based on my Boolean Sequencing and kijjaz's guitar and bass drums. It produces random songs, and about one in 10 is really good to my ear. I would like to add other instruments, what do you suggest? Any other drums to add, kijjaz?
Industrial.mp3
Description:
Kewl ChucK Song
Filesize:
1.28 MB
Viewed:
2326 Time(s)
_________________ "Let's make noise for peace." - Kijjaz
I'd like to try this:
create an array which contains a serie of notes of a melody / motif / riff
for example,
[0, 10, 12, 0, 5, 7, 3, 3] @=> int melody1[];
if started on C, would be note C Bb C' C F G Eb Eb
then, the generated notes from your sequencer can be mapped to choose notes from this sequence.
or to reset / restart index for reading from the sequence.
with this, we can play more with a particular set of notes, not just chromatic scale.
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Sun Nov 02, 2008 4:59 am Post subject:
Thanks, I kinda like the songs that this thing generates. Interesting idea, kijjaz, that would lend itself very well to playing scales on the guitar. From what I've learned, you study the scales because the notes of the scales sound good togther, then you practice various techniques of playing the scale notes in various sequences to create songs.
I'm not sure what the mapping would be, I'll have to think of that, but anyway what I would do is put a scale in your array and then index the array with the boolean sequencer somehow. I'll have to think about ways to do the mapping, coolness. _________________ "Let's make noise for peace." - Kijjaz
I'm thinking about these ways, they can be implemented seperately:
- having a BaseNote value which is the root of the riff it's playing,
but have the mechanism in the program shifting this BaseNote value around for chord-change effect
- start index from 0 and increase by 1, when it reaches the end of the array, restart it at 0
and have some conditions from the boolean sequencing setting the index's position/speed/reset
(this would play the riff out clearly, but it'd be rearranged)
- having more complex rhythm, duration of the notes.
this should depend on creating another function then sporking it and letting run simultaneously.
rhythm (durations) can be put into an array.
- the guitar can play both sustained and staccato (short) notes.
shorter notes can be created by noteOff(velocity) sooner.
- adjusting guitar's pluck position by conditions from the boolean sequencer for different timbers each stroke.
- applying damping to the guitar sound for the 'mute' effect on guitar
etc.. i think these things would become handy and fun to play with / listen to ^_^
hi.. Inventor, these example is what i've been trying to practice myself for creating some of the effects i'm referring to.
Code:
// guitar riff modification technics
// Copyright 2008 by Kijjasak Triyanond (kijjaz@yahoo.com)
// This software is protected by GPL version 3
140.0 * 2 => float BPM;
minute / BPM => dur beat;
Mandolin s => Dyno compressor => LPF s_lpf => SinOsc od => dac;
pi => s.gain; // Drive Gain
compressor.compress(); // set as compressor
.25 => compressor.thresh; // set threshold
s_lpf.set(1900, 1.5); // set lowpass filter as amp EQ simulation
1 => od.sync; // set od as sine overdrive
// guitar riff modification technics
// Copyright 2008 by Kijjasak Triyanond (kijjaz@yahoo.com)
// This software is protected by GPL version 3
140.0 * 2 => float BPM;
minute / BPM => dur beat;
Mandolin s => Dyno compressor => LPF s_lpf => SinOsc od => dac;
pi => s.gain; // Drive Gain
compressor.compress(); // set as compressor
.25 => compressor.thresh; // set threshold
s_lpf.set(1900, 1.5); // set lowpass filter as amp EQ simulation
1 => od.sync; // set od as sine overdrive
if (i1 % 3 == 2) 68 - BaseNote => BaseNote; // change root note of the riff sometimes
(i1 + 1) % melody1.cap() => i1;
(i2 + i1) % rhythm1.cap() => i2; // messing around with rhythm index
}
Code:
// guitar riff modification technics
// Copyright 2008 by Kijjasak Triyanond (kijjaz@yahoo.com)
// This software is protected by GPL version 3
140.0 * 2 => float BPM;
minute / BPM => dur beat;
Mandolin s => Dyno compressor => LPF s_lpf => SinOsc od => dac;
pi => s.gain; // Drive Gain
compressor.compress(); // set as compressor
.25 => compressor.thresh; // set threshold
s_lpf.set(1900, 1.5); // set lowpass filter as amp EQ simulation
1 => od.sync; // set od as sine overdrive
if (i1 % 8 == 7) 68 - BaseNote => BaseNote; // change root note of the riff sometimes
(i1 + i2) % melody1.cap() => i1; // messing around with melody index
(i2 + 1) % rhythm1.cap() => i2;
}
Code:
// guitar riff modification technics
// Copyright 2008 by Kijjasak Triyanond (kijjaz@yahoo.com)
// This software is protected by GPL version 3
160.0 * 2 => float BPM;
minute / BPM => dur beat;
Mandolin s => Dyno compressor => LPF s_lpf => SinOsc od => dac;
pi => s.gain; // Drive Gain
compressor.compress(); // set as compressor
.25 => compressor.thresh; // set threshold
s_lpf.set(1900, 1.5); // set lowpass filter as amp EQ simulation
1 => od.sync; // set od as sine overdrive
I like it a lot, Les. I hope you'll extend it with some song structure and maybe more lyrics some day. Maybe it's a weird suggesting but did you think of trying a detuned sax with this? I'm experiencing it as quite "no-wave"-ish and no-wave works with sax.
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Sun Nov 02, 2008 3:27 pm Post subject:
Thanks guys! I know what I'll be doing tonight! Adding some No Wave sax and kijjaz's code to the strat program, for sure. I had never even heard of No Wave, and it sounds cool.
But I cannot call it mine alone since kijjaz has made so many contributions. You know, I see a trend. kijjaz makes the bits and pieces, then I stitch them together into an application based on the boolean sequencing framework. Nice combination, don't you think?
I will work on it some more soon. Maybe I will call it "Know Wave", for "Kijjaz No Wave".
"Let's make noise for peace!" - kijjaz _________________ "Let's make noise for peace." - Kijjaz
No-Wave style sax is quite hard to describe (actually it could be argued that No-Wave itself is impossible to define...). Erm... imagine a saxophonist who is quite good at making a sax make all sorts of noises but not at all influenced by traditional sax playing. It's mostly in the rhythm and the timbre, these are repetitive distorted and often borderline a-tonal but still "musical". We're talking about a lot of noise but noise made by musicians with more control over their instrument then the average punk guitarist.
I'd hook up STK's Saxophony to your riff generators, then tweak the member functions until you start wondering "is this still a sax?", that should about do it ;¬).
So far for the music-history lesson.... go whatever you think feels right but I think a angle like that could be more exciting then going with more plain strings and edging towards a sort of "minimal wave" sound, I've become a bit tired of that, even if there are of course very interesting pieces in that style as well. _________________ Kassen
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Sun Nov 02, 2008 5:37 pm Post subject:
OK Kas, I did just that - added the sax and made it funky. All of the sax parameters are varied with weighted probability functions. Now because of the variability, only one song in 25 or so is "good", but that's ok, I just keep hitting the enter key.
I have not yet added kijjaz's scale stuff for the guitar. Does anyone know of a source for scales as MIDI notes in an array? I know, Google is my friend...
I'm calling it "KNoW", for "Kijjaz No Wave"! A tribute to our buddy kijjaz.
KNoW12.mp3
Description:
Filesize:
787.75 KB
Viewed:
2172 Time(s)
_________________ "Let's make noise for peace." - Kijjaz
It starts on the fourth song, which is the second album called "Boolean Sequencing", but you might like the first three songs from the "Paranoid Schizophrenia" album also.
I will continue to add new songs once I have enough for another album.
Maybe later tonight I'll add the scales... _________________ "Let's make noise for peace." - Kijjaz
Les, my radio-show is only a small one on local radio (but it has internet streaming as well)... and it's in the middle of the night... but if you send me stuff you can be on the radio; I like your music. _________________ Kassen
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 10:40 am Post subject:
Kassen wrote:
Les, my radio-show is only a small one on local radio (but it has internet streaming as well)... and it's in the middle of the night... but if you send me stuff you can be on the radio; I like your music.
Woohoo, Kassen, you made my day! To be on the air half a world away in the middle of the night would be fantastic! I'll send you all of my current songs, though that will be a few separate emails. Yipee! _________________ "Let's make noise for peace." - Kijjaz
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 1:08 pm Post subject:
Hey Kijjaz, I just arranged for you to receive a free Guitar Motion Sensor. Cool! Check your private messages on electro-music.com. _________________ "Let's make noise for peace." - Kijjaz
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 2:12 pm Post subject:
So, um, what I have not yet figured out is how to represent a scale as an array of MIDI notes. I'd like to use Kijjaz's proposed technique of having a basenote and the array contains relative notes that form the scale. Any scale will do. Could someone who understands this describe it or post such an array? I'd appreciate it, as I cannot proceed without it. Thanks in advance. _________________ "Let's make noise for peace." - Kijjaz
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 3:28 pm Post subject:
Thanks, kijjaz, that was SOOO helpful! I have already begun coding it up! Should have something in place tonight. _________________ "Let's make noise for peace." - Kijjaz
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 4:50 pm Post subject:
Well, I put in the major pentatonic scale with two octaves and I am running both the guitar and the sax from it. I must say the sound is greatly improved! It actually sounds more like music now. Here is a short example:
KNoW16.mp3
Description:
A short active song
Filesize:
227.75 KB
Viewed:
2080 Time(s)
_________________ "Let's make noise for peace." - Kijjaz
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 270
Posted: Mon Nov 03, 2008 10:44 pm Post subject:
Here is a song that uses your function, kijjaz. I added a feature that sets a random number of octaves for the song and if it walks to the upper or lower boundary, it rotates to the other boundary. This one walks up in frequency a few times before wrapping around. The sax and drums are prominent here.
KNoW_Octaves.mp3
Description:
A song spanning three octaves
Filesize:
2.56 MB
Viewed:
2121 Time(s)
_________________ "Let's make noise for peace." - Kijjaz
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum