# Sonic Pi的主界面

Sonic Pi有着非常简洁的主界面。让我们花一点时间了解一下吧。

- A - 播放控制
- B - 代码编辑窗口控制
- C - 详细信息和帮助
- D - 代码编辑窗口
- E - 偏好设置
- F - 日志窗口
- G - 帮助系统
- H - 波形查看器
- I - 查看Cue

## A. 播放控制

这些粉色的按钮是控制音乐播放和停止的主控制按钮。Run按钮是用来运行代码的，Stop 按钮是用来停止代码运行的，Save是用来把代码保存成一个文件，Record按钮是把音乐录制到文件中（后缀为wav的文件）。

## B. 代码编辑窗口控制

你可以用这些橙色的按钮对代码编辑器进行操作。Size +和Size -能让你调大或调小文本字体。

## C. 详细信息和帮助

这些蓝色按钮可以用来打开详细信息窗口，帮助窗口和偏好设置窗口。Info按钮会打开详细信息窗口，它包含了Sonic Pi团队，贡献者和社区的详细信息。Help按钮打开帮助系统，Prefs按钮打开偏好设置按钮，它允许你控制一些基本的系统参数。

## D. 代码编辑窗口

在这里可以写属于你自己的音乐代码。同时，在这里你也可以删除，复制以及粘贴代码。你可以把它想象类似于Google文档一样的简单编辑器。代码会根据具体意义进行变色。这种五颜六色的代码刚开始看起来有点奇怪，但之后你会发现它真的很有用！举个栗子，蓝色代表数字。

## E. 偏好设置面板

Sonic Pi支持许多可调的偏好设置，你可以在prefs按钮中找到这些设置。例如：强制单声道模式，反转立体声，详细日志开关，音量调整滑块，声道选择器等。

## F. 日志查看器

当你运行代码的时候，程序执行的详细信息将会显示在日志查看器中。默认情况下，你会看到每一种声音产生的具体时间。这对你调试代码以及理解代码具体做了什么非常有帮助。

## G. 帮助系统

Sonic Pi最重要的模块之一就是窗口底部的帮助系统。你可以通过蓝色的Help按钮开启或关闭它。这个帮助系统包括Sonic Pi各方面的帮助信息，包括：本次教程，一系列可用的合成器，声音样本，例子，音效以及Sonic Pi提供的全部功能。

## H. 波形查看器

波形查看器可以以图形的方式展现你听到的声音。你能轻易的看到锯齿波（就像一把锯子）以及基本的嘟嘟声（优美的正弦波）。你也可以通过波形的尺寸判断吵闹的或者安静的声音。这里有三种波形可供选择：默认波形是左右声道波形的共同绘制而成的，立体声波形：每个声道的波形单独绘制，最后是李萨如曲线波形：显示的是左右声道的相位关系，你可以通过李萨如图形画出漂亮的音乐图像。

## I. 查看Cue

All internal and external events (called cues in Sonic Pi) are automatically logged in the Cue Viewer. For example, if you have a MIDI controller connected and press one of its buttons, you’ll see a new cue event in the Cue Viewer telling you the name of the controller and which button you pressed. Once you’ve mastered the basics of making and producing sounds, you’ll start to want to cue sounds or whole sections of sounds based on events such as these. A cue event is just an indication that something happened. For example, every time a live loop spins round, it sends a cue event out which is logged in the Cue Viewer. Also, external events such as MIDI messages from connected MIDI equipment and OSC messages from other programs or computers are also displayed in the Cue Viewer. It is also possible to directly generate cue events using the `cue` function. Anything that appears in the Cue Viewer can be used to trigger something happening. This is covered in more detail in Sections 10 to 12 of this tutorial.