Hello Alexandre, Fred Jan, pd list,
It makes me sad to see your earlier productive collaboration on
Cyclone stagnating with this dispute about the purpose. Between 2005 -
2015 the purpose of Cyclone has been determined more by what it was
than by what it should be, by lack of human resources [1]. With the
recent increased effort of testing, fixing and innovation there's an
opportunity to redefine intentions and ambitions. Let's try to figure
out a generic approach where backward compatibility doesn't conflict
with MaxMSP compatibility and innovation, so anyone can contribute to
the project according to their skill, interest and ambition.
My proposal would be to sacrifice forward compatibility of older
versions if needed. Classes which pose the compatibility dilemma may
be made to operate in multiple modes. Sometimes this can be achieved
by message, and when the number or type of inlets / outlets are
concerned (like average~) it can be achieved with creation arguments.
Now you have to decide which is the default behavior. With decades
worth of Pd patches in mind it seems logical to keep the original
Cyclone behavior as default and offer the MaxMSP compatible mode as an
alternative. The help patch demonstrates how to use the newly
developed mode. A class setup message can advertise it too.
There's always this caveat with introducing new message selectors and
creation arguments: old versions of the class don't support them so
you could still end up with broken patches. But this is less
problematic than backward incompatibility. The class help patch must
give clear information about the version where new functionality was
introduced, and anyone who applies it in a distributed Pd patch can
inform the user about version requirements. No spurious malfunctions,
but at worst a clear hint to upgrade.
You may wonder what is my own involvement with Cyclone. At the moment,
none apart from following the discussion. Earlier this year I spent a
few months developing Makefile.pdlibbuilder as a generic build system
for Pd libs. Replacing the indecipherable build system of Cyclone was
the ultimate test case for this work, and it helped speed up Fred
Jan's work on the library. I became aware how big a project it really
is. It could use the love and care of more people besides Alexandre
and Fred Jan.
Katja
[1].
Cyclone (part of miXed) was unfortunately abandoned by it's original
author Krzysztof Czaja after 2005. The ambitions with this wonderful
project were then in practice scaled down to fixing bugs in the alpha
versions, as illustrated by the commit history of it's SVN repository
http://sourceforge.net/p/pure-data/svn/HEAD/tree/trunk/externals/miXed/cyclone/.
On Mon, Dec 21, 2015 at 6:26 PM, Alexandre Torres Porres
<porres@gmail.com> wrote:
>
> 2015-12-15 16:22 GMT-02:00 Fred Jan Kraan <fjkraan@xs4all.nl>:
>>
>> Hi Alexandre,
>>>>
>>>> Compatibility is limited to a very old version of Max/MSP.
>>>
>>>
>>> That really confused me, as a Max 7 user...
>>
>>
>> Why? If any version of Max/MSP looks like Pd, it is 4.6 (or maybe earlier
>> versions, but I don't have access to those...).
>
>
> Because it is not a matter on how it "looks", and Max 7 is still the same
> patching environment, it's not like it changed and lost compatibility, hence
> I'm using both Max 7 and cyclone and I'm happy about it.
>
> It's not like Max 7 killed and broke backwards compatibilty with earlier
> versions and patches. So we don't have to consider it as having to be tied
> to 4.6..
>
> Perhaps you mean we'll never be able to come close to what Max 7 is now in
> general. But I don't think that was ever possible and the purpose of cyclone
> was not to make a clone of the Max/MSP Software.
>
> I think this is a very serious and sensitive topic, as the purpose of
> cyclone is not being really considered in your point of view, and this might
> interferes with the purpose, or even kill it...
>
>>>>
>>>> For me this makes backward compatibility more important
>>>> than with an obsolete Max/MSP version.
>
>
> If I got it right, you're basically saying:
>
> - Cyclone should be a copy of an outdated and obsolete Max/MSP version and
> we shouldn't care on keeping up with improvements in Max because it is
> impossible and only really likely or reasonably possible within the
> limitations of max/msp 4.6 as a software.
>
> - Not caring about the developments in earlier versions of Max, we're stuck
> to 4.6, but since it is an obsolete version of Max, we shouldn't care about
> being faithful to it either, or Max for that matter.
>
> Thus, we'd basically lose the idea of having a library of objects compatible
> to Max/Msp objects, and we also do not care of the original purpose of it.
> Well, that is not a good take on my opinion.
>
> I agree Cyclone is now (and has always been because of its stage of
> development) a copy/clone of an outdated and obsolete Max/MSP version. That
> is why I think it's good we'd try to keep it up to date with and care on
> keeping up with improvements in Max/Msp objects.
>
>
>>> About [average~], the thing is that was wrong to begin with, it couldn't
>>> load max patches in the first place, it should have been signal all
>>> along.
>>
>>
>> I agree average~ was wrong all along. But it has been wrong wrong for
>> about twelve years. I do not want to invalidate twelve years of patches.
>> If you want to copy a Max patch with average~ in Pd, you could use another
>> object or an abstraction. PureData is supposed to be a tool to help
>> understand DSP technique and make creative sounds. Not to be able to blindly
>> copy Max/MSP patches.
>
>
> Again... that WAS the purpose of Cyclone in Pd... to be able to implement
> MAx/Msp objects in Pd - and that seems to be completely unregarded by your
> development effort in Cyclone.
>
> Btw, let me post what the purpose of cyclone is still described as in here:
> https://puredata.info/downloads/cyclone
>
> I'll bring some exerpts and highlight a few key words.
>
> Cyclone: a library of clones of Max/MSP 4.5 objects
>
> "a library of PureData classes, bringing some level of compatibility between
> Max/MSP and Pd environments (...) In its current form, cyclone is mainly for
> people using both Max and Pd, and thus wanting to develop cross-platform
> patches.
> Cyclone also comes handy, somewhat, in the task of importing Max/MSP 4.x
> patches into Pd. Do not expect miracles, though, it is usually not an easy
> task."
>
> The project description is outdated, see that importing max patches to Pd
> was not a main goal then, and now we could basically forget about it - but
> the main point still remains, which is being, first of all; 1) a library of
> clones of Max/MSP objects; 2) bringing some level of compatibility between
> the platforms; 3) allowing cross platform patches.
>
>> Indeed, for me backward compatibility more important than Max/MSP
>> compatibility.
>
>
> well, we have seemed to open this discussion because of that problem with
> the average~ object... it's not really about the object though, it's really
> about how you are interfering with the purpose of cyclone, and the action
> you're taking is just a reflect on it.
>
> This is a sensitive issue because you're just killing the purpose of cyclone
> to whatever you feel like, which is not clear yet by the way, and that is,
> in my opinion, a Fork - you're creating a Cyclone Fork...
>
> Please be careful with that, and lets discuss if you really want to do that,
> and perhaps this list should raise opinions about this. As a cyclone user
> (perhaps the only one so far sharing an opinion), I feel really badly about
> this.
>
> But the point I wanna raise is that You do not need to change the purpose of
> Cyclone. There's nothing really that should encourage you to hop onboard and
> change the course like that. Or is it? We've just touched this discussion
> because of a silly object, and I suggested something you could do to avoid
> breaking the purpose of cyclone and still maintaining the backwards
> compatibility thing if that's important (just create a new/second right
> signal outlet that is faithful to the original object).
>
> If you do that, we don't need to discuss how the purpose is changing, and
> there doesn't seem to be any reason why it should.
>
>>
>> Another reason is the limited time I can spend on maintaining cyclone. The
>> 4.6 functionality is a useful, but somewhat arbitrary guiding principle. And
>> as you observed, most of the missing objects are not that essential...
>
>
> I get the idea that the developers may not keep up with latest developments
> in Max/MSP, but that is not a good reason that it Should Not. In fact, it
> asks for other people to join in and help with the project and just map what
> has been done and still could be essentially done. I've also raised and
> reported basically all the last major bugs...
>
> I have actually been doing that throughly throughout this year in an
> extensive research of my own. I'm willing to collaborate. I've mapped a lot
> so far, and I ask if my help could be accepted in this project.
>
> It's not like I have tons of things to do to make cyclone up to the stage of
> Max 7.1 - it's just a not that big list of features that have been added to
> the objects that I find most relevant and important - average~ being one of
> them, since no other object in the Pd world seems to do what it does (it
> behaves as very neat and nice average filter).
>
>
>> But enough typing opinions for now, I prefer to do some improvement on
>> cyclone objects tonight :-).
>
>
> Well, hope you've made some cool progress, I'm really happy you came up to
> help, this is a project that needed attention, but I also think these
> opinions are important and I even hoped we had discussed them before. I hope
> others in the list could share their thoughts. I'm really concerned here on
> the direction this is taking. I hope we can still maintain the main purpose
> of cyclone.
>
> cheers
>
> _______________________________________________
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list