公众号 「无痛入门音乐科技」 开源代码和相关资料链接
欢迎微信扫码关注或直接搜索 intro2musictech
♬ 公众号文章同步更新 ipynb 代码 · 一边阅读一边执行 · 快速入门无痛 skr ♫
git clone https://github.com/beiciliang/intro2musictech.git
cd intro2musictech
uv sync # 自动安装 Python 和所有依赖
uv run jupyter notebook # 启动 Jupyter Notebook
uv run marimo edit MIR-CC.py # 启动 marimo 交互式笔记本编程零基础?展开下方 从零设置编程环境 查看详细指南。
展开查看完整指南(适用于编程零基础的读者)
如果你已经清楚如何
git clone本项目,并能用 uv 安装 pyproject.toml 中的依赖之后,不报错地加载 00-Hello.ipynb 并运行其中代码,恭喜你,编程环境配置成功!
在计算机还没有酷炫的交互界面甚至连鼠标都没有的年代,人们通过命令行来操作程序,如果你学会了在命令行下如何操作,表面上能看起来像个黑客,实际上能大大加快操作速度。
假如你是 MacOS 或 Linux 用户,博主希望你懂得如何使用终端(Terminal);假如你是 Windows 用户,则希望你懂得如何使用命令窗口(Command Prompt)或 PowerShell。以下内容以在 MacOS 上操作为例!
打开命令行界面后,应该会看到一个白色或黑色的窗口,正等待着你的命令:
HOSTNAME:~ USER$
其中 HOSTNAME 的部分指主机名,冒号后的 ~ 表示当前路径在根目录下,USER 是用户名,最后 $ 提示终端在等待你输入命令。本文将主要用到 ls cd pwd git uv 这些命令。
ls — 列出当前路径下的所有文件:
HOSTNAME:~ USER$ ls
输入后回车,窗口中会返回所有文件和文件夹的名字。
cd — 进入某个文件夹,假设一个叫 Downloads 的文件夹在上述返回的名字列表中:
HOSTNAME:~ USER$ cd Downloads
pwd — 回车后"当前路径"已经由 ~ 变成这个文件夹的位置,输入 pwd 可以再确认:
HOSTNAME:Downloads USER$ pwd
/Users/USER/Downloads
cd .. — 返回上一级目录:
HOSTNAME:Downloads USER$ cd ..
这些就是最最基本的命令行了!下面的部分会继续讲解其他命令行的用法,需要时刻注意路径是否正确,指令之间是否有空格分隔等等。
Git 即版本控制,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。程序员们用它才能最快发现到底是谁在什么时候删了一行不该删的代码。
公众号涉及的代码都是由博主先在自己的电脑上通过 git 进行本地版本控制,再托管到 GitHub 这个可以让读者们看到的地方。如果有错误的地方,其他人也可以发起 pull request 来纠正,博主再 git merge 把别人的修改意见融到自己的代码中。
git clone https://github.com/beiciliang/intro2musictech.git克隆完成后若在当前路径下输入 ls,返回的名单中将包含 intro2musictech。
因为公众号的代码会随新文章的发布而增加更多内容,博主建议读者发现有新文章发布后通过 git pull 来同步更新。
Tips
- 如果实在觉得各种 git 指令太晦涩,可通过 GitHub Desktop 软件进行版本控制
- 如果想更深入了解 git 和 GitHub,英文好的读者可直接参考官方帮助文档,中文资料可参考这里
现在通过 ls 查看一下 intro2musictech 文件夹里都有哪些东东:
HOSTNAME:~ USER$ ls intro2musictech
其中 attachment 文件夹里包含一些音乐素材和图片,以 .ipynb 为后缀的文件都是 Jupyter Notebook,重点是 pyproject.toml 中声明的 Python 库,成功安装这些才能确保今后所有 .ipynb 中的 Python 代码能跑起来。
不过首先需要解决的大事儿是,如何安装 Python?
我们借助 uv,它是一个非常快的 Python 包管理器,能帮你自动安装 Python 并管理依赖。
安装 uv:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"安装 Python 和所有依赖:
cd intro2musictech
uv syncuv sync 会自动下载合适版本的 Python,创建虚拟环境,并安装 pyproject.toml 中声明的所有库。无需手动创建虚拟环境!
安装 ffmpeg(librosa 加载 mp3 格式的音频文件需要):
# macOS (Homebrew)
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpegWindows 用户可从 ffmpeg 官网下载并添加到系统路径。
Jupyter Notebook 本身是一种网页端应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。
在项目目录下启动:
uv run jupyter notebook此时你的浏览器应该会直接弹出一个新页面,你也可以粘贴命令行返回的 URL 链接,拷贝到浏览器中打开应用。
- 点击页面右侧的
New并选择Python 3可新建一个 Notebook - 回到之前的页面,进入
intro2musictech文件夹后打开 00-Hello.ipynb - 其中简要介绍了 Notebook 在跑 Python 代码时的妙用,你会用它加载一段音频后听到猫叫,并画出波形!
关闭 Notebook 不仅仅要关闭浏览器页面,在其运行的命令行界面,要通过两次 Ctrl+C 中止程序。
假设上述所有步骤都能成功执行,那么一旦有新文章时,读者可以在自己的电脑上获取更新后查看最新的 Notebook:
cd intro2musictech
git pull
uv sync
uv run jupyter notebook