The project that I used as an excuse to get my head around dictionaries was an editor/librarian for a synth with a very complex voice architecture and midi spec.
Parsing sysex dumps into a dict for storage, editing, formatting into osc for transmission over udp, etc was a huge improvement over using, say, colls for the same tasks, and in general I've tended to stick with dicts whenever I've had to parse and manage large amounts of raw midi data in human-readable and easily maintained patches.
"The ability to reference the same dict throughout a multi-level patch[...]"
That part is possible with coll too.
Please correct me if I'm wrong:
Dicts use hashing and therefore have a way better lookup time than colls. So, if you have large amounts of data and need to look it up fast, you should stick to dicts instead of colls.
I started using Dictionaries a couple months ago after realizing Coll doesn't save in a live set.
It may take a little more work than Coll, but remember you can transfer between the 2 really easily with the push/Pull_to/from_Coll, so you could still use a Coll like you normally have but keep the dict in there to save the data and then pull it when you reload the patch. Personally I'd rather just get used to knowing dict better and leave coll behind except for simpler smaller tasks that doesn't require saving.
Where I'm really going to get some use out of it is a larger patch I'm revising for a controller, so instead of having to constantly poll the liveApi for everything, it can reference the dict instead, since it will gather all the info I need on initialization, and then it will just add/subtract any new info. This should increase the speed and cut down on a lot of processing.
I've been using dictionaries for a Max for Live device that stores information gathered from the Live API, making it accessible to other devices. It stores the data in a structure very similar to the live object model, lots of sub-dictionaries. Hoping to experiment with sending the data over udp to a visual artist on a different computer too.
It's not finished yet but most of the basic functionality is there. I've attached a copy if anyone wants to have a look.
Drop it on a track, open the max for live print window, turn on the "Print" toggle button on the device then click the "Init" button.
You should see all the information the device stores printed to the max window in dictionary format i.e "::" to signify sub-dictionaries.
At the bottom of the device there's a text edit object where you can type in commands to send to the live api. For example typing "live_set tracks 0 set mute 1" and hitting enter will mute track 1.
^i agree with Wetterberg.
also, from the video, Sam spoke, "sure as shit forget about Pure Data"
what a dict-thing-to-say! ;p
(thanks to PD we've got PDlib which allows for awesome things on iOS and Android, and the only thing similar with Max is the pathetic 'Mira' which is not at all like bringing the best functions of max to iOS... but more like a rich-yuppie's remote-control for the laptop which they're too high-maintenance to place in their lap :p)
^i disagree with the asswipe. Mira is great to avoid repetitive stress syndrome, or avoid being intimately involved with your computer. I use it everyday, because it allows me to hold a glass of champagne in one hand, keep a boar's head in my lap to feast off of, and control my max patches with the other hand by mundanely tapping on a pane of glass like it's actually expressive :D
(also, the tutorial may not be a great 'introduction' but it sure as shit gets to more interesting usage quicker than an introduction might. still... on the other hand, anytime i hear someone say that a max patch looks 'sexy', i hear something like a jedi-mind-trick in my head: "this isn't the dork you're looking for".... haha, that Sam, got alot of... strangely directed passion :D)