Given that Emacs Live has received new interest over here - I've just pushed a new release - v1.0beta28. This has support for all the latest Clojure goodies as well as many other lib updates :-)
Sam Aaron is so inspirational to see in person - so focused on achieving something of cultural significance (teaching a generating to code by drawing them into music-via-code), so effective in his mission. I can't recommend enough seeing him, or having uk as a keynote speaker, or having him as an amazing dj at your conference.
Sonic-pi (and overtone, which was my first intro to this stuff) is a wonderful piece of creative software on its own, but combined with a human it's really a new form of art.
Totally agree, this is great stuff. Every school could have a "music programming lab" with inexpensive Sonic Pi workstations. They are easy to mass produce. I hope teams of parents get together and fund these for their local schools. I put together my own from a Pi 2 and mostly spare parts.
Pi 2, case, power supply (Adafruit $65 shipped)
8g Micro SD w/ Raspian Linux (spare parts)
Keyboard, Mouse (spare parts)
Speakers or headphones (spare parts)
HDMI, Ethernet cables (spare parts)
Monitor (just used my TV)
You can also run Sonic-Pi on a PC/Mac, which would let some kids continue their explorations outside of the lab.
Speaking of funding, Sam has a Patreon page to support his amazing work (and transitively the children learning to code with his tools). It's definitely worth supporting with a few quid a month at https://patreon.com/samaaron
"The shadowy DJ sets, knob-tweaking noise and fogbank ambient of many Moogfest performers was completely demystified and turned into simple numbers and letters that you could see in action. Dubbed "the live coding synth for everyone," it truly seemed less like a performance and more like an invitation to code your own adventure."
I absolutely want to love Spacemacs, it's beautiful, highly functional and relatively easy to transition to as a Vim user.
Every time I try it though I just can't get indentation detection to work at all. For the amount of functionality built in I'd really expect that to be built in or easy to configure. Having Emacs control indentation with the TAB key drives me insane too, I'd just like to control it myself.
For developers who work over a range of different projects with different indentation styles, that sort of functionality is essential. dtrt-indent seems like it should solve the detection issue but I've had very little success getting it to reliably work.
This is where it helps to have a little emacs foo.
spacemacs does not entirely remove that need, ime.
In your .spacemacs there's a function dotspacemacs/user-config.
That runs _after_ spacemacs loads and inits all its layers.
It's a good place to configure all the various modes in ways that the layer may not have exposed.
Regarding indent, I have this kind of thing:
;; tab for indent, me like
(define-key prog-mode-map (kbd "<tab>") 'indent-for-tab-command)
(setq web-mode-markup-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq web-mode-code-indent-offset 2)
(setq css-indent-offset 2)
(setq-default js-indent-level 2)
but for any given mode, you can find the variables to set, usually involving the word 'offset' and go from there.
You can also use the customize feature -- space colon customize.
I've really found emacs and spacemacs worth the effort, but there definitely is effort.
FWIW, I've had better mileage out of `dtrt-indent` by increasing the `dtrt-indent-min-quality` option to `90.0`, which has the heuristics a tad more strict in choosing the correct indentation. However, there are still cases where the wrong choice is made and fixing is extremely annoying.
I've been using Spacemacs for about 3 months now, moving from Sublime Text, and while the initial experience was mixed, there are things that I just couldn't do without (project management felt weird at first, but now feels seamless, the fact you can edit over SSH transparently etc).
There are still many pain points, such as the sub-standard multiple cursor implementation (with `evil-mc`, `iedit` isn't much better) or the fragmented and incomplete tagging implementation (GNU Global doesn't support everything and generating isn't transparent, though `dumb-jump` is being implemented which may help).
However, I feel that both Emacs and Spacemacs have very strong foundations and extremely vibrant communities, and am confident a lot of the pain points (at least the ones that aren't architecture-related) will be fixed given enough time. Spacemacs is well on its way for a new major release, which should fix a few things.
FYI: You can take over the indent hooks to make them do whatever you want, in the major programming modes. For a while in js2-mode, I had my own indent hook to get around something it was doing weirdly. More importantly you can of course rebind or unbind tab (or all indent functions!) to your heart's content. Through a combo of custom indent functions and .dir-locals.el files in each project, I've been able to navigate between space/tabs projects with different indent styles.
I used Emacs Live for quite some time. Then tried https://github.com/bbatsov/prelude because I couldn't get Emacs Live work with the most recent CIDER (clojure environment). I have been using that ever since.
If you check out the most recent release (as of 40 mins ago) you should see that Emacs Live now includes the most recent CIDER. You just need to include the following in your ~/.lein/profiles.clj
I'll be another voice for prelude. It really is a nearly-perfect emacs setup (other than guru-mode, which I find annoying, and having to set up a few projectile/helm related things by hand). I've grown to love the zenburn theme, too — it's extremely relaxing on the eyes.
I highly recommend prelude to anyone who's not coming from vim (for them, I recommend spacemacs).
I'm also a huge prelude fan. Very easy to get helm, projectile, and cider working. I've used spacemacs (love the theme), emacs live (love the theme), Steve Purecell's emacs config, emacs starter kit, and others.
I settled on prelude because it is the most like a "vanilla" emacs installation (unlike spacemacs), and is easily extensible.
That's unfortunate that CIDER doesn't behave with it. I was curious about this because I'm currently using my own tweaked version of the Brave Clojure config, and it's woefully out of date and attempting to update it just broke everything.
That doesn't always work, and is still quite dangerous in the (abstract), usually your other programmers are friendly, but you should definitely be careful about it.
The idea is that you download the script, read through the downloaded file, then run the downloaded file. Obviously if you download it two different times the server can serve you two different versions.
I used emacs-live for development for a while. The color scheme is just horrible, however, emacs-live did a good job of showing me what was possible with emacs.
I use Extempore by Andrew Sorensen, which grew out of his Impromptu work [1]. It is a livecoding environment with its own language xtlang (vs. Clojure on the VM for Overtone). Watch some of his videos linked on the site, or on YouTube. Pretty incredible.
Lately, I realized I am not much of a livecoder in the same respect that I am not a performing musician. I have now picked up Euterpea again, a Haskell-based livecoding environment that you can compose at the signal or note level, but it is not really suited for live performance [2].
Grace, an all-in-one download, multi-platform, scheme-based music coding environment based upon Common Music (CM) is a great way to start without having to do much setup. It has great tutorials and samples in the menu under Help [3].
Livecoding is definitely more popular overseas than in the U.S. although there was recently an algorave in NY this year.
Simply do a git pull from ~/.emacs.d to update