iainctduncan / scheme-for-max Goto Github PK
View Code? Open in Web Editor NEWMax/MSP external for scripting and live coding Max with s7 Scheme Lisp
License: Other
Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
License: Other
fix it so it defaults to 1 inlet (inlet 0) and not counting from inlet 1
If a file that is not found is referenced in the source file, any reinit of the object (ie changing the file) does a complete crash.
As per instructions here:
https://cycling74.com/tutorials/package-authoring-writing-documentation
the scan messages is working for scanning on the first call, but the third time it's called it crashes the patch.
For writing and reading floats to buffers, because tables only store ints.
it would be good for package distribution. Rename scm4max to s4m.scheme and then helper patches (repl etc) can be s4m.repl etc
figure out how to make those nice fancy help files max has
If an object is registered with a scripting name, scm4max can find it by iterating through the patcher. We will have scm4max maintain a registry, with a method for updating (if you change the patcher) and thus allow users to attempt to send any message to any other object with object_method and it's relatives.
Prototyped and working for setting a value in a coll.
Writing to named tables
when sent with with eval-string, "(out 0 'foobar)" works fine,
and direct (no eval string), out 0 :foobar is fine
but out 0 'foobar is throwing an error where it shouldn't
Should I make a convenience bpatcher for that?
As JS object does
Figure out how scm4max users will set the number of inlets and outlets.
Should it be in code, or come from attributes, etc.
Would be better if the console didn't show the empty list on every function that only has a side effect.
Ideally we will have optional sharing of s7 objects.
Implement "read" message for loading scheme files, as documented here:
https://cycling74.com/sdk/max-sdk-8.0.3/html/chapter_files.html#chapter_files_reading_text_files
Not sure how yet. Read the docs? or in here? or use the nice Janet static website code?
changed my mind.
The repl bpatcher sends out it's contents when you toggle the controls, it shouldn't do that
Is there a way to programmatically write to coll? maybe by sending the named coll a generic message?
Which means it will clobber definitions before we intend.
Figure out what the right way to do this is.
So as to make the repl quieter
if we change the file on the file system, and then double click it, we are not loading the right file. Damn it.
so out-1 and so one don't work. oops
enable setting dicts as values in max dicts. (post first release)
It's cut off part way through when double clicking on the listeners help example, presumably a buffer is not big enough or something
Dict i/o does not yet handle reading or setting arrays as values. Do that for arrays of ints, longs, symbols.
we should be able to
(define (f-list list-arg) (out 0 (reverse list-arg)))
Right now, enter sends the code out, which makes multi-line code impossible except by copy and paste. Need to figure that out
How to make xcode do the right thing with S7 sources
I think there are different optimization settings or something.
when we have a function execute several out statements in a row, we get (() () ()) returned from the interpreter, which gets printed to the console. Need to smarten up the the post_res function to skip printing that.
Go through the file reading, ensure using defer low properly
Like the JS box. This will be important for making help actually useful.
We should only see the chatter in the console if we want it. Maybe an @debug attribute or something
mucked it up in the package transition, need to fix that
implement the clojure-style -> and ->> thread first and thread last macros so we can build compound statements in simple max messages, like:
foo 1 2 -> + 10 ->> out 1
putting in a filename to the object box should load it up, using search path. Should be able to use code from implementing "read".
When code is executed through eval'ing a max message in inlet 0, it is not executing at top level, so for example, defines don't stick around. I think this is not what I want. prob need to ask on the list about this.
Get some max-test tests going. Eventually we should have them for all FFI operations.
see filewatcher_new() in the api docs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.