I just want to say, the blank canvas concept that monome has always been about, is exactly what excites me and draws me to them. I remember the first week I spent in my studio with the Teletype. I made almost no sounds. Just sat there in silence typing into my modular. Ha! But eventually, it became the heart of my modular system.

It’s not for everyone but for those who can appreciate it, it’s super rewarding. I’m pumped for Crow now. At first I thought it was mainly just for Norns owners but the fact that you can design its functionality and upload it to run standalone is huge! And in 2hp! I’m eventually gonna need more than one. I’ve always had trouble with programming languages but this seems like the perfect motivator to learn.

I’d say, If you bought one and don’t want dive into all language business, put it in a box and save it for six months. Don’t sell it. It’s going to be worth it when all those user created scripts accumulate and all you have to do is upload and go.

Bravo Monome! Amazing design once again and looks sick, as usual!

4 Likes

Yeah I get the feeling that once a library of things exist for crow it could become an alternative to a Disting in some respects

4 Likes

going thru the docs and am noticing a similar blindspot that was encountered briefly at norns launch…maiden/matron/supercollider/lua/dust/tape all made reference to specific things and the framework became easier to grasp once explained but, initially i think i was confused by how the puzzle fit together

is there any benefit to defining certain terms? for example now we have “scripts” being used to describe basically the same concept within norns, tt, and crow ecosystem but each type of script is very different (and non monome users might be expecting the word “application”)

that’s merely an example

what’s actually stumping right now is the relationship between crow/druid/python/ALS and lua…i cannot parse out the exact relationship based on the docs so if someone approached them with little background knowledge of these devices they might also be confused

as far i can tell, whether you write individual strings of text or full standalone scripts for crow, the editor is druid and the language is technically lua but asl is a proprietary set of commands which functions within druid and follows lua syntax…correct?

any thoughts on how to translate this and document it clearly for others?

edit: some of these questions are answered in the readme on gh…hold on

5 Likes

excellent thoughts, thank you!

pushed some changes to the FAQ to reflect these bits. does that feel right?

12 Likes

I think this is perfect
thanks Dan

hopefully others find it helpful too!

5 Likes

Thanks so much for this—definitely making it easier to understand.

3 Likes

Maybe this analogy will help some people!

Every day when a crow wakes up, it likes to follow the same daily routine, which may involve flying along complex paths, communicating with other creatures, solving problems, responding to external environmental stimuli, and more.

When Crow turns on, it runs a script loaded into its flash memory. That script may involve generating control voltage, responding to control voltage/Lua code, acting as a CV expander for Norns, controlling other devices over the I2C bus, and more.

Typically, the Crow follows its innate biological daily routine.

Typically, Crow runs the default script, default.lua, aka First.

However, your Crow is quite smart, and it can learn a new daily routine to follow whenever you want.

You can upload a User Script onto Crow via Druid, Max, or even a Max4Live device in Ableton. Norns scripts will also redefine how Crow behaves.

Your Crow can return to its innate biological daily routine at anytime by telling it to forget the special daily routine which you delivered to it previously.

Crow can be restored to its default script by clearing the User Script.

Your Crow is also highly adaptable and can communicate with you via a walkie-talkie in real-time over the course of a day. This allows it temporarily deviate from its daily routine. It can send you information that you request about how it feels and what it sees, explore a new path which you radio in to it, change how it responds to environmental stimuli, communicate with other creatures for you, and more! The next day however, it will return to its daily routine, whether that is its biological routine or one which you previously gave it.

You can send your Crow new code to execute on the fly (pun intended) in real-time. This is done by sending Lua code to it over a USB cable. The code may be composed and sent via Druid, Max, Max for Live devices in Ableton, or Norns. That code might redefine how it responds to and generates voltage, it might directly change the state of its inputs or outputs, it might return information to you about its internal state or externally received voltages, it might relay messages to other devices over I2C and more! When you restart Crow, it will return to the behavior defined by the script in flash memory, whether that is default.lua or a User Script.

27 Likes

ok between this and the Technical Maps, it’s clear you have a gift for teaching and making complex systems far less daunting than they may seem. thanks so much for sharing your insight here.

7 Likes

some random thoughts/points

i think this thread is super useful to identify gaps in documentation, but one thing we seem to be mixing up a bit is content vs presentation. there is no presentation that will fit everybody’s learning style. we should definitely make sure there are docs that are aimed at various knowledge levels, but it’s impossible to create docs that will cover all learning styles. i could easily count manuals/docs that immediately worked for my learning style.

still, it makes total sense to have some docs be in the form of “here is how you would achieve a typical scenario”. some of us like a manual to be “here are precise hammer measurements and specifications”. some of us would prefer “here is how you can build a birdhouse with a hammer”.

also i think sometimes it’s the fact that there is too much information - we’ve got multiple places talking about i2c (which is what the user’s guide was supposed to address, among other things), multiple sources for teletype - manual, studies, grid studies, threads including basic usage / scene exchange / haiku etc. perhaps we need mind maps for the docs, which could serve as a starting point.

a side note on github: i think some of the confusion is that some docs are hosted on github. this doesn’t mean you need to learn github or git - it’s just a regular wiki that happens to be hosted on github.

final note: documentation and videos take a lot of fucking effort. like, a LOT. in some cases it takes more time than the actual development. personally, this is my least favourite part of creating things. but it is a necessary part - because i want people to use my creations and because i want to make sure folks are able to get most out of them. but it’s disheartening when you invest a lot of effort into making a doc to the best of your abilities and then you hear comments about how it could be formatted better or how it’s too verbose or how it’s not verbose enough etc etc. please, don’t take this as a dig at some of the requests in this thread - most of them are very reasonable and identify important gaps, and, more importantly, come from people who also put in effort to learn.

24 Likes

great point

for example the og norns product page seemed fine to me and i kinda miss it

but i get why things are adjusted from time to time

1 Like

Somewhere along the line it seems like we lost the link to the Crow studies (for Norns) on the Crow docs page- I had to google it.

Those studies sit in a strange place actually, they’re really for the Norns, not Crow; given you’re just treating Crow as an input/output for your Norns.

This is really helpful. I did not actually realize that you would be able to upload a script from M4L to the crow to run standalone. Given that I don’t know how to write lua - that is very exciting and makes the crow a lot more accesible for me.

2 Likes

https://monome.org/docs/crow/#next-steps – though, if you couldn’t find it then it deserves highlighting. I’m taking a day off from messing with docs to regain objectivity :sweat_smile:

5 Likes

many cool perspectives and contributions
on this thread
it’s more than just a module
digging the sounds created with it already
(may have already started a new genre of music ‘crow first)
so many ways to see it…
bravo

and In defense of crow as a work of art
in today’s art world
it might be even more valuable
if it were more undocumented and impractical

3 Likes

petition to have
abalone
write all the documentation
from now on

water gurgles
stones rustle
a shadow. a shade. listen. speak. remember
crow

<3

8 Likes

thx, and 3 cheers for @dan_derks
who always does it for real

9 Likes

Tech is hard. Great communication is also hard. Respect to all who aspire to either. Double respect to those who are great at tech and at communicating how to use it.

5 Likes

Absolutely. This One Easy Trick will go a long way to demolishing the accessibility barriers in the documentation. There are few things more impenetrable than undefined jargon, but also few things easier to overcome through up-front definitions, glossaries, abundant use of hyperlinks, reminders, etc.

Thank you.

PS: Went back and read @dan_derks and @voidstar’s introductory efforts … Exactly Right On Target. I’m very grateful.

8 Likes

I’d like to second @bobbcorr here. I’m not a techie per se, but the documentation has got me up and running very quickly using crow via norns, M4L, Max, druid and i2c integration. Really nice job to all involved and thanks @dan_derks for leading the charge!

5 Likes

Using WSL and druid.

For those who have windows and want a Linux experience, you can enable WSL (Wimdows Subsystem for Lnux) and then install Ubuntu (or Debian or Redhat) from their app store.

Then follow the Windows PowerShell install as described in the docs.

Finally, open an Ubuntu CLI and create a small shell script that executes the druid.exe as in the doc. Be sure to refer to the C: drive as /mnt/c and to change all forward slashes to backslash.

Works on USB-C as well.

Bonne sante

2 Likes