Sitar, hearing voices, Miniaudicle
Dear ChucKists, Last night I was fooling around with some STK instruments and it looks like Sitar needs some attention. First of all Sitar.pluck() doesn't.... well, pluck. Sitar.moteOn() does pluck and as far as I can see .noteOn could simply be refered to by .pluck(). Second one is slightly more complicated and turns out to be downright dangerous. I accidentally send Sitar some every low notes (in the bottom octave of the MIDI range) and this results in a error that the delay line is too short. Strangely StifKarp doesn't do the same (that one "plucks" as well). This gets dangerous as I believe Sitar will report on this issue for every sample so that's 44 Kilo-errors per second. This was too much for the poor MiniAudicle to deal with and I had to quit it. If it's intended behaviour that Sitar has a minimum frequency (for example because real sitars don't go into the very low range either) it would be bettter to have a sanity check on the frequency before this happens. I could probably fix these myself tomorow and send in the fixed STK Ugens cpp file if that would be helpfull? Next up; VoicForm's documentation doesn't include any mention of the allowed phonemes (sp?) and the only way that I could find them was read the source. Without those this Ugens is almost unusable for non-random usage so that probably needs a fix. I realise, BTW, that figuring out the parameters is time-consuming and probably boring as well but wouldn't it be a lot of fun if ChucK could say it's own name? I tried to persuade it to do that but I think we are short a few sounds.Generally we don't seem to have any plosives or "C"/"k" type clicking sounds so that"s no "chucK', "spork" or "crash" maybe "shred" would be possible. It's kinda trivial but it would be so much fun for demonstrations. I could submit a sugested addition for the docs to the WiKi as well tomorow, the source is quite clear on this once you know your way around. Finally, I did some more testing and I'm now sure that on XP the Mini affects keyboard settings. More speciffically on startup the Mini switches the keyboard layout in the "langiuage bar" to the default one that XP asumes on startup. This can get anoying; my default setting is the Dutch one so I can use my trusty IBM model M but the laptop itself has a US layout so when traveling lightly ( a Model M clocks in at 2.5KG, roughly 5 pounds) I use the US layout. It gets iritating if the Mini keeps switching this back to NL every time it's started (which can get frequent when hunting bugs), especially as I can't see a reason for that. Note that characters like "=" and ">" are in different places on various layouts, as are all the brackets.... It also looks like the Mini doesn't use XP's clip-board so pasting from the Mini to other aplications is impossible, it's also not possible to use "copy", re-start the Mini (or crash it!), then paste. So, that's it, quite a few issues for a 1.5::hour session but that's how it goes :-) Yours, Kas.
A few more language questions/feature requests: I see that NullPointerExceptions are thrown in some situations (but not always, see below) by the vm -- is it possible to throw an Exception? Is it possible to catch an Exception? I could simulate throwing an exception by printing out an error message with the offending line number and calling me.exit() . . . is it possible to get the current line number? In my attempt at an unit test framework for ChucK I crash the vm where I would expect it to throw a NullPointerException. See commented out lines in the attachment at http://electro-music.com/forum/viewtopic.php?p=154598#154598 michael
Kassen,
Second one is slightly more complicated and turns out to be downright dangerous. I accidentally send Sitar some every low notes (in the bottom octave of the MIDI range) and this results in a error that the delay line is too short. Strangely StifKarp doesn't do the same (that one "plucks" as well). This gets dangerous as I believe Sitar will report on this issue for every sample so that's 44 Kilo-errors per second. This was too much for the poor MiniAudicle to deal with and I had to quit it.
This is indeed a neat feature of StifKarp. Have a nice plucky tune playing, and then send it some really low notes to make percussive explosions. More instruments should have this kind of non-linear / discontinuous timbre change. Graham
On 29/11/2007, Graham Coleman
This is indeed a neat feature of StifKarp. Have a nice plucky tune playing, and then send it some really low notes to make percussive explosions.
More instruments should have this kind of non-linear / discontinuous timbre change.
Yeah, I love it. Last night I had a nice moment of Livecode practice on headphones, I'm moving my GF to a new place and have my laptop on her piano with scribled notes on the sheet-msuic stand :-) Anyway, if you put a Envelope over the StifKarp and pluck it with some very, very low frequencies, then re-tune to something reasonable while ramping up the envelope (without plucking again!) you get the nicest evolving textures while the whole system re-ballances itself. Lots of fun at only ten or so lines of code. I have yet to get into some of the more advanced parameters of StifKarp I think a lot more could be done with it... And there are still some STK instruments I didn't even try, it's like a treasure trove of fun stuff!. So far I think my favourite is the Shakers, the Shakers is/are perfect for doing wat I call "gremlin techno"; techno as played by a ensemble of Gremlins that broke into a garage. Good times. Cheers, Kas.
Kassen
Anyway, if you put a Envelope over the StifKarp and pluck it with some very, very low frequencies, then re-tune to something reasonable while ramping up the envelope (without plucking again!) you get the nicest evolving textures while the whole system re-ballances itself.
Can you post these 10 lines for us part-time ChucKers? -- robin
On 03/12/2007, robin.escalation
Can you post these 10 lines for us part-time ChucKers?
From memory it was something like this;
StifKarp s => Envelope e => dac; .5::second => e.duration; [0, 3, 5, 7, 9, 12] @=> int scale[]; while(1) { Std.mtof(scale[ Std.rand2(0, scale.cap() - 1) ] ) => s.freq; 1 => s.noteOn; second => now; 1 => e.keyOn; Std.mtof(30 + scale[ Std.rand2(0, scale.cap() - 1) ] ) => s.freq; second => now; Std.mtof(30 + scale[ Std.rand2(0, scale.cap() - 1) ] ) => s.freq; second => now; 1 => e.keyOff; second => now; } -------------------------------- Very basic stuff and this one somehow came out a bit different from the session I reported on but it does demonstrate the evolving textures due to the re-balancing feedback system in the Ugen. Maybe you could get that pseudo "pluck" at the second of the two notes you hear out of there by sliding the frequency instead of having it jump, there's a lot of stuff to play with here. I wish I could remember how I got those more noisy textures I had, perhaps the notes were simply lower but I need some sleep now so it's all yours for now, enjoy! Kas.
On 29/11/2007, Kassen
Finally, I did some more testing and I'm now sure that on XP the Mini affects keyboard settings.
Right. Some more testing showed me that XP remembers this setting per program and then only untill it stops running. that's even more anoying but not something we can blame on the Mini. The only remidy seems to be to switch the default keyboard profile "permanently". Sigh. Sorry about that, yet again. Once I rule the world all OS settings will be sensible and laptops will come with buckling-spring keyboards... by law. Kas.
participants (4)
-
Graham Coleman
-
Kassen
-
Michael Heuer
-
robin.escalation