Open tgrey1 opened 4 years ago
i think this is a very good idea. remove kr wherever possible from the header, i'd say. joachim
On 26/07/2020 12:50, tgrey1 wrote:
This would be quite an undertaking... so I don't mind volunteering myself to do it over some time, I just want to make sure it's something that should be attempted first.
According to https://csound.com/docs/manual/kr.html "Beginning with Csound version 3.46, kr can be omitted. Csound will use the default values, or calculate kr from defined ksmps and sr. It is usually better to just specify ksmps and sr and let csound calculate kr."
But many examples have both. This quick grep lets a few false-positives slip through, but for the most part is a good way to get a rough count of files including both:
|$ grep -B 1 -A 1 ksmps * | grep kr | wc -l 244 |
I guess the biggest problem is making sure I can know and recognize when it's best /NOT/ to default to ksmps.
Thoughts?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKQMG654FPLBHUHJED3R5QC6FANCNFSM4PH5O7GQ.
Yes please.
All 0dbfs as well?
Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music
On Jul 26, 2020, at 12:53 PM, joachimheintz notifications@github.com wrote:
i think this is a very good idea. remove kr wherever possible from the header, i'd say. joachim
On 26/07/2020 12:50, tgrey1 wrote:
This would be quite an undertaking... so I don't mind volunteering myself to do it over some time, I just want to make sure it's something that should be attempted first.
According to https://csound.com/docs/manual/kr.html "Beginning with Csound version 3.46, kr can be omitted. Csound will use the default values, or calculate kr from defined ksmps and sr. It is usually better to just specify ksmps and sr and let csound calculate kr."
But many examples have both. This quick grep lets a few false-positives slip through, but for the most part is a good way to get a rough count of files including both:
|$ grep -B 1 -A 1 ksmps * | grep kr | wc -l 244 |
I guess the biggest problem is making sure I can know and recognize when it's best /NOT/ to default to ksmps.
Thoughts?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKQMG654FPLBHUHJED3R5QC6FANCNFSM4PH5O7GQ.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
0dbfs=1
Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music
On Jul 26, 2020, at 11:24 PM, Dr. Richard Boulanger rboulanger@berklee.edu wrote:
Yes please.
All 0dbfs as well?
Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music
On Jul 26, 2020, at 12:53 PM, joachimheintz notifications@github.com wrote:
i think this is a very good idea. remove kr wherever possible from the header, i'd say. joachim
On 26/07/2020 12:50, tgrey1 wrote:
This would be quite an undertaking... so I don't mind volunteering myself to do it over some time, I just want to make sure it's something that should be attempted first.
According to https://csound.com/docs/manual/kr.html "Beginning with Csound version 3.46, kr can be omitted. Csound will use the default values, or calculate kr from defined ksmps and sr. It is usually better to just specify ksmps and sr and let csound calculate kr."
But many examples have both. This quick grep lets a few false-positives slip through, but for the most part is a good way to get a rough count of files including both:
|$ grep -B 1 -A 1 ksmps * | grep kr | wc -l 244 |
I guess the biggest problem is making sure I can know and recognize when it's best /NOT/ to default to ksmps.
Thoughts?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKQMG654FPLBHUHJED3R5QC6FANCNFSM4PH5O7GQ.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
👍 For both ksmps and 0dbfs
... and set ksmps to a power of 2, perhaps 32 as standard ...
On 27/07/2020 06:19, Steven Yi wrote:
👍 For both ksmps and 0dbfs
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664110434, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKUJWE5OGMZCHQBVME3R5T567ANCNFSM4PH5O7GQ.
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with everything, whereas power of two numbers would only be compatible with 48000 and 96000?
lamps must be integer as it is the size of a vector. Neither sr nor kr need to be integers as they are just rates.
Get TypeApp for Android
On 27 Jul 2020, 16:32, at 16:32, tgrey1 notifications@github.com wrote:
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with everything, whereas power of two numbers would only be compatible with 48000 and 96000?
-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/csound/manual/issues/213#issuecomment-664467155
there is no need that kr must be an integer. but if ksmps is a power of 2, there are advantages in performance, because of duplex audio. and jack, for instance, requires ksmps to be a power of 2 (at least on my system).
audio applications like max, pd etc only have the choice to set the audio vector size / ksmps / blick size to power of 2. it should be special case in csound if to set not to a power of 2, in my opinion.
On 27/07/2020 17:31, tgrey1 wrote:
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with /everything/, whereas power of two numbers would only be compatible with 48000 and 96000?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664467155, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKXCA5TE6GSBRVOA4FDR5WMVDANCNFSM4PH5O7GQ.
We really do need clearer advice (somewhere/everywhere) about how to get the best real-time performance out of Csound -B, -b, sr, kr, ksmps
There has also been some great advice offered in the mailing list too.
I have probably missed it and there is probably a nice section already in FLOSS or in the Manual.
Maybe we could get some tips from Csounders with the most experience "playing" live on this or that platform/driver/OS?
Dr. Richard Boulanger
Professor of Electronic Production and Design
Berklee College of Music
Professional Writing and Technology Division
skype: radiobaton
facebook: https://www.facebook.com/richard.boulanger.58
about: http://www.boulangerlabs.com/#about
about: http://www.csounds.com/community/developers/dr-richard-boulanger/
music: http://www.csounds.com/community/developers/dr-richard-boulanger/dr-richard-boulanger-music/
Boulanger Labs - http://boulangerlabs.com
The Csound Book - http://mitpress.mit.edu/books/csound-book
The Audio Programming Book - http://mitpress.mit.edu/books/audio-programming-book
On Mon, Jul 27, 2020 at 12:56 PM joachimheintz notifications@github.com wrote:
there is no need that kr must be an integer. but if ksmps is a power of 2, there are advantages in performance, because of duplex audio. and jack, for instance, requires ksmps to be a power of 2 (at least on my system).
audio applications like max, pd etc only have the choice to set the audio vector size / ksmps / blick size to power of 2. it should be special case in csound if to set not to a power of 2, in my opinion.
On 27/07/2020 17:31, tgrey1 wrote:
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with /everything/, whereas power of two numbers would only be compatible with 48000 and 96000?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664467155, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAQYHKXCA5TE6GSBRVOA4FDR5WMVDANCNFSM4PH5O7GQ .
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL2Nzb3VuZC9tYW51YWwvaXNzdWVzLzIxMyNpc3N1ZWNvbW1lbnQtNjY0NTE1NDYy&e=cmJvdWxhbmdlckBiZXJrbGVlLmVkdQ==&t=cEw2S21kV3hQWU1rWHFrZUJ4UE1PQTAwNXlMMXJmSWZKY2gwd29lUWhrbz0=&h=0bb516b98b754abc9b5d0991d2bd2d71, or unsubscribe https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQUxXWUZVUFI3MzdCQk1MUjVKUDZMVFI1V1dTVEFOQ05GU000UEg1TzdHUQ==&e=cmJvdWxhbmdlckBiZXJrbGVlLmVkdQ==&t=NGVoYmVPS0RDN3FZejRoTnFySjhFbEFxSWFrRGRVQjhwcHVxajQ0NVdHMD0=&h=0bb516b98b754abc9b5d0991d2bd2d71 .
there is a short "Tuning Performance and Latency" paragraph in https://flossmanual.csound.com/quick-start/live-audio
and more extended: https://csound.com/docs/manual/UsingOptimizing.html
On 27/07/2020 20:27, csounder wrote:
We really do need clearer advice (somewhere/everywhere) about how to get the best real-time performance out of Csound -B, -b, sr, kr, ksmps
- there are tips here, and tips there, and advice that applies to ALSA that is different for PortAudio or CoreAudio, or the BELA or RaspberryPi or WebAudio on Crome or and iPhone or..
There has also been some great advice offered in the mailing list too.
- I am not sure that there is "one" place to send a beginner or even to go myself when I am running Csound on another platform like the Bela or Pi.
I have probably missed it and there is probably a nice section already in FLOSS or in the Manual.
- there are some excellent notes in the manual and in CsoundQt popup, but is there more - I think that there might be.
Maybe we could get some tips from Csounders with the most experience "playing" live on this or that platform/driver/OS?
Dr. Richard Boulanger
Professor of Electronic Production and Design
Berklee College of Music
Professional Writing and Technology Division
skype: radiobaton
facebook: https://www.facebook.com/richard.boulanger.58
about: http://www.boulangerlabs.com/#about
about: http://www.csounds.com/community/developers/dr-richard-boulanger/
music: http://www.csounds.com/community/developers/dr-richard-boulanger/dr-richard-boulanger-music/
Boulanger Labs - http://boulangerlabs.com
The Csound Book - http://mitpress.mit.edu/books/csound-book
The Audio Programming Book - http://mitpress.mit.edu/books/audio-programming-book
On Mon, Jul 27, 2020 at 12:56 PM joachimheintz notifications@github.com wrote:
there is no need that kr must be an integer. but if ksmps is a power of 2, there are advantages in performance, because of duplex audio. and jack, for instance, requires ksmps to be a power of 2 (at least on my system).
audio applications like max, pd etc only have the choice to set the audio vector size / ksmps / blick size to power of 2. it should be special case in csound if to set not to a power of 2, in my opinion.
On 27/07/2020 17:31, tgrey1 wrote:
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with /everything/, whereas power of two numbers would only be compatible with 48000 and 96000?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664467155, or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AAQYHKXCA5TE6GSBRVOA4FDR5WMVDANCNFSM4PH5O7GQ
.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664563375, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQYHKTX7FLXVUMAV7ZHAPLR5XBITANCNFSM4PH5O7GQ.
Thanks. I will read and share in this week's class.
I will pass along some questions that arise.
Dr. Richard Boulanger
On Mon, Jul 27, 2020 at 2:56 PM joachimheintz notifications@github.com wrote:
there is a short "Tuning Performance and Latency" paragraph in https://flossmanual.csound.com/quick-start/live-audio
and more extended: https://csound.com/docs/manual/UsingOptimizing.html
On 27/07/2020 20:27, csounder wrote:
We really do need clearer advice (somewhere/everywhere) about how to get the best real-time performance out of Csound -B, -b, sr, kr, ksmps
- there are tips here, and tips there, and advice that applies to ALSA that is different for PortAudio or CoreAudio, or the BELA or RaspberryPi or WebAudio on Crome or and iPhone or..
There has also been some great advice offered in the mailing list too.
- I am not sure that there is "one" place to send a beginner or even to go myself when I am running Csound on another platform like the Bela or Pi.
I have probably missed it and there is probably a nice section already in FLOSS or in the Manual.
- there are some excellent notes in the manual and in CsoundQt popup, but is there more - I think that there might be.
Maybe we could get some tips from Csounders with the most experience "playing" live on this or that platform/driver/OS?
Dr. Richard Boulanger
Professor of Electronic Production and Design
Berklee College of Music
Professional Writing and Technology Division
skype: radiobaton
facebook: https://www.facebook.com/richard.boulanger.58
about: http://www.boulangerlabs.com/#about
about: http://www.csounds.com/community/developers/dr-richard-boulanger/
music:
http://www.csounds.com/community/developers/dr-richard-boulanger/dr-richard-boulanger-music/
Boulanger Labs - http://boulangerlabs.com
The Csound Book - http://mitpress.mit.edu/books/csound-book
The Audio Programming Book - http://mitpress.mit.edu/books/audio-programming-book
On Mon, Jul 27, 2020 at 12:56 PM joachimheintz <notifications@github.com
wrote:
there is no need that kr must be an integer. but if ksmps is a power of 2, there are advantages in performance, because of duplex audio. and jack, for instance, requires ksmps to be a power of 2 (at least on my system).
audio applications like max, pd etc only have the choice to set the audio vector size / ksmps / blick size to power of 2. it should be special case in csound if to set not to a power of 2, in my opinion.
On 27/07/2020 17:31, tgrey1 wrote:
... and set ksmps to a power of 2, perhaps 32 as standard ...
But the manual states here: https://csound.com/docs/manual/ksmps.html "ksmps = (optional) -- set the number of samples in a control period. This value must equal sr/kr. The default value is 10."
And also: "Beginning with Csound version 3.46, either ksmps may be omitted. Csound will attempt to calculate the omitted value from the specified sr and krvalues, but it should evaluate to an integer."
44100/32=1378.125
Am I missing something, or is 10 compatible with /everything/, whereas power of two numbers would only be compatible with 48000 and 96000?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub <https://github.com/csound/manual/issues/213#issuecomment-664467155 , or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AAQYHKXCA5TE6GSBRVOA4FDR5WMVDANCNFSM4PH5O7GQ
.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub
.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/csound/manual/issues/213#issuecomment-664563375, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAQYHKTX7FLXVUMAV7ZHAPLR5XBITANCNFSM4PH5O7GQ .
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL2Nzb3VuZC9tYW51YWwvaXNzdWVzLzIxMyNpc3N1ZWNvbW1lbnQtNjY0NTc3NjQ2&e=cmJvdWxhbmdlckBiZXJrbGVlLmVkdQ==&t=alhkN3NNQ2hxL2Y5cGI4SjJMS0Y0U3B5dU54VDAxaFlOcno3bWRWN2I1dz0=&h=3d7774db69ae48948a94febfb603d823, or unsubscribe https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQUxXWUZWQUpST1lUQ1ZYUUFBWlpTTFI1WEVXTEFOQ05GU000UEg1TzdHUQ==&e=cmJvdWxhbmdlckBiZXJrbGVlLmVkdQ==&t=TUxhN2VtNXZxVThQT1ZzR2FKRG5na2tkSC9kUnNWbXVUd1d6T1VDWW1Ddz0=&h=3d7774db69ae48948a94febfb603d823 .
Yes, thanks everyone... looks like I also have some reading to do. Today I learned that I have apparently misunderstood ksmps since it's very introduction.
Sorry for the confusion there :)
Kevin made the list:
wow.
it will be nice for the headers to be consistent.
- Dr.B
On Fri, Sep 17, 2021 at 1:55 AM Menno Knevel @.***> wrote:
the list:
Files with "kr=": FLxyin-2.csd scogen.csd vcopy.csd vmult.csd vtablewa.csd vtablewk.csd Files with "kr =": 0dbfs-1.csd FLbox.csd FLbutton.csd FLcount.csd FLjoy.csd FLknob-2.csd FLknob.csd FLpanel.csd FLroller.csd FLscroll.csd FLsetVal.csd FLsetcolor.csd FLslidBnk.csd FLslider-2.csd FLslider.csd FLtabs.csd FLtext.csd FLvalue.csd FLvslidBnk.csd active.csd active_k.csd bbcutm.csd bformenc.csd biquad-2.csd biquad.csd biquada.csd birnd.csd cigoto.csd ckgoto.csd clockoff.csd clockon.csd cosh.csd cosinv.csd cps2pch.csd cps2pch_19et.csd cps2pch_ftable.csd cpstun.csd cpstuni.csd cpsxpch.csd cpsxpch_105et.csd cpsxpch_pierce.csd dconv.csd define.csd define_args.csd delay1.csd divz.csd dumpk.csd endin.csd equal.csd event.csd event_named.csd expseg.csd expsega.csd expsegb.csd expsegba.csd filebit.csd flashtxt.csd fout_poly.csd fprintks.csd fprints.csd frac.csd ftcps.csd ftsave.csd gen01computed.csd gen09square.csd genwave.csd goto.csd granule.csd greaterequal.csd greaterthan.csd hilbert_barberpole.csd hrtfer.csd hrtfmove.csd hrtfmove2.csd ifthen.csd igoto.csd ihold.csd include.csd instr.csd interp.csd kgoto.csd kr.csd locsend_quad.csd locsig_stereo.csd log.csd log2.csd log10.csd logbtwo.csd lorenz.csd loscilx.csd lowpass2.csd lpf18.csd madsr.csd mdelay.csd median.csd mediank.csd midion_scale.csd midion_simple.csd mode.csd moscil.csd mpulse.csd nestedap.csd noteondur.csd noteondur2.csd nreverb.csd nreverb_ftable.csd nstance.csd octcps.csd octmidi.csd octmidib.csd octpch.csd oscilikt.csd osciliktp.csd oscilikts.csd outkpc.csd outkpc_fltk.csd p.csd pchmidi.csd pchmidib.csd pchoct.csd peak.csd pgmassign.csd pgmassign_ignore.csd phaser1.csd phaser2.csd phasorbnk.csd pinkish.csd planet.csd poscil3-file.csd prealloc.csd printk.csd printks.csd printks2.csd prints.csd ptable.csd pvsbin.csd pvsdisp.csd pvsfwrite.csd r.csd randomh.csd randomi.csd readclock.csd readk.csd reinit.csd repluck-advanced.csd resonr.csd resonz.csd rnd.csd rnd31.csd rnd31_krate.csd rnd31_seed7.csd rnd31_time.csd schedkwhen.csd schedule.csd setctrl.csd shaker.csd sinh.csd sininv.csd spsend_quad.csd spsend_stereo.csd statvar.csd subinstr.csd subinstr_named.csd svfilter.csd system.csd table.csd tan.csd tanh.csd taninv.csd taninv2.csd tempest.csd tempo.csd tempoval.csd timeinstk.csd timek.csd times.csd turnoff.csd until.csd urandom.csd urandom_krate.csd vco.csd wgpluck.csd wgpluck2.csd wgpluck_brighter.csd wguide1.csd while.csd wterrain.csd zamod.csd zar.csd zarg.csd zaw.csd zawm.csd zir.csd ziw.csd ziwm.csd zkcl.csd zkmod.csd zkr.csd zkw.csd zkwm.csd
and possibly:
kr.csd repluck-advanced.csd rnd.csd scogen.csd
(This will be fun)
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL2Nzb3VuZC9tYW51YWwvaXNzdWVzLzIxMyNpc3N1ZWNvbW1lbnQtOTIxNTE5NzU3&i=NWYxNzBkMDNiNTVmZGEwZmIyNjczYmRm&t=UjlVS0dWMDVPbjZJVlVIL05TZmwrMXJKUWVUVE5rNEtheDhKYTc1cm5Vaz0=&h=b5e6221205a34c6283ec60527a90228b, or unsubscribe https://us-west-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQUxXWUZURTZHRUpWQzNLWkZVNTZLTFVDTEozVEFOQ05GU000UEg1TzdHUQ==&i=NWYxNzBkMDNiNTVmZGEwZmIyNjczYmRm&t=UFhUMWlTRGlCT00yRFdzWXNDY0dtQkJoWkZRWXdtcVdQei9KS1czaURRUT0=&h=b5e6221205a34c6283ec60527a90228b .
This would be quite an undertaking... so I don't mind volunteering myself to do it over some time, I just want to make sure it's something that should be attempted first.
According to https://csound.com/docs/manual/kr.html "Beginning with Csound version 3.46, kr can be omitted. Csound will use the default values, or calculate kr from defined ksmps and sr. It is usually better to just specify ksmps and sr and let csound calculate kr."
But many examples have both. This quick grep lets a few false-positives slip through, but for the most part is a good way to get a rough count of files including both:
I guess the biggest problem is making sure I can know and recognize when it's best NOT to default to ksmps.
Thoughts?