diff --git a/doc/2-interface/effect-list-window.md b/doc/2-interface/effect-list-window.md index 6abadae9d..35c738387 100644 --- a/doc/2-interface/effect-list-window.md +++ b/doc/2-interface/effect-list-window.md @@ -7,4 +7,7 @@ this window provides a list of the effects that are available. for more details about these effects, see [the effects page](../3-pattern/effects.md). - **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip. +- filter bar: type to filter the list to show only matching effects. - menu button: opens a small list of effect categories. toggle each to change whether effects belonging to such categories will be shown in the list. + - **All**: show all effects. + - **None**: show no effects. diff --git a/doc/2-interface/export.md b/doc/2-interface/export.md index e1619bc92..8e6abc390 100644 --- a/doc/2-interface/export.md +++ b/doc/2-interface/export.md @@ -7,16 +7,39 @@ Furnace allows you to export your song in several formats. this section deals wi this option allows you to export your song in .wav format. I know I know, no .mp3 or .ogg export yet, but you can use a converter. - **Export type**: - - **one file**: exports your song to one .wav file. - - **multiple files (one per chip)**: exports the output of each chip to .wav files. - - **multiple files (one per channel)**: exports the output of each channel to .wav files. - - useful for usage with a channel visualizer such as corrscope. -- **Bit depth**: default is 16-bit integer. -- **Sample rate**: affects the quality of the output file. - - default is 44100, "CD quality". - - lower sample rates lose fidelity as upper frequencies disappear. - - higher sample rates gain frequencies that can't be heard at the cost of file size and rendering time. -- **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **one file**: exports your song to a single file. + - **multiple files (one per chip)**: exports the output of each chip to its own file. + - **multiple files (one per channel)**: exports the output of each channel to its own file. + - ideal for use with a channel visualizer such as [corrscope](https://github.com/corrscope/corrscope). +- **File Format**: select the output format. each format has its own options. + - **Wave**: lossless uncompressed .wav format. largest file size but perfect quality. most useful for files that will need further editing. + - **Bit depth**: default is 16-bit integer. + - **Sample rate**: affects the quality of the output file. + - default is 44100, "CD quality". + - lower sample rates lose fidelity as upper frequencies disappear. + - higher sample rates gain frequencies that can't be heard at the cost of file size and rendering time. + - **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **Opus**: lossy compressed .opus format. smaller size than either MP3 or Vorbis for better quality sound, but less common support than other formats. + - **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **Bit rate**: higher numbers generate better quality sound and larger file size. default is 128000. + - **FLAC (Free Lossless Audio Codec)**: lossless compressed .flac format. good for archival or editing, as it preserves original sound data. + - **Sample rate**: affects the quality of the output file. see above. + - **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **Compression level**: higher levels take slightly longer to pack but yield much better compression. default is 6.0. + - **Vorbis**: lossy compressed .ogg format. better quality sound than MP3 with smaller file size. fairly common support + - **Sample rate**: affects the quality of the output file. see above. + - **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **Quality**: compression rate. higher numbers produce larger files of higher fidelity. default is 8.0. + - **MP3**: lossy compressed .mp3 format. it's the old standard; worst quality for the file size, but it sees the most widespread support and use. + - **Sample rate**: affects the quality of the output file. see above. + - **Channels in file**: default is 2 (stereo). Set to 1 for mono. + - **Bit rate mode**: + - **Constant**: fixed bit rate regardless of content. default. + - **Bit rate**: higher numbers generate better quality sound and larger file size. default is 128000. + - **Variable**: bit rate adapts to the content. generates smaller files for the same quality. + - **Quality**: higher numbers produce larger files of higher fidelity. default is 6.0. + - **Average**: a compromise; the steady bit rate of "constant" with higher quality, but less efficiently compressed than "variable". + - **Bit rate**: higher numbers generate better quality sound and larger file size. default is 128000. - **Loops**: sets the number of times the song will loop. - does not have effect if the song ends with `FFxx` effect. - **Fade out (seconds)**: sets the fade out time when the song is over. diff --git a/doc/2-interface/keyboard.md b/doc/2-interface/keyboard.md index 48f2bcb59..01348f407 100644 --- a/doc/2-interface/keyboard.md +++ b/doc/2-interface/keyboard.md @@ -33,6 +33,7 @@ the keys in the "Global hotkeys" section can be used in any window, although not | Decrease edit step | `Ctrl-Keypad /` | | Toggle edit mode | `Space` | | Metronome | `Ctrl-M` | +| Toggle order lock | — | | Toggle repeat pattern | — | | Follow orders | — | | Follow pattern | — | @@ -75,6 +76,9 @@ the keys in the "Global hotkeys" section can be used in any window, although not | Effect List | — | | Debug Menu | `Ctrl-Shift-D` | | Command Stream Player | — | +| Reference Music Player | — | +| Tuner | — | +| Spectrum | — | | About | — | | Collapse/expand current window | — | | Close current window | `Shift-Escape` | diff --git a/doc/2-interface/menu-bar.md b/doc/2-interface/menu-bar.md index f6c776fde..01ad2bc09 100644 --- a/doc/2-interface/menu-bar.md +++ b/doc/2-interface/menu-bar.md @@ -115,6 +115,8 @@ all these menu items show or hide their associated windows. - **[oscilloscope (per-channel)](../8-advanced/chanosc.md)** - **[oscilloscope (X-Y)](../8-advanced/xyosc.md)** - volume meter + - **[tuner](../8-advanced/tuner.md)** + - **[spectrum](../8-advanced/spectrum.md)** - tempo - **[clock](../8-advanced/clock.md)** - **[grooves](../8-advanced/grooves.md)** @@ -127,6 +129,8 @@ all these menu items show or hide their associated windows. - **[effect list](../3-pattern/effects.md)** - **[play/edit controls](play-edit-controls.md)** - **[piano/input pad](../8-advanced/piano.md)** +- **[reference music player](../8-advanced/refPlayer.md)** +- **[multi-ins setup](../8-advanced/multi-ins.md)** ## help diff --git a/doc/2-interface/play-edit-controls.md b/doc/2-interface/play-edit-controls.md index d35fdb723..733158a26 100644 --- a/doc/2-interface/play-edit-controls.md +++ b/doc/2-interface/play-edit-controls.md @@ -8,10 +8,14 @@ the "Play/Edit Controls" are used to control playback and change parameters of t - ![play repeat](control-play-repeat.png) **Repeat from the beginning of this pattern**: repeats current pattern from its start. - ![step](control-step.png) **Step one row**: plays only the row at cursor position and moves down one. - ![edit](control-edit.png) **Edit**: toggles edit mode. when turned off, you won't be able to enter notes. -- ![lock](control-lock.png) **Lock**: toggles the cursor lock, which keeps the cursor in the currently selected order. +- ![lock](control-lock.png) **Lock**: toggles the order lock, which keeps the cursor in the currently selected order. - ![metronome](control-metronome.png) **Metronome**: toggles the metronome, which only works during playback. - ![repeat](control-repeat.png) **Repeat pattern**: toggles pattern repeat. during playback while this is on, the current pattern will play over and over instead of following the order list. -- **Poly**: turns on polyphony for previewing notes. toggles to **Mono** for monophony (one note at a time only). +- polyphony toggle: cycles through the following options. + - **Mono**: monophony. preview one note at a time only. + - **Poly**: polyphony. preview multiple notes at once, using other channels of the same type on the same chip. default. + - **Chord**: chord input. as polyphony, with the added feature that while keys are held, notes past the first are entered on the same row in adjacent channels. + - some keyboards have limits on the number of keys that can be held at the same time. this is not a Furnace issue. - **Octave**: sets current input octave. - **Edit Step**: sets edit step. if this is 1, entering a note or effect will move to the next row. if this is a larger number, rows will be skipped. if this is 0, the cursor will stay in place. - if clicked, Step becomes **Coarse**, which sets the number of rows moved with `PgUp`, `PgDn`, and related movement shortcuts. clicking again will revert it to Step. diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index d03200e26..fb7804559 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -87,6 +87,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o - **New instruments are blank**: when enabled, adding FM instruments will make them blank (rather than loading the default one). ### Configuration + - **Import**: select an exported `.ini` config file to overwrite current settings. - **Export**: select an `.ini` file to save current settings. - **Factory Reset**: resets all settings to default and purges settings backups. @@ -94,6 +95,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o ### Import - **Use OPL3 instead of OPL2 for S3M import**: changes which system is used for the import of S3M files that contain FM channels. +- **Load sample fine tuning when importing a sample**: as it says. may result in glitches with some samples. ## Audio @@ -103,6 +105,8 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o - SDL: the default one. - JACK: the JACK Audio Connection Kit (low-latency audio server). only appears on Linux, or MacOS compiled with JACK support. - PortAudio: this may or may not perform better than the SDL backend. + - ASIO: Audio Stream Input/Output. extremely low latency, if your system has a driver for it. after selecting it, click "Apply" to see available devices. + - **Control Panel**: opens the ASIO driver's control panel. you must first select a device and click "Apply". - **Driver**: select a different audio driver if you're having problems with the default one. - only appears when Backend is SDL. - **Device**: audio device for playback. @@ -576,6 +580,16 @@ below all the binds, select a key from the dropdown list to add it. it will appe - **Show channel indicators**: chooses whether to show the row "LED" channel indicators in the chip manager. +### Mixer + +- **Mixer layout:** + - **Horizontal**: a horizontal arrangement of tall mixer sliders. + - **Vertical**: a vertical stack of wide mixer sliders. default. +- **Mixer style:** + - **No volume meters** + - **Volume meters separate**: default. + - **Volume meters in volume sliders** + ### Windows - **Rounded window corners** diff --git a/doc/4-instrument/macro-ADSR.png b/doc/4-instrument/macro-ADSR.png index df3ff43fa..ad5c6ef15 100644 Binary files a/doc/4-instrument/macro-ADSR.png and b/doc/4-instrument/macro-ADSR.png differ diff --git a/doc/4-instrument/macro-LFO.png b/doc/4-instrument/macro-LFO.png index 4d9d195d3..480493708 100644 Binary files a/doc/4-instrument/macro-LFO.png and b/doc/4-instrument/macro-LFO.png differ diff --git a/doc/6-sample/README.md b/doc/6-sample/README.md index cd2f5ddbd..cef846130 100644 --- a/doc/6-sample/README.md +++ b/doc/6-sample/README.md @@ -100,19 +100,13 @@ in there, you can modify certain data pertaining to your sample, such as the: - **no BRR filters**: when encoding to BRR, only use a "4-bit mode" with block filter set to 0. - this allows usage of sample offset effects on SNES. - only appears when applicable. - -- **Rate**: switches to normal rate values. -- **Compat Rate**: switches to DefleMask-compatible rate values for sample mapping. - - **use of this is discouraged!** - **Hz**: base frequency of sample played at `C-4`. - **Note**: note corresponding to Hz. -- **Fine**: fine tuning. ranges from -64 to 63, which maps to -1 to almost +1 semitone. - +- **Fine**: fine tuning. ranges from -64 to 63, which maps from -1 to almost +1 semitone. - **Loop**: enable or disable sample loop. only on supported chips. - **Mode**: direction of loop. backward and ping pong loops are only natively available on some chips. -- **Start**: start of loop. -- **End**: end of loop. - +- **Start**: start of loop. if the sample is on a chip that limits loop points to specific values, hovering over this will highlight them in the editor. +- **End**: end of loop. similarly, hovering will highlight valid loop points. - **Chips:** set assignment to chips and sample banks. - sample will only be uploaded to selected chips. - columns correspond to chips in use. @@ -125,17 +119,20 @@ in there, you can modify certain data pertaining to your sample, such as the: - **Resize**: stretches sample. pops up a dialog to type new length. - **Resample**: stretches sample. pops up a dialog box: - **Rate**: new sample rate. + - **Length**: new sample length. + - **Factor**: multiplier of original sample rate. - **0.5x**: halves sample rate. - **==**: returns to original sample rate. - **2.0x**: doubles sample rate. - - **Factor**: multiplier of original sample rate. - **Filter**: selects interpolation filter for resampling. - **Undo**: undoes previous edit. - **Redo**: redoes undone edit. -- **Amplify**: changes amplitude of selection. pops up a dialog to type amount. +- **Amplify/Offset**: pops up a dialog to enter amounts. + - **Volume**: amplifies selection. + - **DC Offset**: shifts selection up (positive values) or down (negative values). - **Normalize**: adjusts amplitude of selection to maximum without clipping. -- **Fade in**: ramp amplitude of selection from 0 to original. -- **Fade in**: ramp amplitude of selection from original to 0. +- **Fade in**: ramps amplitude of selection from 0 to original. +- **Fade in**: ramps amplitude of selection from original to 0. - **Insert silence**: inserts silence. pops up a dialog to type length. - **Apply silence**: reduces amplitude of selection to 0. - **Delete**: removes selection. @@ -173,3 +170,8 @@ in the sample viewer: - **paste (mix)**: mixes the sample clipboard into the existing sample, beginning at the start of the selection. - **set loop to selection**: changes loop region to match selection. - **create wavetable from selection**: copies the selection into a new wavetable entry. + +in the bottom status bar: +- **Select**: set selection start and end positions using the two numeric entry boxes. total selection length will be shown next to them. +- cursor position and sample value. +- loop size in samples and bytes. diff --git a/doc/6-sample/sample-editor.png b/doc/6-sample/sample-editor.png index 7003de69d..6777dec90 100644 Binary files a/doc/6-sample/sample-editor.png and b/doc/6-sample/sample-editor.png differ diff --git a/doc/7-systems/pce.md b/doc/7-systems/pce.md index 26820c169..6c72f9e15 100644 --- a/doc/7-systems/pce.md +++ b/doc/7-systems/pce.md @@ -36,5 +36,5 @@ the following icons are displayed when channel status is enabled in the pattern the following options are available in the Chip Manager window: - **Pseudo-PAL**: run the chip on a PAL clock. such a configuration has (probably) never existed, despite a planned official PAL version of the PC Engine. -- **Disable anti-click**: waveform switching requires a phase reset, which may cause clicks. Furnace uses a wave-position predicting algorithm to minimize these clicks. enable this option to disable it. +- **Disable anti-click**: waveform switching requires a phase reset, which may cause clicks. Furnace uses a wave-position predicting algorithm to minimize these clicks. enable this option to turn off the feature. - **Chip revision**: sets the chip revision. HuC6280A has less pops. diff --git a/doc/7-systems/watarasv.md b/doc/7-systems/watarasv.md index 75364184f..876f996ce 100644 --- a/doc/7-systems/watarasv.md +++ b/doc/7-systems/watarasv.md @@ -15,7 +15,9 @@ this chip uses the [Watara Supervision](../4-instrument/watarasv.md) and [Generi ### sample info -the sample channel is a 4-bit DMA channel with 4 frequencies assigned to sample octaves (C2, C3, C4, C5; C, C#, D, D# in Furnace respectively). max sample size is 4 kilobytes (8192 samples), samples are padded to multiples of 32 samples, and loop points are ignored. +the sample channel is a 4-bit DMA channel with 4 playback frequencies (1953.125, 3906.25, 7812.5, and 15625) assigned to the notes C, C#, D, and D# in all octaves. + +max sample size is 4 kilobytes (8192 samples), samples are padded to multiples of 32 samples, and loop points are ignored. ## chip config diff --git a/doc/8-advanced/channels.md b/doc/8-advanced/channels.md index 53bc00065..ecf19330e 100644 --- a/doc/8-advanced/channels.md +++ b/doc/8-advanced/channels.md @@ -7,7 +7,7 @@ the "Channels" dialog allows manipulation of the song's channels. each channel has the following options: - **Pat**: uncheck the box to hide the channel from the pattern view. pattern data will be kept. - **Osc**: uncheck the box to hide the channel from the per-channel oscilloscope view. -- **Swap**: click and drag to rearrange pattern data throughout the song. +- crossed arrows buttons: click and drag to rearrange pattern data throughout the song. - note: this does **not** move channels around! it only moves the channel's pattern data. - **Name**: the name displayed at the top of each channel in the pattern view. - the next setting is "short name", which is displayed in the orders view and/or when a channel is collapsed. diff --git a/doc/8-advanced/channels.png b/doc/8-advanced/channels.png index 9fc26fde5..fc0cf4ae9 100644 Binary files a/doc/8-advanced/channels.png and b/doc/8-advanced/channels.png differ diff --git a/doc/8-advanced/mixer-mixer.png b/doc/8-advanced/mixer-mixer.png index 01dfdc5c7..198a8f36d 100644 Binary files a/doc/8-advanced/mixer-mixer.png and b/doc/8-advanced/mixer-mixer.png differ diff --git a/doc/8-advanced/mixer-patchbay.png b/doc/8-advanced/mixer-patchbay.png index ff36d9d07..4812c776c 100644 Binary files a/doc/8-advanced/mixer-patchbay.png and b/doc/8-advanced/mixer-patchbay.png differ diff --git a/doc/8-advanced/mixer.md b/doc/8-advanced/mixer.md index 03883e6ad..c18d5de6d 100644 --- a/doc/8-advanced/mixer.md +++ b/doc/8-advanced/mixer.md @@ -4,24 +4,17 @@ the "Mixer" dialog provides options for overall sound mixing. ## "Mixer" tab -![mixer dialog on mixer tab](mixer-mixer.png) +![mixer dialog on mixer tab](mixer-mixer.png) **Master Volume** controls the overall mix. each chip has several options: -- **Invert**: flips the output wave. -- **Volume**: controls the chip's volume relative to other chips. -- **Panning**: left-right sound control. -- **Front/Rear**: front-read sound control. only useful for setups with four or more speakers. +- **invert**: inverts the output wave. +- **volume**: controls the chip's volume relative to other chips. +- **panning**: left-right balance. +- **fade**: front-rear balance. only useful for setups with four or more speakers. -### Mixer-specific settings -- **Mixer layout**: how the mixer is shown. - - **Horizontal**: arranges the "chips" horizontally, with vertical volume sliders. - - **Vertical**: arranges the "chips" vertically, with horizontal volume sliders. -- **Mixer style**: - - **No volume meters**: does not show per-chip volume meters. - - **Volume meters separate**: shows per-chip volume meters below or to the right (depending on the layout) of the volume slider. - - **Volume meters in volume sliders**: shows per-chip volume meters inside the volume sliders. +settings for the mixer display can be found in Settings > Appearance near the bottom. ## "Patchbay" tab diff --git a/doc/8-advanced/multi-ins.md b/doc/8-advanced/multi-ins.md index 30f22c17b..c49e071af 100644 --- a/doc/8-advanced/multi-ins.md +++ b/doc/8-advanced/multi-ins.md @@ -1,11 +1,11 @@ # multi-instrument playback -the instrument list allows you to select more than one instrument by shift-clicking. doing so engages multi-instrument playback mode, where note input will play multiple instruments at once. +the instrument list allows you to select up to 8 instruments by shift-clicking. doing so engages multi-instrument playback mode, where note input will play multiple instruments at once (as channel limits allow). -the following window also appears, allowing you to set the note offset (in semitones) for each instrument: +the following window also appears. -``` -TODO: IMAGE! -``` +![multi-instrument setup](multi-ins.png) -up to 8 instruments can be played at a time. +clicking the arrows will set the note offset (in semitones) for each selected instrument. clicking a column resets it to zero. right-clicking the arrows will change their value by a full octave. + +multi-instrument playback cannot be used while polyphony is set to "Mono". diff --git a/doc/8-advanced/multi-ins.png b/doc/8-advanced/multi-ins.png new file mode 100644 index 000000000..e6d73d15a Binary files /dev/null and b/doc/8-advanced/multi-ins.png differ diff --git a/doc/8-advanced/pattern-manager.png b/doc/8-advanced/pattern-manager.png index 3ac440cb6..7502847a6 100644 Binary files a/doc/8-advanced/pattern-manager.png and b/doc/8-advanced/pattern-manager.png differ diff --git a/doc/8-advanced/piano.md b/doc/8-advanced/piano.md index 302177e0a..a72d25b7e 100644 --- a/doc/8-advanced/piano.md +++ b/doc/8-advanced/piano.md @@ -24,10 +24,25 @@ right-clicking on the piano keys will make the buttons disappear; right-clicking ## options -key layout: +**Key layout:** - **Automatic** - **Standard**: black keys are 2/3 length. - **Continuous**: black keys are full length. +**Value input pad:** +- **Disabled** +- **Replace piano**: replaces the piano with buttons for hexadecimal numeric entry when needed (when the pattern editor's cursor is in a hex column). +- **Split (automatic)**: displays a separate entry pad when needed. +- **Split (always visible)**: always displays the entry pad. + +**Key labels:** +- **Off** +- **Octaves** +- **Notes** +- **Notes (with octave)** +- **Octaves (with C)** +- **Notes + Octaves** + **Share play/edit offset/range**: if disabled, the piano will keep different octave and range values for playback and non-playback states. -**Read-only (can't input notes): prevents note entry. + +**Read-only (can't input notes)**: prevents note entry. diff --git a/doc/8-advanced/refPlayer.md b/doc/8-advanced/refPlayer.md index 6677a3d8a..c567b90ac 100644 --- a/doc/8-advanced/refPlayer.md +++ b/doc/8-advanced/refPlayer.md @@ -1,6 +1,21 @@ # reference music player the Music Player window is a small audio player that can synchronize with the tracker playback. - - + +![reference music player window](reference.png) + +below the time is the playback bar which can be used to scrub through the loaded file. + +below that, from left to right: +- open file: choose an audio file to play. +- cue. + - left click: set the cue position. this attaches the current time in the reference file to the position of the cursor in the pattern editor. + - middle click: jump to the beginning of the reference track. + - right click: opens a numeric entry box to set the cue position (offset between the tracker and the reference). +- play/pause. +- preview. + - left click and hold to play the reference file from the correponding position of the current order. + - right click and hold to play the reference file from the correponding position of the pattern editor's cursor. + - **Sync**: toggles synchronization of reference playback with tracker playback. + - **Mix:**: changes how loud the reference file is compared to the tracker. + \ No newline at end of file diff --git a/doc/8-advanced/reference.png b/doc/8-advanced/reference.png new file mode 100644 index 000000000..5f02893bb Binary files /dev/null and b/doc/8-advanced/reference.png differ diff --git a/doc/8-advanced/spectrum.md b/doc/8-advanced/spectrum.md index 8a315d8dd..f0f44454d 100644 --- a/doc/8-advanced/spectrum.md +++ b/doc/8-advanced/spectrum.md @@ -2,21 +2,16 @@ the Spectrum window shows the frequency spectrum of the audio output. - +![spectrum window](spectrum.png) - -the X scale is in Hertz, and the Y scale is in decibels. +the X axis (horizontal logarithmic scale) is frequency in Hz, and the Y axis (vertical linear scale) is amplitude in decibels. -clicking the threeline button in the top left corner open its configuration. -- **Mono**: whether to mix all the output for a single graph. -- **Bins**: number of bins for the FFT calculation. ---- +clicking the three-line "hamburger" button in the top right corner opens a configuration dialog. +- **Mono**: mix all output together to display a single line. +- **Bins**: number of bins for the FFT calculation. higher numbers increase frequency resolution but decrease temporal resolution (slower response). - **X Zoom**: how much to zoom the X axis. -- **X Offset**: how much to move the X axis. ---- +- **X Offset**: how much to move the X axis horizontally. - **Y Offset**: how much to move the Y axis down. ---- - **Show X Grid**: whether to show the X axis grid lines. - **Show Y Grid**: whether to show the Y axis grid lines. - **Show X Scale**: whether to show the X axis scale. diff --git a/doc/8-advanced/spectrum.png b/doc/8-advanced/spectrum.png new file mode 100644 index 000000000..303b88ba0 Binary files /dev/null and b/doc/8-advanced/spectrum.png differ diff --git a/doc/8-advanced/tuner.md b/doc/8-advanced/tuner.md index 233a09dd0..e8810a89b 100644 --- a/doc/8-advanced/tuner.md +++ b/doc/8-advanced/tuner.md @@ -2,5 +2,10 @@ the Tuner window shows the approximate frequency and note of the audio output. - +![tuner window](tuner.png) + +the meter at the top shows how close the note is to center pitch. + +the center displays the approximate note, followed by the calculated peak frequency in Hz and how far from center pitch it is in cents (hundredths of a semitone). + +the piano keyboard shows the approximate note. \ No newline at end of file diff --git a/doc/8-advanced/tuner.png b/doc/8-advanced/tuner.png new file mode 100644 index 000000000..d31348907 Binary files /dev/null and b/doc/8-advanced/tuner.png differ