XHip--Please finish your synth!!
-
- KVRist
- 411 posts since 6 Jul, 2004 from Richmond, TX
sounds great. thanks for fixing the denormal spike. post when it's up, por favor.
i was f-ing around with xhip last night for about three hours, just hitting the ext randomizer and tweaking, freaking awesome synth. can't wait to get some patch libraries going.
here's a question: why do some patches take much more cpu than others? when i randomize, i don't let ext randomize any of the cpu "usual suspects" like unison or polyphony, those are kept to no-unison and 4 note poly. also, i keep the supersaw all the way off.
so why would one patch be a 3% cpu, and another be 25%? do some of the distortion or filter modes take more cpu?
thanks!
i was f-ing around with xhip last night for about three hours, just hitting the ext randomizer and tweaking, freaking awesome synth. can't wait to get some patch libraries going.
here's a question: why do some patches take much more cpu than others? when i randomize, i don't let ext randomize any of the cpu "usual suspects" like unison or polyphony, those are kept to no-unison and 4 note poly. also, i keep the supersaw all the way off.
so why would one patch be a 3% cpu, and another be 25%? do some of the distortion or filter modes take more cpu?
thanks!
FREE MUSIC NO MONEY DOWN
http://joeyhoney.blogspot.com/
http://joeyhoney.blogspot.com/
-
- KVRAF
- 10815 posts since 26 Nov, 2004 from UK
acid can do the gui no problem 
its just not what he sees as a top priority ATM,
i'm looking forward to the new gui's & the finished patch state where all parameters are saved with xhip & a sexy ever growing preset pack
Subz
its just not what he sees as a top priority ATM,
i'm looking forward to the new gui's & the finished patch state where all parameters are saved with xhip & a sexy ever growing preset pack
Subz
-
- KVRist
- 410 posts since 29 Jul, 2003
Hey 'Dose,
Been reading a few of your other posts recently, and you certainly seem to be clued in DSP-wise (and verbose to boot
). Just wondered if you ever thought of doing a DSP coding book? You could probably make quite a bit of money......
Been reading a few of your other posts recently, and you certainly seem to be clued in DSP-wise (and verbose to boot
Want to change your additive synth into an addictive one? You just need 5000 Cs!
- KVRAF
- 12615 posts since 7 Dec, 2004
might do that once i have the most well known most popular free synthesizer in teh-warld!!!11oneone i yuzd 2be a 1337 haxor but now i haev chenged my wayz an becaem a COMPUTAR SACURETY CONSELTANT!! hAhAHAHAH
no idea why i just typed that. anyway..
http://xhip.cjb.net/temp/public/ahh.mp3
http://xhip.cjb.net/temp/public/arowah.mp3
http://xhip.cjb.net/temp/public/ggs000.mp3 - all xhip
http://xhip.cjb.net/temp/public/souperorgan.mp3 - all xhip, overdubbing
http://xhip.cjb.net/temp/public/organs.mp3 - just tweaking osc amplitude and filter saturation. input is osc.a 45% pulse, osc.b +19st sine.
http://xhip.cjb.net/temp/public/adfilt02_pulxor.mp3 - analog filter i built, analog oscillator from my sh09 going through here. sh09 -> vcf -> vca. the vca is my design too, they're 100% transistor designs and small footprint. the vcf is controlled by a simple pot putting out 0 to +15 volts. the vca is connected directly to the sh09's gate output which is where most of the clicking comes from. this vca has some high frequency cv leakage which i need to cure by bypassing the cv input with a 1n cap. the filter has fairly significant full range cv leakage due to the type it is, but that isnt such a problem in my revised version. this was a first prototype, building the 2nd prototype later..
http://xhip.cjb.net/temp/public/adfilt02_choon.mp3 - silly short music blip with it
http://xhip.cjb.net/temp/public/adfilt02_fsweep0.wav - square with full range sweep, 80% res
http://xhip.cjb.net/temp/public/adfilt2.jpg - 2nd drawing, just quickly drew it so this drawing sucks. also this isnt the best design, my revised version is much improved. if anyone is really interested ask me for it. (i dont think anyone will be though)
xhip can sound a lot like (almost exactly) this filter if you use the freq/res mod and saturation.
yes, xhip pwns the pwnage, pwntown style.
no idea why i just typed that. anyway..
http://xhip.cjb.net/temp/public/ahh.mp3
http://xhip.cjb.net/temp/public/arowah.mp3
http://xhip.cjb.net/temp/public/ggs000.mp3 - all xhip
http://xhip.cjb.net/temp/public/souperorgan.mp3 - all xhip, overdubbing
http://xhip.cjb.net/temp/public/organs.mp3 - just tweaking osc amplitude and filter saturation. input is osc.a 45% pulse, osc.b +19st sine.
http://xhip.cjb.net/temp/public/adfilt02_pulxor.mp3 - analog filter i built, analog oscillator from my sh09 going through here. sh09 -> vcf -> vca. the vca is my design too, they're 100% transistor designs and small footprint. the vcf is controlled by a simple pot putting out 0 to +15 volts. the vca is connected directly to the sh09's gate output which is where most of the clicking comes from. this vca has some high frequency cv leakage which i need to cure by bypassing the cv input with a 1n cap. the filter has fairly significant full range cv leakage due to the type it is, but that isnt such a problem in my revised version. this was a first prototype, building the 2nd prototype later..
http://xhip.cjb.net/temp/public/adfilt02_choon.mp3 - silly short music blip with it
http://xhip.cjb.net/temp/public/adfilt02_fsweep0.wav - square with full range sweep, 80% res
http://xhip.cjb.net/temp/public/adfilt2.jpg - 2nd drawing, just quickly drew it so this drawing sucks. also this isnt the best design, my revised version is much improved. if anyone is really interested ask me for it. (i dont think anyone will be though)
xhip can sound a lot like (almost exactly) this filter if you use the freq/res mod and saturation.
yes, xhip pwns the pwnage, pwntown style.
- KVRAF
- 6478 posts since 16 Dec, 2002
aciddose wrote:might do that once i have the most well known most popular free synthesizer in teh-warld!!!11oneone i yuzd 2be a 1337 haxor but now i haev chenged my wayz an becaem a COMPUTAR SACURETY CONSELTANT!! hAhAHAHAH
http://xhip.cjb.net/temp/public/ahh.mp3
-
- KVRist
- 377 posts since 16 Apr, 2004 from Antwerp
deja vu!then sitting on the shitter or something like that the idea hits me
- KVRAF
- 12615 posts since 7 Dec, 2004
of course that was a jeffk reference due to the fact i felt i was being a little egotistic talking about "might do that once" rather than "might do that if". jeffk is an egotistic scriptkiddie character invented by Rich "Lowtax" Kyanka, owner of somethingawful.com
http://www.somethingawful.com/jeffk/
http://www.somethingawful.com/jeffk/
-
- KVRAF
- 3499 posts since 9 Oct, 2004 from Poland
- KVRAF
- 3846 posts since 15 Mar, 2002 from Underworld
I, too, get the best ideas and write songs while sitting on a crapper
. I don't know why... is it the smell that's so inspiring? 
Cheers!
Cheers!
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti
- KVRAF
- 12615 posts since 7 Dec, 2004
oh bengeorge, i forgot to answer one of your questions. yes, the more advanced modes take more cpu power. the things to look out for are:
- the post-expo modes for glide take a tiny fraction of the time the other modes take. i can improve this partially, but even that improvement will only remove the cpu use part of the time, it'll result in even more variation in cpu time consumption. you should probably use the two 'post-expo' modes ALWAYS with the exception of in the case the sound is so radically different you just have to use the first modes. this applies often to the linear mode, but for the log mode it is very difficult to tell the difference.
should i put the faster modes first with the slower modes second? that might be better. i could also name them "fast" instead of "post-expo" since that'll make more sense to most users. i'll explain the post-expo business in the manual then.
- the 24db filter modes take about 30% more cpu power than the 12db modes. the reason for this should be obvious - the 24db filter is basically two of the 12db filter. the reason it only takes 30% more rather than 100% more is due to the fact most of the time is spent calculating the coefficents - actually not really the coefficents, but just mixing and scaling the modulation inputs.
- the waveshaper filter is applied per-voice, it is the same as the 12db mode on the main filter for cpu time, even for the 6db modes, minus the cost of the modulation for the main filter. the cost of processing the filter itself is still significant. if you just want to apply some eq (highpass, lowpass, etc) to the whole synth you should do it with an external filter.
i've considered removing the filter entirely a few times, but it is useful for certain sounds where you need an extra filter per-voice, like with the 'drum mode'. if i make xhip multitimbral in the future (which i will) i need to leave this ability here, the ability for each voice to have it's own waveshaper filter since each voice may have a different patch set.
- the oscillator uses cpu power in order of most to least: supersaw, sine, triangle, pulse, saw, pcm, noise. the supersaw uses a lot more power than the noise, pulse is maybe at 20% between them. i do not have the results of any tests to be able to post exact numbers, but the supersaw uses a LOT more. pulse uses twice as much as ramp. triangle uses twice as much as pulse.
- if an envelope or modulator is not used, it is not calculated. they do not take much time to calculate, but the routing and mixing does take time. the routing/mixing stage is enabled immediately when any modulation input is used. you should notice that if you're using the filter and turn on a little modulator input, the cpu requirement will increase quite a lot.
this is somewhere that self-modifying code will help in the future, not by eliminating the cpu requirement, but by helping to scale it in smaller steps. when enabling the modulator i will be able to insert only the code for the modulator and none of the conditional statements or code for the other modulation sources.
- running the oscillators at higher frequency takes more cpu power since the impulse summation function needs to run more often. this can not be avoided, the only alternative is to run the summation for every sample regardless of frequency, and that wouldnt do anything to help.
some people believe that having "cpu spikes" is a bad thing. it is not. it doesnt matter that the cpu is not running at a constant level, this has no negative consequence. overall, you're getting more cpu time free. running the process all-out to eliminate the spikes will just greatly increase the cpu time required.
you do not run your car when you're not driving, so why should a program use your cpu when there is no processing to be done.
- the post-expo modes for glide take a tiny fraction of the time the other modes take. i can improve this partially, but even that improvement will only remove the cpu use part of the time, it'll result in even more variation in cpu time consumption. you should probably use the two 'post-expo' modes ALWAYS with the exception of in the case the sound is so radically different you just have to use the first modes. this applies often to the linear mode, but for the log mode it is very difficult to tell the difference.
should i put the faster modes first with the slower modes second? that might be better. i could also name them "fast" instead of "post-expo" since that'll make more sense to most users. i'll explain the post-expo business in the manual then.
- the 24db filter modes take about 30% more cpu power than the 12db modes. the reason for this should be obvious - the 24db filter is basically two of the 12db filter. the reason it only takes 30% more rather than 100% more is due to the fact most of the time is spent calculating the coefficents - actually not really the coefficents, but just mixing and scaling the modulation inputs.
- the waveshaper filter is applied per-voice, it is the same as the 12db mode on the main filter for cpu time, even for the 6db modes, minus the cost of the modulation for the main filter. the cost of processing the filter itself is still significant. if you just want to apply some eq (highpass, lowpass, etc) to the whole synth you should do it with an external filter.
i've considered removing the filter entirely a few times, but it is useful for certain sounds where you need an extra filter per-voice, like with the 'drum mode'. if i make xhip multitimbral in the future (which i will) i need to leave this ability here, the ability for each voice to have it's own waveshaper filter since each voice may have a different patch set.
- the oscillator uses cpu power in order of most to least: supersaw, sine, triangle, pulse, saw, pcm, noise. the supersaw uses a lot more power than the noise, pulse is maybe at 20% between them. i do not have the results of any tests to be able to post exact numbers, but the supersaw uses a LOT more. pulse uses twice as much as ramp. triangle uses twice as much as pulse.
- if an envelope or modulator is not used, it is not calculated. they do not take much time to calculate, but the routing and mixing does take time. the routing/mixing stage is enabled immediately when any modulation input is used. you should notice that if you're using the filter and turn on a little modulator input, the cpu requirement will increase quite a lot.
this is somewhere that self-modifying code will help in the future, not by eliminating the cpu requirement, but by helping to scale it in smaller steps. when enabling the modulator i will be able to insert only the code for the modulator and none of the conditional statements or code for the other modulation sources.
- running the oscillators at higher frequency takes more cpu power since the impulse summation function needs to run more often. this can not be avoided, the only alternative is to run the summation for every sample regardless of frequency, and that wouldnt do anything to help.
some people believe that having "cpu spikes" is a bad thing. it is not. it doesnt matter that the cpu is not running at a constant level, this has no negative consequence. overall, you're getting more cpu time free. running the process all-out to eliminate the spikes will just greatly increase the cpu time required.
you do not run your car when you're not driving, so why should a program use your cpu when there is no processing to be done.
-
- KVRAF
- 6241 posts since 26 Sep, 2003 from right here, as you can see ...
interresting about the supersaw, aciddose ...
but i have an idea, that maybe reduces this a bit, plus it's very useful:
most supersaws are way too fat, as they sometimes use up to 10 saws per osc ... i often want to use less stacked saws, as this sounds mostly better, though of course not always, it depends on the task ..
but how about giving the user the possibility to adjust the count of saws used? say, from 2 up to max, always +1?
even if it doesn't reduce the cpu usage, it's still very useful, as it simply sounds different, often 5 is enough (as the jp8000 has 5, too) ...
how about that?
but i have an idea, that maybe reduces this a bit, plus it's very useful:
most supersaws are way too fat, as they sometimes use up to 10 saws per osc ... i often want to use less stacked saws, as this sounds mostly better, though of course not always, it depends on the task ..
but how about giving the user the possibility to adjust the count of saws used? say, from 2 up to max, always +1?
even if it doesn't reduce the cpu usage, it's still very useful, as it simply sounds different, often 5 is enough (as the jp8000 has 5, too) ...
how about that?
regards,
brok landers
BIGTONEsounddesign
gear is as good as the innovation behind it-the man
brok landers
BIGTONEsounddesign
gear is as good as the innovation behind it-the man
- KVRAF
- 12615 posts since 7 Dec, 2004
i can of course do that, but that would require adding a whole new control specifically for that purpose. i'll do anything to avoid adding controls that are rarely used.
i guess i can add a global option for it... hm.. i cant really make up my mind on this. there you have the reason it isnt done yet
and ideas on how to do it without adding a bunch of extra controls? i mean while i'm at it there are other things to adjust too, like the detune distribution, randomization.. individual detune per-ramp, amplitude per-ramp, and maybe others.
maybe i can add a special pagebox to the synthesizer panel on the control page for pages of experimental controls, and i can insert this stuff there. might take until tommorow before i do anything though, i'm in a lazy mood right now - and the last couple weeks too!
i suppose i should do some coding again. really too lazy at the moment though, time for tea and biscuits! yay, biscuits!
i guess i can add a global option for it... hm.. i cant really make up my mind on this. there you have the reason it isnt done yet
and ideas on how to do it without adding a bunch of extra controls? i mean while i'm at it there are other things to adjust too, like the detune distribution, randomization.. individual detune per-ramp, amplitude per-ramp, and maybe others.
maybe i can add a special pagebox to the synthesizer panel on the control page for pages of experimental controls, and i can insert this stuff there. might take until tommorow before i do anything though, i'm in a lazy mood right now - and the last couple weeks too!
i suppose i should do some coding again. really too lazy at the moment though, time for tea and biscuits! yay, biscuits!
-
- KVRAF
- 6241 posts since 26 Sep, 2003 from right here, as you can see ...
just 2 controls would be needed, guiwise ..
add 2 sliders on the control page, where each of the sliders control the count of the stacked saws for osc
a and b independantly ... there's plenty of space ...
lateron, on the "real" gui, whoever it makes, this can be just a vertically draggable textbox right next to the osc's, it won't take much space ...
by adding this feature, you increase the potential of xhipsynth a lot.
it's subtle and often overlooked, but once one finds the correct use this is pure gold ... just like the retriggering of the osc's ... as i'm a sounddesigner, i really often miss just these subtle things, which in the end are the fine tricks to seperate the "men" from the "boys", so to speak ....
oh, and, of course, be lazy ... most creative thoughts come while just relaxing ...

add 2 sliders on the control page, where each of the sliders control the count of the stacked saws for osc
a and b independantly ... there's plenty of space ...
lateron, on the "real" gui, whoever it makes, this can be just a vertically draggable textbox right next to the osc's, it won't take much space ...
by adding this feature, you increase the potential of xhipsynth a lot.
it's subtle and often overlooked, but once one finds the correct use this is pure gold ... just like the retriggering of the osc's ... as i'm a sounddesigner, i really often miss just these subtle things, which in the end are the fine tricks to seperate the "men" from the "boys", so to speak ....
oh, and, of course, be lazy ... most creative thoughts come while just relaxing ...
regards,
brok landers
BIGTONEsounddesign
gear is as good as the innovation behind it-the man
brok landers
BIGTONEsounddesign
gear is as good as the innovation behind it-the man
-
- KVRian
- 673 posts since 15 Nov, 2004 from Montevideo, Uruguay
Well, I'm pretty lazy with the GUI design too. 
However, I was reviewing the design and checking the TODO list these days and a lot of questions arose:
Are Waveshaper Symmetry and Keytracking going to be implemented?
Will initial phase for oscillators/LFOs be available as parameters?
Will sample editing be per oscillator or per sample?
Is there a reason why the oscillators' Invert controls are in the mixer section? Would it be better to put them attached to each oscillator? And do they work with PCM waves?
Do negative values in Pulse Width have a meaning when the waveform is ramp or triangle?
What does Reset in Envelope Trigger do?
Does Poly 1 mode make sense?
Ok, I'll stop here.
Xhip will be evolving forever. I'm having trouble setting some kind of milestone in which to base the GUI design. I'm trying to keep it extensible but sometimes this interferes with other goals (like space efficiency). Any suggestions?
I like the generic dropbox.
May I suggest a slightly different behavior?:

After pressing down the mouse button on the control, releasing it on the
green area, sets the selected value and closes the menu,
blue area, closes the menu,
red area, the menu stays open.
If you want to get extremely anal you can make the drop menu to always stay on screen too.
However, I was reviewing the design and checking the TODO list these days and a lot of questions arose:
Are Waveshaper Symmetry and Keytracking going to be implemented?
Will initial phase for oscillators/LFOs be available as parameters?
Will sample editing be per oscillator or per sample?
Is there a reason why the oscillators' Invert controls are in the mixer section? Would it be better to put them attached to each oscillator? And do they work with PCM waves?
Do negative values in Pulse Width have a meaning when the waveform is ramp or triangle?
What does Reset in Envelope Trigger do?
Does Poly 1 mode make sense?
Ok, I'll stop here.
Xhip will be evolving forever. I'm having trouble setting some kind of milestone in which to base the GUI design. I'm trying to keep it extensible but sometimes this interferes with other goals (like space efficiency). Any suggestions?
I like the generic dropbox.
May I suggest a slightly different behavior?:

After pressing down the mouse button on the control, releasing it on the
green area, sets the selected value and closes the menu,
blue area, closes the menu,
red area, the menu stays open.
If you want to get extremely anal you can make the drop menu to always stay on screen too.

