janet
scheme-for-max
janet | scheme-for-max | |
---|---|---|
85 | 34 | |
3,563 | 204 | |
1.6% | - | |
9.4 | 5.3 | |
8 days ago | 27 days ago | |
C | C | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
janet
-
Raku Programming Language
I first came across something like this in janet, which includes a PEG system in the standard library. It definitely changed how I think about text processing. Very much of the time what I find myself doing with regex is defining a grammar, but I didn't realize that. I wish more languages included the tools for it, it's a core operation of practical programming.
https://janet-lang.org
-
Rawdrawandroid – Build Android apps without any Java, in C and Make
...I of course would rather embed Janet [1], but I realize what is going to have an easier time gaining popularity %) Also, Lua has Löve [2] which could be immediately usable, among other things.
[1]: https://janet-lang.org/
[2]: https://www.love2d.org/
-
The Fennel Programming Language
I don't think it has absolutely all that, but janet might be close?
https://janet-lang.org/
- CIEL Is an Extended Lisp
-
How the Curse of Lisp impacts your business (even if you don't use Lisp)
> Would you write your own JSON parser, is it that easy in LISP?
I only dally with Lisp(s) but probably not, I'd reach for a library in quicklisp.
However, in Janet (https://janet-lang.org/) there's a PEG parser and I wrote a JSON parser for fun in 134 lines that passes most of the test suite by Nicolas Seriot.
So I'd say it's reasonably easy for a better-skilled programmer than I am.
-
Homoiconic Python
Only tangentially related, but for anyone interested in the idea of a simple, quick Python-like scripting Lisp, there are two Clojure-style languages to look at:
1) Hy (https://hylang.org/, compiles to Python bytecode, usually slower than Python but compatible with all Python libraries)
2) Janet (https://janet-lang.org/, very light Lua-style embeddable VM ~1 Mb, roughly twice as fast as Python for similar ops, very easy C interop)
-
Scriptable Operating Systems with Lua [pdf]
Seems like a perfect use-case for Janet. (https://janet-lang.org/) A fast minimal VM like Lua, but even more extensible than Lua by being a "Lisp" with macro and C extension capabilities. Not a true Lisp, it's very pragmatic and performance-oriented. But it keeps the good stuff.
-
Ask HN: A Lisp with Cargo/NPM like build system?
You might be looking for: https://janet-lang.org/
It comes with a build tool `jpm` which installs dependencies globally by default, but you can have it be installed in your project folder as well.
-
Babashka: Fast native Clojure scripting runtime
I like Clojure, but I never had any good opportunities to use it other than for a few small hobby projects. It is unfortunate that it is so huge with tons of dependencies and no simpler native implementation. I started looking at various LISPs and Schemes to find something lighter to use instead and ended up settling for Janet that I think is Clojure-like enough to be comfortable to use, but in a small native binary with no dependencies and can be embedded in other native programs. I am sure for big, real, projects that Clojure makes more sense, but for my hobby projects and scripts I do not think I will install it again. I am still happy for the things I learned from learning Clojure. It was a real eye-opener for an old OO-programmer.
https://janet-lang.org/
- Janet Language
scheme-for-max
- Music for Programming
- Learn How to Build Your Own Max for Live Devices
- MAX lessons
-
Ask HN: Most interesting tech you built for just yourself?
Mine is Scheme for Max, now on it's fourth open source release, but really written so I could make computer music how I want to. It's an extension to the popular Max/MSP visual music programming environment that embeds an s7 Scheme interpreter and provides a substantial API/FFI to Max. It allows you to script Max (and thus also Ableton Live) with Scheme, enabling interactive coding, algorithmic music, live coding, macros, and just much more pleasant scripting than in JavaScript. It locks in with the scheduler so you can even use Scheme powered sequencers within Ableton Live alongside regular Live tracks, and you can build sophisticated Live control surfaces using the Live API.
Github page here: https://github.com/iainctduncan/scheme-for-max
-
Need explanation for MIDI
The project page is here, with links to lots of documentation I've done: https://github.com/iainctduncan/scheme-for-max
- Controlling parameters with audio?
-
Processing audio buffers with Scheme for Max (cookbook and tutorial)
To download Scheme for Max and for tutorials, documentation, and the cookbook, visit the GitHub page: https://github.com/iainctduncan/scheme-for-max
-
The Janet Language
If you like things like Janet, you might also like s7 Scheme. It is also a minimal Scheme built entirely in C and dead easy to embed. I used it to make Scheme for Max and Scheme for Pd, extensions to the Max and Pd computer music platform to allow scripting them in Scheme. (https://github.com/iainctduncan/scheme-for-max) Janet was one of the options I looked pretty closely at before choosing s7.
The author (Bill Schottstaedt, Stanford CCRMA) is not too interested in making pretty web pages, ha, but the language is great!
-
Which coding language to start with?
Project page: https://github.com/iainctduncan/scheme-for-max
-
Ask HN: What have you created that deserves a second chance on HN?
I created Scheme for Max and Scheme for Pure Data. They are extensions to the Max/MSP, Ableton Live, and Pure Data computer music environments that embed an s7 Scheme interpreter in the host so that you can script, automate, and live code the hosts with s7, a Scheme from the CCRMA computer music center at Stanford and the same one used in the Snd editor and the Common Music 3 algorithmic composition environment. This allows you to do things like write algorithmic music tools, sequencers, and use the Ableton Live API in Scheme, including with Common Lisp style macros. It has an API for integrating with Max to share data structures, hook into the scheduler, run in the high priority thread, and so on. S4M allows you to do all the goodness of high level music programming in a Lisp, without losing the ability to use modern commercial tooling and instruments. It's my thesis project for a Masters in Music Technology with Andy Schloss and George Tzanetakis at the University of Victoria, and I plan to continue to a PhD working on it. I tried submitting twice, but it never made the page, which surprised me a bit given Lisp interest here.
The github page is here: https://github.com/iainctduncan/scheme-for-max
The youtube channel with various demos is here: https://www.youtube.com/c/musicwithlisp
What are some alternatives?
Fennel - Lua Lisp Language
Rack - The virtual Eurorack studio
get-started-with-clojure - Learn Clojure and Interactive Programming – Zero install
BespokeSynth - Software modular synth
babashka - Native, fast starting Clojure interpreter for scripting
score - ossia score, an interactive sequencer for the intermedia arts
ferret - Ferret is a free software lisp implementation for real time embedded control systems.
BespokeSynth - Software modular synth [Moved to: https://github.com/BespokeSynth/BespokeSynth]
kaboom.js - 💥 JavaScript game library **Abandoned** Succeeded by KAPLAY
pyo - Python DSP module
fennel-cljlib - Port of clojure.core namespace to Fennel (mirror)
csound_max - csound6~ object for Max/MSP