Re: [Csnd-dev] [EXTERNAL] Re: [Csnd-dev] language cleanup...

Victor Lazzarini <[email protected]> Tue, 4 Nov 2025 15:11:36 +0000
Newsgroups gmane.comp.audio.csound.devel
Message-ID <[email protected]>
There is no real attemot renaming, we're only adding aliases and deprecating old names. We can't break backwards compatibility.

I think the "2" opcodes can be overloaded if the input or output parameters are of different types that can be disambiguated. Some can and some can't.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 4 Nov 2025, at 14:44, Eduardo Moguillansky <[email protected]> wrote:


*Warning*

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

Many xxx2 or xxx3 have really different behaviours.

turnoff, turnoff2, turnoff3: these could be unified to turnoff, deprecating the argument to the original turnoff and adding a flag to turnoff2 to unschedule future events
follow, follow2: follow2 is a different opcode, using a different algorithm. Maybe it could be renamed to ampfollow or something similar
metro2: is a different opcode than metro, maybe it could also be renamed
changed2: this is the correct version of changed, which itself should be deprecated. But renaming to changed would break things

Each of these changes should probably be a PR of its own.



On Tue, Nov 4, 2025 at 1:23 PM Rory Walsh <[email protected]<mailto:[email protected]>> wrote:
Below is a list of opcode names that are not strictly flatten case. I propose the following:

- the ATS, K35, OSC one remain.
- the zdf opcodes join the aforementioned ones can also use uppercase, e.g, ZDF1pole
- all other opcodes become flattened case, e.g. arduinoreadf, serialwritei, turnoff2_i

Does this sound Ok? If so I will start creating aliases. I can also make a PR for the manual so we can reduce people's exposure to the old inconsistencies.


ATSadd

ATSaddnz

ATSbufread

ATScross

ATSinfo

ATSinterpread

ATSpartialtap

ATSread

ATSreadnz

ATSsinnoi

K35_hpf

K35_lpf

MixerClear

MixerGetLevel

MixerReceive

MixerSend

MixerSetLevel

MixerSetLevel_i

OSCbundle

OSCcount

OSCinit

OSCinitM

OSClisten

OSCraw

OSCsend

OSCsend_lo

S

arduinoRead

arduinoReadF

arduinoStart

arduinoStop

chn_S

chn_a

chn_k

cntCreate

cntCycles

cntDelete

cntDelete_i

cntRead

cntReset

cntState

count_i

diode_ladder

event_i

genarray_i

loop_ge

loop_gt

loop_le

loop_lt

maparray_i

max_k

midiout_i

nchnls_hw

print_type

printf_i

sc_lag

sc_lagud

sc_phasor

sc_trig

scoreline_i

serialBegin

serialEnd

serialFlush

serialPrint

serialRead

serialWrite

serialWrite_i

slicearray_i

sliderKawai

system_i

tab_i

tabw_i

trigExpseg

trigLinseg

trim_i

turnoff2_i

vadd_i

vaddv_i

vcopy_i

vdel_k

vdivv_i

vexp_i

vexpv_i

vmult_i

vmultv_i

vpow_i

vpowv_i

vsubv_i

zdf_1pole

zdf_1pole_mode

zdf_2pole

zdf_2pole_mode

zdf_ladder

On Sun, 2 Nov 2025 at 11:29, joachim heintz <[email protected]<mailto:[email protected]>> wrote:
plus one for what you say about tipping the hat ... =)

On 31/10/2025 23:53, Rory Walsh wrote:
> We also have shedkwhen and ftsamplebank, which are also ok, I think. I
> think if we introduce snake case, or any other convention, we need to go
> all in. Snake case should add an underscore between each word. Following
> such a scheme would lead to hundreds of opcodes being renamed, e.g.,
> ft_len, butter_lp, moog_ladder, pd_half, etc. I'm not against it, but I
> think it must be a complete buy in. Otherwise we end up with a slightly
> better system, but one that retains some strange inconsistencies.
>
> I have to tip my hat to the core developers at this stage. This
> conversation wouldn't be happening if they hadn't spent so much time
> cleaning up the core system and updating/rewriting the parser. It's a
> great place we are in now! ☺️
>
> On Fri 31 Oct 2025, 17:17 joachim heintz, <[email protected]<mailto:[email protected]>
> <mailto:[email protected]<mailto:[email protected]>>> wrote:
>
>     i totally agree with rory about the importance of such a cleanup.
>     as to lowercase or snake_case, i'd say:
>     - in most cases we can keep lowercase
>     - if the readability is hurted, underscores can be added.
>
>     for instance: ampdb, mtof, bformenc, butbp, pvsynth are good.
>     osclisten even is ok, i think.
>
>     just to note that for the german keyboard the underscore is not as
>     elegant as for the english one.
>
>     On 31/10/2025 16:46, Steven Yi wrote:
>      > I generally prefer snake_case myself these days for Csound coding.
>      > Perhaps it's because my brain switches somewhat to C conventions when
>      > I get to time with Csound. Some of the coding in Csound for
>     snake_case
>      > has to do with the lack of namespaces and import system, so families
>      > of code are denoted with things like zdf_ladder, zdf_2pole, etc.
>     which
>      > might be implemented as zdf::ladder or zdf::2pole in other languages.
>      >
>      > On Fri, Oct 31, 2025 at 9:36 AM Rory Walsh <[email protected]<mailto:[email protected]>
>     <mailto:[email protected]<mailto:[email protected]>>> wrote:
>      >>
>      >> I agree that they are more readable, but I think switching to
>     lowerCamelCase or snake_case would be a huge undertaking. I'm
>     interested to hear what others think.
>      >>
>      >> On Fri, 31 Oct 2025 at 11:30, Dave Seidel <[email protected]<mailto:[email protected]>
>     <mailto:[email protected]<mailto:[email protected]>>> wrote:
>      >>>
>      >>> As a user, more consistency in naming would be very nice. I
>     don't have a strong preference for any particular form, having had
>     to adapt to all of them at one time or another over the course of my
>     erstwhile career, but I guess I have somewhat of a reference for
>     either lowerCamelCase or snake_case, as both offer better
>     readability (IMO) than flatcase.
>      >>>
>      >>> - Dave
>      >>>
>      >>> On Fri, Oct 31, 2025 at 5:47 AM Rory Walsh <[email protected]<mailto:[email protected]>
>     <mailto:[email protected]<mailto:[email protected]>>> wrote:
>      >>>>
>      >>>> It would be nice to iron out some inconsistencies in the
>     language before releasing Csound 7. One of these is the scattershot
>     approach to opcode names. Right now we have lowerCamelCase,
>     snake_case, snake+camel case, and the traditional flatcase. It would
>     be nice to choose one, create aliases for all existing opcodes (if
>     this is doable that is), and mark the others as deprecated.
>      >>>>
>      >>>> Another thing that came up yesterday in a different discussion
>     is the number of version 2 opcodes, diskin2, flooper2, etc. We can
>     now easily overload opcodes, which gives us the option of removing
>     the version 2 variants and overloading the originals instead,
>     although we’d need to audit the opcodes first to see if they all
>     have different parameter signatures.
>      >>>>
>      >>>> Something else that was mentioned was the use of uppercase for
>     booleans. bi, bk, booli, boolk, etc., all seem like better fits.
>     Another long-standing inconsistency is the uppercase S for strings.
>     If I’m not mistaken, we could finally change this to :s and keep it
>     in line with other variable types.
>      >>>>
>      >>>> Consistency has a real impact on usability and teaching,
>     making code easier to read and maintain. I think it would be great
>     to try to address this now. I don't mind doing most of the donkey
>     work. We just need to come to some kind of agreement.
>      >>>>
>      >>>> Rory.
>      >>>>
>      >>>>
>      >>>> p.s. I'm posting this to the dev-list, but I think this is
>     something the end-users might also like to have some input on...
>