Crow -- dreaming of


That makes perfect sense. Either way, this sounds intriguing, looking forward to learning more details!


Looks like my prediction upthread was right (not really a prediction so much as piecing together readily available info and extrapolating, I think)

My uninformed, uneducated guess would be that Crow allows for an additional layer of lua scripting that handles the behavior of the CV ports, with or without norns/grids plugged in. Which could kinda be a constellation of functionality in itself. I’m getting psyched

My recent purchases over the past year: grids, Norns, w/, Just Friends. All of these are about to get freaky together very soon. I’m crowing


Yeah, there’s no sign here that there’s anything under the hood running Supercollider, which is the sound engine for Norns. The great thing here though is that if you know or are learning Lua, the ‘dialect’ (great analogy @Dan_Derks !) and syntax stays the same.

Also 64kb (64000 characters?) is a decent amount of text, but a relatively small amount of storage in today’s world. It hints to me that we’re dealing with a device that is more about facillitating inputs and outputs, running logic, and ‘directing traffic’, sort of what @naxuu is thinking. I do wonder however if there will be any connectivity directly to grid/arc/etc via the usb port. Haven’t dug into the code to see if there are clues yet.


64k is 65536 characters. It should be plenty for a script, but not a large amount of data for something like a sample buffer. “Directing traffic” is probably the right idea, but I bet with some effort one could get it to do some sequencing duty as well.


:sweat: Oh whoops, I see now, a character being 1 byte, 1024 bytes per kilobyte.


Reading and re-reading this document, this module is going to be one hell of a wormhole


My presumption is that it will be more of what I was hoping teletype could be: an environment in which you can build utilities with i/o. The inherent workflow of Teletype make certain patches impossible, and the scripting limitations create an additional layer of limits. I’m not saying those as being good or bad - Teletype is great for specific use cases but terrible for others. I expect crows will accomplish all of the things Teletype isn’t suited for.

I am very excited for it. Should open a lot of doors.


From a brief reading of the docs it looks like we can create custom TT ops (in lua)? If i am understanding this correctly, this is huge!

Summary ... CROW.CALL2 1 V 1

A crow call

crow is capable of far more than reporting the state of its inputs and setting the output values, but so vast are the possibilities that we couldn’t make an i2c command for every one! To deal with this flexibility, we ‘CALL’ to crow and define the expected function on crow itself.

eg: I want teletype to be able to add a voltage to a given output. There’s no way to query the state of crow output via i2c, so we’ll need to do it natively on crow itself. Something like:

function add_to_output( channel, amount_to_add )
output[channel].offset = output[channel].offset + amount_to_add

To execute the above from i2c we use one of the ‘CALL’ functions, in this case CALL2 as we need to send 2 arguments. There are commands for 1-4 arguments. From teletype: CROW.CALL2 1 V 1 This should add 1 volt to the first output jack on crow.

We can then redefine the function at ii._c.call2() to call our add_to_output() function.

A follow up question: The examples in the docs list these functions as they apply to crows i/o. I wonder if they can be used to just return math just for TT use. e.g. CROW.NORMDIST x y z


I didn’t expect “a/s/l” to ever become relevant to my life again, but I’m down.


no, these aren’t like full RPC calls that can put values back on the TT stack. that’s not a completely inconceivable feature, but i wouldn’t count on it - slotting asynchronous stuff into the existing TT architecture using i2c sounds… risky.

think of it more like a TXo where you can define things like output oscillator logic on the fly in lua.


Will the interface for installing/instantiating lua on crow come from norns, either as an explicit action (a stand-alone event) or as a feature of a script (an embedded event)?


This all sounds cool but I do think “ASL” as an acronym for “a slope language” feels weird, considering the acronym is most commonly associated with “American Sign Language” used by the deaf and hard-of-hearing.


A Slope Language would be better served by the ASLAN acronym.


(on second thought, I’d rather not get involved in a naming discussion, but gosh, that’s a handsome-looking CGI lion)

(on third thought, here are some thoughts on the genus Corvus: “Corvus is a widely distributed genus of medium-sized to large birds in the family Corvidae. The genus includes species commonly known as crows, ravens, rooks and jackdaws; there is no consistent distinction between “crows” and “ravens”, and these appellations have been assigned to different species chiefly on the basis of their size, crows generally being smaller than ravens.”)

(as a follow-up to the third thought: if the language is bigger than the implementation, then RVN [pronounced “raven”] might be a fun and you could even pretend that RVN stood for Rational Vector Notation or some other convenient construct, like Rob’s Velvet Nunchuk or Rochester Violin Nursery)


thank you all for your enthusiasm for beta-docs and a repo!

much will be clarified (especially with some help from a few new tester/collaborators) but for now i’m going to focus on making things work (and get this 2.0 norns release out!)


The ASL name was a joke between Kelli and I and referred to the use of age/sex/location in early internet chatrooms. I called this tiny DSL, ASL, as a nod to that, then was happy to discover I could shoehorn the words a slope language into it. Like most namings, it wasn’t meant to be the official title, but was retained through sheer laziness. I didn’t realize ASL also referred to American sign language (I’m not American).

I’ve spent a lot of time developing this and would hate for a collision of names to reduce enthusiasm & uptake. I’d prefer to change the name now before it’s used in the field to avoid upset! I also have zero interest in defending the name so if I’ll need to do this again, I’d prefer change it now - thanks for bringing it to my attention.


I’m gonna vote ASLANG since seeing LAN tugs my heartstrings in a network-oriented direction

EDIT: or SLOPELANG but it negates the nod to A/S/L from nights alone as a kid in AIM chat room ‘Alone@Home’ while Mom and Dad were out at dinner so I double appreciate the above

squeaking door aim chat sound


What about TSL (a Tiny Slope Language)?


How about just “SLANG”?


As someone else who grew up as a teenager on the early interwebs,
asl should 100% stay, but be slashed and appended with a ?


or alternatively

$~A sLoPe LaNgUAge~$ ----<----@


agreed (with /), oh the nostalgia.