XHip--Please finish your synth!!
-
- KVRian
- 889 posts since 10 Jul, 2004
the clicking comes from the a/b envelopes .if the synth is set to gate in its main page (bypassing the a/b envelopes) theres no click.
i didn't know i could get the same click out of each note with that waveform sync-to-noteon trick (where is it done?)...that would help a lot....its the phaseing and ever changing click that drives me nuts.
btw on some patches not even adding 4 secs (!!) to the attack gets rid of the click. 2.5 ms or 5 ms dont even come close to removin it.
i'll add audio examples tomorrow.
the only way to play deep bass legato notes without clicks so far is to use it in gate.
i didn't know i could get the same click out of each note with that waveform sync-to-noteon trick (where is it done?)...that would help a lot....its the phaseing and ever changing click that drives me nuts.
btw on some patches not even adding 4 secs (!!) to the attack gets rid of the click. 2.5 ms or 5 ms dont even come close to removin it.
i'll add audio examples tomorrow.
the only way to play deep bass legato notes without clicks so far is to use it in gate.
- KVRAF
- 12615 posts since 7 Dec, 2004
perhaps you have the decay set to a very short value then, try increasing it.
audio examples will NOT help. you must produce a short midi sequence and patch to demonstrate the clicking, then create an mp3. the mp3 will only be so i can make sure when i play the midi sequence + patch on my system that i'm getting the same output.
the AR envelope (GATE) doesnt have a sustain stage (meaning a fast decay cant cause a click) and it is limited to 2.5ms attack, 25 ms release.
other things which cause clicking:
audio examples will NOT help. you must produce a short midi sequence and patch to demonstrate the clicking, then create an mp3. the mp3 will only be so i can make sure when i play the midi sequence + patch on my system that i'm getting the same output.
the AR envelope (GATE) doesnt have a sustain stage (meaning a fast decay cant cause a click) and it is limited to 2.5ms attack, 25 ms release.
other things which cause clicking:
- filter trigger.
- lfo modulating amplitude, cutoff, panning or anything else with a sharp waveform. (pulse, noise, staircase and ramps have sharp edges.. only random and triangle are smooth)
- osc sync to note-on.
- lfo sync to note-on.
- adjusting lfo rate a lot while using tempo sync mode may cause a resync to occur in the lfo position.
- using tempo sweeps in your host might mess up the lfo in tempo sync mode.
- envelope modulation of amplitude or cutoff with any fast time. (attack, decay or release)
- switching modes like filter mode, waveform, notelogic mode, or anything else like that.
- using too large input signal into the filter will cause wrapping distortion. (+12db on everything)
- wide sweeps of cutoff via keytracking. (playing C0 and C7 with keytrack on 100%, it isnt smoothed)
- switching waveshaper options a lot. (the waveshaper sucks and is for specific shaping of some sounds - do not use it as a general purpose distortion effect, use an effect plugin)
- certain parameter settings at lower sample rates, xhip is designed for 48khz or higher, at lower rates you may encounter bad behaviour because i've never tested it much at lower rates.
- adjusting any of the parameters which do not use input smoothing, like the main volume control.
- adjusting any parameter at all when smoothing is disabled.
- clipping and in some severe cases wrapping can occur when using very high levels and/or unison.
-
offensive-teenager offensive-teenager https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=159180
- Banned
- 102 posts since 4 Sep, 2007
Is the patch format already stable or? I would like to start making supersaw patches for xhip and share them with everyone!
-
offensive-teenager offensive-teenager https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=159180
- Banned
- 102 posts since 4 Sep, 2007
can someone help i am having trouble to creating supersaw sounds? could someone post examples of supersaw patches?
- KVRAF
- 12615 posts since 7 Dec, 2004
select ramp waveform and adjust the pulse width setting to change ramp detune. there are by default 16 oscillators, but that can be adjusted to any number from 1-16.
http://xhip.cjb.net/temp/public/ssaw0.mp3
http://xhip.cjb.net/temp/public/ssaw.adxi
-
- KVRist
- 48 posts since 31 Dec, 2004 from Belfast
I'd like to try this out but I'm not sure what files I need off this page?
http://xhip.cjb.net/xhip/releases/
http://xhip.cjb.net/xhip/releases/
-
- KVRAF
- 1958 posts since 16 Jan, 2005 from France's Dirty South
adxhip.0.6.14.9.dll i guess.steviemac2000 wrote:I'd like to try this out but I'm not sure what files I need off this page?
http://xhip.cjb.net/xhip/releases/
- KVRAF
- 12615 posts since 7 Dec, 2004
"Hi, maybe this is a little late for feature requests, but I wish there was some way to reset the unison offset back to zero automatically after each note."
set oscillator sync to "Gate". if you want the same feature to apply to all of the supersaw oscillators, i can do that in a couple minutes.
also, i've fixed the 'releases' page so it isnt printing a bunch of file links by default.
http://xhip.cjb.net/xhip/releases/
set oscillator sync to "Gate". if you want the same feature to apply to all of the supersaw oscillators, i can do that in a couple minutes.
also, i've fixed the 'releases' page so it isnt printing a bunch of file links by default.
http://xhip.cjb.net/xhip/releases/
- KVRAF
- 8563 posts since 2 Aug, 2005 from Guitar Land, USA
I love some of the snappy presets in the default bank, I'm running it right now into Flux Bittersweet transient booster, really punchy.
The only site for experimental amp sim freeware & MIDI FX: http://runbeerrun.blogspot.com
https://m.youtube.com/channel/UCprNcvVH6aPTehLv8J5xokA -Youtube jams
https://m.youtube.com/channel/UCprNcvVH6aPTehLv8J5xokA -Youtube jams
-
- KVRAF
- 6242 posts since 26 Sep, 2003 from right here, as you can see ...
save that, you got an amp env in xhip and if i may add, a _polyphone_ one (as opposed to a transientshaping plugin, which always has to be monophon) ...RunBeerRun wrote:I love some of the snappy presets in the default bank, I'm running it right now into Flux Bittersweet transient booster, really punchy.
btw, acid, how far is the guiversion (gsoto)?
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 havent really started since i havent heard back from gsoto much. we're both busy really, so it may take some time. currently i've got to create some abstract interfaces in xhip - i'll actually explain this:
currently the default gui calls global functions to get a lot of information. it takes a pointer to the xhip synth object and calls off it directly like xhipsynth->getparametergroup(). this assumes two things: 1) the functions used by that object are in global scope for this application 2) it is 'ok' to access the synth directly at all.
with a modular gui (default.xhipgui file, where you select it in an ini like "gui = c:/mysynths/default.xhipgui") both of those are false. the synth code isnt included in the gui file, it's included in the vst file. also, it isnt ok to access the synth object directly because that requires knowledge about what is inside the object, and the gui should work fine regardless of what version of the synth is used.
so, in order to fix that i need to create an abstract interface where i can call vstplugin->vendorspecific("xhip", "getparametergroup", parameters, ...). that way the gui doesnt need to know anything about the synth's structure, it only needs to know those "abstract" interface functions to "learn" about the synth.
i've only used one function as an example, but there are actually several. this is about two to four hours of coding work which is _nothing_, but i've really been working on my hardware stuff the last six months and i'm getting close to the end of my self-set deadline and i'd like to meet it. i'll actually put some coding in tonight though now that you mention it, since i'm going to be waiting on some shipments to arrive in the next few days.
this is the list of functions which are called in "naughty behaviour" by xhip's gui at the moment.
after the stuff is modularized i'll be able to quickly implement gsoto's latest designs once i can talk to him. it really depends then upon how busy he is, but i can do up a quick and dirty version of the last design i saw from him and just modify that when he sends me the final design.
another great thing about this modularization of the gui is: anybody will be able to code a gui, even from their own sources or using vstgui, bitmaps, or anything they like without my help.
currently the default gui calls global functions to get a lot of information. it takes a pointer to the xhip synth object and calls off it directly like xhipsynth->getparametergroup(). this assumes two things: 1) the functions used by that object are in global scope for this application 2) it is 'ok' to access the synth directly at all.
with a modular gui (default.xhipgui file, where you select it in an ini like "gui = c:/mysynths/default.xhipgui") both of those are false. the synth code isnt included in the gui file, it's included in the vst file. also, it isnt ok to access the synth object directly because that requires knowledge about what is inside the object, and the gui should work fine regardless of what version of the synth is used.
so, in order to fix that i need to create an abstract interface where i can call vstplugin->vendorspecific("xhip", "getparametergroup", parameters, ...). that way the gui doesnt need to know anything about the synth's structure, it only needs to know those "abstract" interface functions to "learn" about the synth.
i've only used one function as an example, but there are actually several. this is about two to four hours of coding work which is _nothing_, but i've really been working on my hardware stuff the last six months and i'm getting close to the end of my self-set deadline and i'd like to meet it. i'll actually put some coding in tonight though now that you mention it, since i'm going to be waiting on some shipments to arrive in the next few days.
this is the list of functions which are called in "naughty behaviour" by xhip's gui at the moment.
editor_standard.o:editor_standard.cpp:(.text+0x8fd): undefined reference to 'ADNotelogic::getRange(long)'
editor_standard.o:editor_standard.cpp:(.text+0xa41): undefined reference to 'ACIDSYN::activeVoices()'
editor_standard.o:editor_standard.cpp:(.text+0xb9b): undefined reference to 'ADNotelogic::getRange(long)'
editor_standard.o:editor_standard.cpp:(.text+0xe46): undefined reference to 'ACIDSYN::getProgram(long)'
editor_standard.o:editor_standard.cpp:(.text+0xe5a): undefined reference to 'ACIDSYN::clearInst(PROG<float>&)'
editor_standard.o:editor_standard.cpp:(.text+0x1023): undefined reference to 'ADNotelogic::setMode(bool)'
editor_standard.o:editor_standard.cpp:(.text+0x11e1): undefined reference to 'ADMINBLEP::saws'
editor_standard.o:editor_standard.cpp:(.text+0x11f2): undefined reference to 'ADMINBLEP::saws'
editor_standard.o:editor_standard.cpp:(.text+0x156f): undefined reference to 'ACIDSYN::getRange(long)'
editor_standard.o:editor_standard.cpp:(.text+0x1763): undefined reference to 'ACIDSYN::getParamData(char*, long, PROG<float> const&)'
editor_standard.o:editor_standard.cpp:(.text+0x191e): undefined reference to 'ACIDSYN::clearInst(PROG<float>&)'
editor_standard.o:editor_standard.cpp:(.text+0x1a26): undefined reference to 'ACIDSYN::getParamGroup(char*, long)'
editor_standard.o:editor_standard.cpp:(.text+0x1c1e): undefined reference to 'ADNotelogic::getRange(long)'
editor_standard.o:editor_standard.cpp:(.text+0x3e5d): undefined reference to 'ADMINBLEP::saws'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x1b2): undefined reference to 'loadinst(char*, long, ACIDSYN*)'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x235): undefined reference to 'saveinst(char*, long, ACIDSYN*)'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x2a7): undefined reference to 'loadbank(char*, ACIDSYN*)'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x31a): undefined reference to 'savebank(char*, ACIDSYN*)'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x3c8): undefined reference to 'loadwaves(char*, char*, ACIDSYN*)'
loadsavedialog.o:loadsavedialog.cpp:(.text+0x43e): undefined reference to 'loadwave(char*, char*, ACIDSYN*)'
after the stuff is modularized i'll be able to quickly implement gsoto's latest designs once i can talk to him. it really depends then upon how busy he is, but i can do up a quick and dirty version of the last design i saw from him and just modify that when he sends me the final design.
another great thing about this modularization of the gui is: anybody will be able to code a gui, even from their own sources or using vstgui, bitmaps, or anything they like without my help.
- KVRAF
- 12615 posts since 7 Dec, 2004
OK, the basics of the modular gui are working. i've only 'ported' the gen.xhipgui to this format so far.
http://xhip.cjb.net/xhip/releases/0/6/1 ... 6.15.0.zip
put all three files into the same place. you dont absolutely need the ini file, because currently if an ini is not found xhip will try to load "gen.xhipgui" automatically. in the ini file i've only written "gen.xhipgui". you may need to add the path ie. "c:/mysynths/xhip/gen.xhipgui" on your system. i can add a path for the default bank / default wave list here too, if anybody would like that. actually, i will do that fairly soon. just need to write a couple functions to search the file correctly for key=data pairs rather than the quickie scanf junk i'm using atm.
if you'd like to use xhip with your host's default gui, you can either write "walla balla ding dong" (it will not find a file and so abort loading gui) into the ini, or just delete the gen.xhipgui file.
http://xhip.cjb.net/xhip/releases/0/6/1 ... 6.15.0.zip
put all three files into the same place. you dont absolutely need the ini file, because currently if an ini is not found xhip will try to load "gen.xhipgui" automatically. in the ini file i've only written "gen.xhipgui". you may need to add the path ie. "c:/mysynths/xhip/gen.xhipgui" on your system. i can add a path for the default bank / default wave list here too, if anybody would like that. actually, i will do that fairly soon. just need to write a couple functions to search the file correctly for key=data pairs rather than the quickie scanf junk i'm using atm.
if you'd like to use xhip with your host's default gui, you can either write "walla balla ding dong" (it will not find a file and so abort loading gui) into the ini, or just delete the gen.xhipgui file.
