Yippee! Today i finished to clean the code. Contributions welcomed.
-
Spaghettis: Yet another fork of Pure Data
-
Hi,
I couldn't find any description nor video nor screenshot presenting the idea behind Spaghettis. Is there any way of getting information other than a "compile and test by your own" scheme?
thanx,Nau
-
The idea behind Spaghettis is to clean the code of Pure Data in order to improve it. The only material available is on the GitHub repository. It is a one-man project, and sadly i don't have time for the documentation. It is work-in-progress and such everything could change at any time. I'm looking for adventurous people to contribute and experiment. Of course in the future gorgeous videos and helpful wikis will be essential.
-
@Nicolas-Danet said:
"The idea behind Spaghettis" is to clean the code of Pure Data in order to improve it.
This is a noble task . Have you considered sharing those improvments to Pd, Purr Data or LibPd with merge requests? Why not contributing to those projects instead? Not criticising, just asking
-
I have contributed few times to Pure Data when i found a naughty bug. I 'll do it again in the future. But the changes i did are so huge that i'm sure that current mainteners would NOT have accepted them. I spent three years to refactor Pure Data. I'll spend probably many time again to improve it (and make it stable). Trust me, i seriously considered first to contribute only. But that < https://github.com/pure-data/pure-data/blob/628a8d3464a45f25ea3bbd4fbd76655f28ce825e/src/g_editor.c#L114 > kind of things convinced me that Pure Data can NOT be improved without first a serious clean. Maybe i'm wrong. Maybe you think that what i do is worst. It doesn't matter, you are probably right. But if you share my POV, welcome.
-
But that < https://github.com/pure-data/pure-data/blob/master/src/g_editor.c#L114 > kind of things convinced me that Pure Data can NOT be improved whitout first a serious clean.
What did you change in that example as part of the cleaning-- the comment, or the behavior of garrays and scalars?
-
In that cases i changed the code (thus the comment), but not the behavior (as far as possible) < https://en.wikipedia.org/wiki/Code_refactoring >. Parts of Pure Data code are hard to understand even for the mainteners < https://www.mail-archive.com/pd-dev@lists.iem.at/msg01781.html > and < https://lists.puredata.info/pipermail/pd-dev/2018-11/021803.html >. This is what i suggested by enlightening that comment (and nothing more).
-
I see this:
if (gobj_isScalar (x) && glist_isArray (owner)) { return 1; }
But I don't understand the function name "glist_isArray". Shouldn't that be "glist_isGraph" or "glist_isGOP"?
-
An array is a special GOP with one scalar inside. That function tests if it is that special glist.
-
I have a problem installing this fork
I'm on raspbian stretch (raspberry pi 3). I'm not a developer so I don't a have a clue of what is happening.
-
@JackPD My code cannot define the data model of your platform < https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models >. For now i have only tested it on Ubuntu 18.04 and macOS Mojave. I'm afraid that the Raspberry Pi is a platform that can not be supported without more investigations. I need to buy one first!
-
Don't worry Nicolas, I understand your effort, if I could help I would but I don't have strong dev knowledge for that kind of things. I can help you in the graphic design part, iconography, etc... Feel free to contact me!
-
@JackPD It should compile (freshly) on Raspberry Pi (at least it works on my RPI4 with Raspbian Buster).
-
Hi Nicolas.
I'm trying to compile from Arch Linux.
I have tk8.6 installed (tk-8.6.10-1), but I get the following error:
buildLinux sh: tk8.6 package requiredAny idea?
-
Probably that the way my script checks for dependencies (it uses dpkg-query) doesn't work for Arch Linux. You could just remove them and test. Spaghettis requires Tcl/Tk 8.6, JACK for audio, and ALSA for MIDI. Note that nothing is installed outside of the Spaghettis directory.
-
I have to read more before I ask. I overlooked that you were using dpkg-query, but I could have imagined it because in the documentation you clearly say that the compilation tests have been done in Ubuntu.
I removed that part of the script and it compiled without problems.
But... I can't get it to sound and I have some problems with the keyboard. I can't do Ctrl+ 1, for example.
I think I'll try it better on a virtual machine or a mac.Thanks Nicolas.
-
On GNU/Linux Spaghettis uses JACK as backend, but contrary to Pd vanilla it is not connected by default (i use a permanent patchbay with qjackctl on my laptop). Thanks for the feedback.
-
@Nicolas-Danet said:
On GNU/Linux Spaghettis uses JACK as backend, but contrary to Pd vanilla it is not connected by default (i use a permanent patchbay with qjackctl on my laptop).
That was, as I always start jack from the terminal I hadn't noticed.
Now it works and I have sound. -
Have you tried to create object (ctrl + 1) with the shift key also? It is always laborious to get it works on all platforms < https://github.com/Spaghettis/Spaghettis/blob/87c0639c502b461af46084ff605030f75c006737/tcl/ui_bind.tcl#L94 >. And could you tell me what you get for $OSTYPE value in a terminal/bash?
echo $OSTYPE
-
@Nicolas-Danet said:
Have you tried to create object (ctrl + 1) with the shift key also? It is always laborious to get it works on all platforms < https://github.com/Spaghettis/Spaghettis/blob/master/tcl/ui_bind.tcl#L94
I only get four objects using Shift+Control.
Shift+Control+1 = Dial
Shift+Control+2 = Atom
Shift+Control+6 = Object
Shift+Control+8 = Comment. And could you tell me what you get for $OSTYPE value in a terminal/bash?
echo $OSTYPE
linux-gnu
-
QWERTY keyboard! Does it works if you add following code?
event add <<NewObject>> <$mod-Key-1> event add <<NewMessage>> <$mod-Key-2> event add <<NewAtom>> <$mod-Key-3> event add <<NewSymbol>> <$mod-Key-4> event add <<NewComment>> <$mod-Key-5> event add <<NewBang>> <$mod-Key-6> event add <<NewToggle>> <$mod-Key-7> event add <<NewDial>> <$mod-Key-8> event add <<NewArray>> <$mod-Key-9>