charlesneimog / py4pd

py4pd allows write PureData objects using Python. The main goal is to allow easy IA, Scores, Graphics, and bring to Pd data types as array, np.arrays, list, dict, and others.
https://charlesneimog.github.io/py4pd/
GNU General Public License v3.0
14 stars 2 forks source link

neoscore vs INScore #84

Closed enh3 closed 7 months ago

enh3 commented 7 months ago

Hi Charles,

I've just been a deep dive into options for something like the bach paradigm in Max but for puredata, and I came across your project. Another thing I came across was this project using INScore. Your idea seems really promising, and neoscore seems to have very similar goals to INScore, though for the moment it seems that INScore is a more mature project. Just for pure curiosity, have you considered basing your project on INScore but decided that neoscore was a better fit? Or have you not come across INScore?

At any rate, this is a very intriguing project that I will certainly be following. Having access to CAC resources in a real-time environment like the bach library has accomplished opens up so many possibilities for interactive algorithmic composition, as well as pedagogical tools and music games. Bach is great, but it would be beautiful to have this in an open source version. puredata being Max's cousin, it seems like the logical candidate.

Just as one other thought, have you considered whether bach, seeing as it's open source, could be ported to puredata? I know this would be a huge task, and Max and puredata have a lot of differences, but it seems maybe less intimidating than building everything from scratch. Maybe one day we could have either bach, neoscore, or INScore for notation visualisation, and then use something like this to integrate our beloved common lisp ecosystem projects from the PW legacy. This is all just dreaming, but I'm trying to imagine ways that robust CAC could come to pd. Let me know what you think.

Best, Kjel

charlesneimog commented 7 months ago

Hi Kjel,

I'm glad you found py4pd-score searching for bach and Pd.

Yes, neoscore is better for me, mainly because in written in Python and it is very easy to install in all OSs, also with py4pd-score I just want to see Partial Tracking analysis, and someday I will implement the tree rhythm syntax of OpenMusic. So, for now, I am not using the interactive part of Neoscore. I am not sure if you installed py4pd-score, but it is a kind of OpenMusic library and is some kind of library of another object called py4pd (Docs). Also, InScore is big, so it is hard to understand (at least for me).

Obs: py4pd is something like Bach but it is more extensible, mainly because you can use Python to write your own PureData Objects, something like the OM-Libraries ecosystem. Read a little of the Docs, I believe you will understand, mainly the Python Use section.


About the second and third paragraph, bring the CAC to PureData is the exactly aim of py4pd (not py4pd-score that is just a Library to use with py4pd).

There is some problems to translate the Bach Library for PureData. First, as you point, it is a big work. Second, because its size, for me don't worst translate some of the Bach things that I don't use in my compositions (I am more a composer than I programmer). Another big problem with Bach is the C language. C language is amazing and fast but is very hard to program and debug, it is not the language for composers.

Let me give you an example, now I am interested to use draws to make music, something like the UPIC of Xenakis. With py4pd you can make this very easy (see py4pd-upic, it has just 300 lines of code, in C this would be a BIG work.

So is that, I also love Bach and miss something like Bach in PureData, py4pd will be something like Bach but separated into several Libraries.

EDIT: I saw that you work with OM, Python, and the om-cluster-rules, maybe you could use py4pd to bring om-cluster-rules for PureData.

charlesneimog commented 7 months ago

Obs.: @enh3 I will move this for py4pd, because it is a great topic to discuss.