用Emacs org-mode学习音乐

然而你这两个不说功能阉割只有高亮,连个详细点文档都没有。更别说与其他相关插件集成了

当笔记啊

还有

latex里也行欧

推荐这本Kostka的Tonal Harmony,美国大学里音乐专业大一的经典教材。

3 个赞

直接看源码

又不是Emacs源码,我凭什么要看,就拿第一句看有啥意思,我说了两句的。

因为源码里有文档所以直接看源码,而不是一头扑进源码海里找不到北。

更何况JS和VimL根本没有写docstring的传统,还有各种import alias,看得眼花。

所以有了namespace后用import alias都用疯了,搞得不同包的不同功能函数import到一起后就起个相近的名字以为万事大吉了。这危害不亚于Java式参数列表重载。

擦,太牛了,才发现org还有这个

实际上这是Literate Programming的传统,这个在TeX社区里算是比较常见。

可以参考:

https://orgmode.org/worg/org-contrib/babel/

我自己以前没学完的Automata笔记也是这么弄的。

https://leeifrankjaw.github.io/notes/automata/

实际上,最早Wolfram Mathematica的Notebook一直就在尝试这样的事情,包括前几年流行起来的IPython Notebook,后来在支持多语言之后改名成Jupyter。

5 个赞

我觉得这个例子很好的体现了Emacs和其他环境的区别。

在标记文本中嵌入其他语言代码块这个功能,组合使用命令行工具当然没有什么做不到的。具体到这个例子,可以用LaTeX,也可以用加插件的markdown之类的。用专门的文字编辑器来编辑源代码,然后编译输出。unix的哲学就是这样了。

而在这个连续谱的另一端,是各种专业的工具,提供一整套复杂专业的功能。但除了它被设计来做的事情之外,就什么也干不了了。

Emacs厉害的地方就在于它把外部工具整合进来以后可以用一种一致的方式让它们一起工作,成为Emacs的一部分。整合进org-mode的代码块就可以用熟悉的Emacs和org-mode快捷键进行操作。可以添加TODO和标签,让它们出现在日程表里,可以追踪进度。我甚至可以做一个org表格,然后用一段elisp代码块读取表格里的数据生成音符,再用一段lilypond代码块引用这些从表格数据生成的音符。在代码块上按一个快捷键,就可以播放乐谱生成的midi。我觉得这是Emacs比其他任何工具都要强的地方。

先来个简单的 编辑个svg吧

如果我想直接编辑生成的乐谱 emacs应该不能做到

但vscode可以

如果我想指定一个播放的起止点 该怎么做

我想加个播放循环次数又该怎么做

搞不懂这也能和Unix哲学扯上关系。捂脸

害,您又开始了。刚才什么latex,什么markdown的嫌偏题不够严重,现在SVG都来了。先不说SVG本质就是一堆XML,Emacs带上librsvg的话也有显示SVG的支持,Emacs内置了一个svg.el专门处理SVG文件的你知不知道? 你不喜欢用,telega倒是挺喜欢用svg画emoji的。

言归正转,用org不就是要集成式的文学编程体验么,markdown配合R studio还行,tex配合CWEB写C,除了org还有哪家有通用的文学编程支持鸭。强行用markdown/tex+Lilypond不和强行用Emacs写Java一个样子?用Emacs写Java的还可以说自己是真爱,你这个是什么真爱,VSC真爱么?那你来Emacs社区蹦哒啥子哦。

3 个赞

显示svg 和 编辑svg 是 两回事

https://marketplace.visualstudio.com/items?itemName=cssho.vscode-svgviewer

你觉得楼主是显示乐谱 还是 编辑乐谱 呢?

编辑SVG用svg.el啊你到底有没有看我写的啊

鉴于你阅读水平不好,我拒绝回答。

正常人眼中的改乐谱:改llp源文件,C-c C-c生成新乐谱

您眼中的改乐谱:对着SVG一顿操作打出0-5

3 个赞

看来只有我能理解你在说什么。

Emacs在很大程其实是反Unix哲学的,Vim倒是比Emacs更符合Unix哲学。