您的代码听起来怎么样?
作为一名开发者,我喜欢边写代码边听音乐。管弦乐能让我更专注于自己的工作。有一天,我注意到我的手指随着音乐的节奏在键盘上翩翩起舞,就像在弹钢琴一样。代码中的每个单词或符号都写得和谐自然。然后我想……这听起来怎么会……像我每天写的代码?
于是这个想法就诞生了。⭐
前往soundcode.now.sh直播,输入你的代码,享受它的声音吧!🎶
工作原理
首先,我们加载这个小型管弦乐队所用乐器的音色字体。当您粘贴或编写代码(或使用我们的示例)时,我们会使用 TypeScript AST 解析器将其解析为各个节点。然后,作曲就开始了。
代码的情绪
我们根据代码源确定代码的情绪。代码中欢快的词语越多,情绪就越快乐,反之亦然。代码的情绪用于设置音阶。如果是快乐的,则可能选择大调;如果是悲伤的,则选择小调。
和弦
通过代码源和一些简单的数学运算,我们可以从确定的音阶中选择要演奏的和弦进行。
钢琴的旋律
每个钢琴音符都是 TypeScript Token。我们通过一些数学运算来设置音符、音高、持续时间和演奏时间。诸如 ,.+-/* 等特殊符号被排除在其他乐器之外,并用于其他乐器。
其他仪器
每种乐器都有各自的音符。有些乐器只是循环播放和弦的音符,而有些乐器则根据源代码演奏特定的音符。例如,大提琴始终演奏当前和弦的根音,而竖琴则只演奏特殊音符,合唱则演奏弦乐。
您可以在我的 GitHub 存储库epranka/soundcode中查看完整的源代码
如果您对如何改进它有想法(新功能、错误等),请随时在GitHub Issues上分享。
在Twitter、GitHub上关注我们,并在LinkedIn上与我们建立联系
欢迎提供反馈和提问。
文章来源:https://dev.to/epranka/how-does-your-code-sound-3c25