Replies: 4 comments
-
The context here is that Alda 1 was implemented in Clojure, and any Lisp expressions were literally evaluated as Clojure code. Clojure (as well as other Lisps) includes keywords like Alda 2 was a rewrite in Go, so we lost the Clojure part and I had to implement a new Lisp. I chose to make it as deliberately simple as possible, using only the most basic Lisp primitives, like strings, and symbols. It's not uncommon to see something like Clojure is not the only Lisp that has keywords. Common Lisp and Emacs Lisp also have them. In light of that, I'm not opposed to adding support for keywords to alda-lisp, and I don't think it would be difficult to do so. However: supporting both ways -- To make matters worse: even if we added keywords, we still couldn't support the Alda 1 way of expressing key signatures because we don't have maps, e.g. Happy to hear other thoughts on this, of course. Is there a strong use case to be able to write a score that works in both Alda 1 and 2? (I hope the answer is no! My dream is to never need to support Alda 1 again 😄 ) |
Beta Was this translation helpful? Give feedback.
-
What about implementing
I am not familiar with Lisp and its variants. What does it actually mean by writing a "quoted list"? Is it different from a vector (maybe nested) of symbols? There are some advantages of implementing vectors and maps.
I am thinking of multiple people using different versions of Alda that may exchange the scores they wrote. It would be annoying (and maybe affecting the originality of music art if we consider the Alda codes to be the artwork itself) if I have to modify the work that others made to make it playable on my own machine. This is still definitely not a strong use case, though. |
Beta Was this translation helpful? Give feedback.
-
By the way, I realize that this is not a bug because it is intended. Could you please move this issue to "discussions" if that is necessary? Sorry for that. |
Beta Was this translation helpful? Give feedback.
-
No problem! I was just thinking the same thing. Will move this to discussions. |
Beta Was this translation helpful? Give feedback.
-
In Alda 1, we have to use
(pitch :a :sharp)
, but in Alda 2, we have to use(pitch '(a sharp))
. There seems to be no form of writing it that is compatible in both versions.Personally, I prefer the Alda 1 way because it has less parentheses.
Beta Was this translation helpful? Give feedback.
All reactions