slightly OT - github for max abstractions?

    MaxMSP

    Wetterberg's icon
    Wetterberg's icon
    Wetterberg
    Dec 05 2014 | 12:00 am
    hey,
    so I'm readying a final package of my clocking system, and I'm thinking github is the way to go... but I'm a total dweeb at that sort of stuff.
    any max+github present? What's the best approach?

    • vichug's icon
      vichug's icon
      vichug
      Dec 05 2014 | 3:29 pm
      hey soundstroll is on github :) There is a workflow and some basic concepts to understand when working on github. There is a lot of starting guide on the webz. The basic concept is as follow : your code is inside a "git repository" which is mirrorred on your machine (local repository) and online (online repository). A repository is a standard folder structure with some hidden git config text files inside each subfolder, which keep track of everything you change. When you make a change to your code (in the local repos), you need to "commit" it locally in order for git to update the logs. The log updating is automatic, which is nice, you just need to ask for the update. To do all those things required by the git system, you can either use a command-line git tool (it's working allright) or there are a lot of GUI available to do that (i don't know them). Once everything is commited, you can "push" your local repository to the online one ; which means mirroring the content of the local folder into the online one. Then there are the collaborating tools like forks (copying an online repository into your account), pull request (asking for the changes you make to be mirrored in the main project) and a lot of other things i don't grasp. It is very useful if you have a project with several people involved ; but i guess it's still useful for humbler projects ; it's a neat interface. There are other more serious max things on github : HOA, package downloader, toolbox, jamoma, o.io.leap... The only drawback for max compared to an other coding language is that patchers will be displayed as text on the github site. I think there was a discussion once to know if it was possible to render it graphically on the site, as there is a tool that renders the graphic of a patch online. There are other site/tools like BitBucket or SourceForge with advantages and disadvantages. It's a bit beyond me to compare those though.
      Share
    • Wetterberg's icon
      Wetterberg's icon
      Wetterberg
      Dec 05 2014 | 4:59 pm
      thanks for the writeup, Vichug - especially from the viewpoint of a maxer.
      See, now I'm back to thinking that I just need some kind of version control... or perhaps not even that, maybe I can make do with the Tools system here on cycling74.com. Hmm. thanks again.
    • raskjaerbo's icon
      raskjaerbo's icon
      raskjaerbo
      Nov 22 2022 | 5:07 pm
      Hahah same issue here, now slightly in the future. Did you find a nice solution, @Wetterburger?
    • Roman Thilenius's icon
      Roman Thilenius's icon
      Roman Thilenius
      Nov 22 2022 | 5:23 pm
      you can upload anything you want to github, but why would you do it? arent there better places?
    • raskjaerbo's icon
      raskjaerbo's icon
      raskjaerbo
      Nov 22 2022 | 5:42 pm
      Do share your suggestions then :)
    • John Baylies's icon
      John Baylies's icon
      John Baylies
      Nov 22 2022 | 5:51 pm
      my favorite part about using max with git is that I can use `git reset` to easily undo any changes I made to individual files if I mess them up too much.
      There was also one time when I had to `git checkout` an old commit to copy code that I had deleted, back into the current version. If I had structured my project "properly" with a ton of abstractions then I could've done that entirely within git, instead of manually copy-pasting, but I haven't had to do this often enough to warrant refactoring the main patch into a bunch of abstractions.
      It's also nice to `git clone` directly to Max 8/Packages. Then when the package gets an update, you can simply `git pull`, instead of downloading, unzipping, and replacing.
    • Steve Meyer's icon
      Steve Meyer's icon
      Steve Meyer
      Nov 22 2022 | 7:52 pm
      I would add two suggestions to Roman's question about, Why git? First, using a git feature branch workflow is a really great way to try something out when you do not have 100% confidence that it will work out.
      For example, I have a big idiosyncratic sequencer. It's a big bespoke Max patch with lots of abstractions. I wanted to try swapping out the underlying timing/clock bits using gen. But this touches a lot of the abstractions. By starting this refactoring in a branch, it really eases the anxiety of getting back to last known good state for the entire project and not just a single file.
      Second, in terms of sharing a project, you can git tag... a release that will create a zip or tarball at a given snapshot.
    • raskjaerbo's icon
      raskjaerbo's icon
      raskjaerbo
      Nov 22 2022 | 8:24 pm
      Thanks for the comments, John and Steve. I can easily see this work out for me and my team developing a hardware delay for Daisy Seed in gen~. Tried to upload .maxpatch files to github a few years back but it wouldn't work. Seems like it does now - and the same over at GitLab. Would love to hear your experiences with this - best practices, do's and don't's :D
    • Bob's icon
      Bob's icon
      Bob
      Nov 22 2022 | 8:55 pm
      Interesting stuff. Thanks!
    • 👽R∆J∆ The Resident ∆lien👽's icon
      👽R∆J∆ The Resident ∆lien👽's icon
      you can upload anything you want to github, but why would you do it?
      one of my msp externals is uploaded to github, then, just in case the apocalypse happens, frozen in their arctic vault so that the aliens who come here thousands of years from now to discover and explore our dead and deserted planet can fire up my looper external in their version of Max/MSP 😜
      "This was indeed an advanced civilization they had here on Earth, just listen: i can change loop points while it's playing without clicks or pops, and that interpolation makes these speed-changes sound so smooth, smooth like butta, smooth like when we didn't even have to use any lube to teleport this saucer straight through Uranus! 🛸 💫 (🤭) Surely, this 'raja' being was a hero among the humans, celebrated across the globe for his great service to humanity in the form of max patchy awesomeness, let's disintegrate the rest of this useless arctic vault and steal away with raja's beautiful code" -A Bunch Of Aliens 👽 👾
    • raskjaerbo's icon
      raskjaerbo's icon
      raskjaerbo
      Nov 23 2022 | 9:43 am
      The Norwegian RNBO Bank 😁 For future rainy days.
    • raskjaerbo's icon
      raskjaerbo's icon
      raskjaerbo
      Nov 23 2022 | 9:46 am
      I'd like to check out your looper pre-apocalypse
    • 👽R∆J∆ The Resident ∆lien👽's icon
      👽R∆J∆ The Resident ∆lien👽's icon
      Here ya go, the arctic vaulted one is the older ‘rezer~’ object, you can click the Arctic Vault icon near the bottom left and it’ll take you straight to it, but i have a newer object there called ‘rez~’ which i’m working on updating now which is actually better: https://github.com/RajaRez (so it’s actually kinda funny, the aliens might not find my best/more-current work, but at least it’ll still be clicks-and-pops-free :D)
      if you’re really interested in a looper external like that, plus the open-source code, see my rez~ thread here, i’ll probably update it around march of next year.
    • Wetterberg's icon
      Wetterberg's icon
      Wetterberg
      Nov 24 2022 | 6:23 pm
      And there it is; two of my idols. I've been meaning to praise your recent work, R∆J∆.
    • Wetterberg's icon
      Wetterberg's icon
      Wetterberg
      Nov 24 2022 | 6:23 pm
      just realised this is an 8 year old thread, damn...