scheme-for-max
Fennel
Our great sponsors
scheme-for-max | Fennel | |
---|---|---|
34 | 90 | |
181 | 2,289 | |
- | - | |
2.8 | 9.3 | |
23 days ago | 5 days ago | |
C | Fennel | |
GNU General Public License v3.0 or later | MIT License |
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.
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
Fennel
-
Pluto, a Modern Lua Dialect
Eh it's not just luajit and luajit didn't create that problem either. It's a symptom of lua actually succeeding at its design goal of being easily embedded as an extension language. A significant number of incompatible runtimes are more popular than the most recent puc lua, including I believe the older official lua 5.2 released in 2011.
I've done a fair bit of professional lua development and I don't think I've ever written standalone up-to-date puc lua except maybe for some tooling & scripts. It's such a small language and used in such a way that the runtime, distribution method, and available APIs have much more impact on your use (and compatibility) than the version.
Virtually everyone shipping a lua environment is also shipping changes to it that make it a unique target, if only extensions to the standard library. This is why I think syntax layer-only approach like fennel's is the correct choice for improving on lua. It mirrors lua's runtime semantics exactly, and allows you to access the implementation peculiars on their own terms and so can just be run on time of any lua system.
https://fennel-lang.org
-
LÖVE: a framework to make 2D games in Lua
Just learned about https://fennel-lang.org/ , could have probably used that as well to avoid Lua.
-
The Bipolar Lisp Programmer
> I’m positive that there is a Lispy language out there (actually in existence, or the aether) that is appropriate for embedded work, but the constraints of the target make it difficult to envision.
Perhaps Fennel* fits the bill?
* https://fennel-lang.org/
-
The Future of the Vim Project
I've also seen neovim plugins written in fennel [0], so if you want something lispy, that's possible now.
[0]: a Lisp that compiles to Lua, https://github.com/bakpakin/Fennel
- Qual a linguagem que vocês mais gostam de programar?
- Can I use elixir as the scripting language of my game engine?
-
TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript
Something similar: Fennel (https://fennel-lang.org/) is a lisp that compiles into Lua, which nvim can use as plugins, so you can write nvim plugins in a lisp. Aniseed (https://github.com/Olical/aniseed) makes this really easy.
-
Announcing automation-service: write and schedule home automation scripts in Lua
If you want a more FP language on the Lua runtime, you might be interested in Fennel. I wrote a post about adding Fennel compiler to a hslua interpreter a while back, which might be useful for you.
- 916 Days of Emacs
-
What's your opinion on Lua programming language?
There's fennel if you're a fan of LISP syntax. I like embedding lua because it's light and easy and doesn't re-engineer itself every six months like python; but I agree, the lua syntax certainly is fugly.
What are some alternatives?
janet - A dynamic language and bytecode vm
Rack - The virtual Eurorack studio
urn - Yet another Lisp variant which compiles to Lua
BespokeSynth - Software modular synth [Moved to: https://github.com/BespokeSynth/BespokeSynth]
nvim-lspconfig - Quickstart configs for Nvim LSP
score - ossia score, an interactive sequencer for the intermedia arts
Lua-RTOS-ESP32 - Lua RTOS for ESP32
BespokeSynth - Software modular synth
lua-languages - Languages that compile to Lua
pyo - Python DSP module
webassembly-lua - Write and compile WebAssembly code with Lua