I find that Rum delivers well on the promises made in its README - it is truly simpler and less opinionated than the alternative React wrappers I know of (Reagent, Quiescent, Om), and its mixin architecture makes it very expressive without forcing you to write classes. I find its choice of explicit atom reads (via rum.core/react) to be more tasteful than Reagentās Ratom abstraction.
The only thing I would add in favour of Reagent is that Reagent is truly āhomoiconicā: its UI trees are really made of data structures, which can be assembled programmatically with little commitment, passed around and tested for equality, which makes it pratical to have generic components parameterized with other components. Rum does not really have that AFAICT (neither does React) - or maybe @tonsky will want to correct me?
Iām into music making and Iād like to keep up with your endeavor. It looks really interesting. Iām thinking about coding melody generator and your notation looks quite helpful.