Help
What is FFmpeg Audio Studio?
FFmpeg Audio Studio converts audio files from one format to another, using ffmpeg as its engine. You add files, pick a preset, and convert; the result lands next to the originals or in a folder you chose. It reads whatever ffmpeg can decode and writes eighteen formats, from MP3, AAC, FLAC, Opus and Ogg Vorbis to WAV, AIFF, WMA and the iPhone ringtone format.
What sets it apart is that three choices are made separately, each from its own drop-down in the options panel at the right of the window: the preset (what the output is), the tags setting (which tags and cover are kept) and the effects setting (what is done to the sound). One preset can therefore be used with a setting that strips the comments, with another that normalises the volume, or with neither. Tags are also carried from one format to another under the names a tag editor shows, so a field keeps its meaning from FLAC to MP3 to M4A to WMA.
FFmpeg Audio Studio has two views, chosen by the first two buttons of the header. The work view opens first: one file at a time, with its waveform, real playback with the effects applied, a cut, fades and drawers for the sound's channels, equaliser, compressor and level (see The work view). The batch view is for many files at once: the list of files, a header with the file actions, a panel at the right with the choices that shape a run - preset, tags, effects, destination and what to do when a file exists - and, at its foot, the number of conversions at once, Convert and the button that opens the output folder, and a bottom bar with the status line. The rest of this page describes the batch view unless it says otherwise.
- Work: one file at a time shows the work view.
- Batch: convert many files with presets shows the batch view.
The work view
The work view is for one file at a time: you hear what the conversion will sound like, set the cut and the fades by looking at the waveform, and convert from there. Drop an audio file on the empty left side (Drop audio files here to hear or edit them) or choose it from the file list under the waveform; a folder dropped here is ignored. When no file is chosen the area says that nothing can be heard yet.
- Show the file list shows the file list again after a drawer has replaced it.
- Hide the panel under the picture hides the panel under the waveform, and Show the panel under the picture brings it back.
The waveform and playback
The waveform is drawn from the file itself. Playing it runs ffmpeg with the effects you have switched on, so what you hear is what the converted file will sound like, apart from the final encoding. Changing the file or an effect while it plays restarts the sound from where you were. If one effect cannot be heard in the preview it is left out, and the line Left out of the sound names it; the conversion still applies it.
- Play and Pause start and stop the sound.
- Back one second and Forward one second move the position by one second.
- Volume is the loudness you listen at, and Mute and Unmute silence and restore it. It only changes what you hear, never the file.
- Measuring the sound... is shown while an effect that must first listen to the whole file, such as loudness normalisation, measures it.
Cutting
A cut keeps one part of the file. The buttons marked [ and ] set where it starts and where it ends at the position you are at, and a click on the waveform moves the position. The part that is dropped is dimmed. The cut is one setting of the file's effects, so it is written to the converted file and nothing is cut by the preview alone.
- Start the cut here and End the cut here set the start and the end of the cut.
- Go to the start of the cut and Go to the end of the cut move the position to the start and to the end of the cut.
- Keep the whole file takes the cut away and keeps the whole file.
- Duration is the length of what will be written, after the cut.
Fades
A fade in and a fade out are the two handles on the waveform, one at each end of the kept part. Drag a handle to lengthen or shorten its fade, or type the seconds in the number boxes under the waveform. A fade stays inside the kept part, and the two fades never overlap. A fade of zero seconds is no fade.
The drawers
Under the waveform a row of buttons chooses what the panel shows: the file list, or one drawer at a time. Each drawer is a control for one effect, and using it switches that effect on in the work view's list, so what you set is heard at once and is written to the file.
- The channels drawer shows tiles that name a way of handling the channels: swapping left and right, playing one side on both, mixing both into one channel, and mixing down to stereo. A file's channels are not part of a preset: they are this effect, so a file is changed only when you pick a tile. A preset from an earlier version that carried a channel choice is converted to this effect when the app first starts.
- The equaliser drawer draws the ten bands as one curve on a graph, with the frequency across and the gain up and down.
- The compressor drawer draws the compressor's two controls as its curve: the level that comes out for every level that goes in.
- The level drawer offers the four ways to set the volume - a fixed gain, a loudness, a peak or ReplayGain - and one is used at a time: choosing another replaces the first. Each number of the chosen way is a fader you drag.
The effects list of the work view
The work view's own list, Audio Effects, is under the waveform. It is not one of the saved effects entries of the batch view: it belongs to the work view, and what it holds is what the preview plays and what the conversion applies. The standard effects are always there as rows with a switch, in a fixed order, so you can try one by switching it on and off; the other effects are added from Add an effect, as in Adding an effect.
Beside it the work view has its own choices for the file: the preset Audio, the tags setting (Tags), Destination and If it exists, which work as described in the sections on presets, tags and destinations.
- Effects listed in the work view on the ffmpeg tab of Settings chooses which effects the list shows ready to switch on; the rest stay in the Add an effect menu. An effect the app is built around is always listed. Back to the standard list goes back to the standard list.
The ffmpeg command
A panel under the file list shows the exact ffmpeg command the selected file will be converted with, effects and cut included, so you can read it, or run it yourself. When no file is selected it says so.
- ffmpeg command is the panel, and Copy copies the command to the clipboard.
Adding files
Build the list of files to convert by picking files, picking a whole folder, or dropping them on the window. Every row shows the picture embedded in the file as a small thumbnail, or a music note when there is none.
- Add files opens a file picker. Only audio files ffmpeg can read are offered.
- Add folder adds a folder; the audio files in it and in every folder below it are found. The folder's name is remembered so the structure can be rebuilt in the destination (see Destinations).
- Clear the list empties the list of every row that is not being converted.
- Remove from the list is the button of a single row; while a row is being converted, the same button cancels it instead.
The list
A file is added once; adding the same file again does nothing. A row that is Done, Skipped, Failed or Cancelled stays in the list and is converted again, with its own settings, the next time you press convert.
Every file carries its own settings - its preset, tags setting, effects setting, destination and what to do if the file exists. A file you add takes the choices the options panel shows at that moment, and only the newly added files are selected afterwards. The panel is a brush: it never shows the choices of a row, and selecting rows never changes it. To give other files different choices, select them, set the panel, and press Apply: it writes all of the panel's choices onto the selected rows that are not queued or running, and it is off while nothing is selected. Select with a click, Ctrl (or Cmd) and click to add or remove a row, Shift and click for a range from the last click, or Ctrl+A for every row; a click on the empty part of the list clears the selection. The bottom bar says how many rows are selected.
Each row shows one small chip per choice - the preset, the tags setting, the effects setting, the destination and the if-exists policy. A choice that leaves everything as it is is left out, so a plain row shows only its preset.
- Apply applies the panel's choices to the selected files.
Converting
Press convert to run every row that is not already queued or running. Each file is its own job, so one failure never stops the others, and a row that failed says why.
- Convert converts every row that is not queued or running, each with its own settings (see The list). A row whose own choices would only re-encode it as it is has nothing to do and is left out.
- Stop appears while a run is going and cancels every file that is queued or converting; a partly written output is removed.
- Cancel on a row cancels that one file.
What a row's badge says
A row moves through its states in order, and the badge shows the one it is in.
- Queued waits for a free place.
- Reading is the file being examined.
- Analysing followed by a percentage is the file being read before it is converted, because an effect needs numbers from it (where the sound starts and stops, how loud it is); it only appears then. The conversion that follows is measured against the length of the output, so a trimmed file still reaches one hundred percent.
- A percentage is the conversion itself, measured against the length the output will have.
- Done finished; the row also shows where the file went.
- Skipped the output already existed and the destination says to skip it.
- Failed something went wrong; the reason is shown on the row.
- Cancelled you stopped it.
The status line at the bottom left says how many files are ready before a run, how many are processed during it, and afterwards the result: how many were converted, skipped and failed.
Files at the same time
The number next to Convert, in the last row of the options panel, chooses how many files are converted at once, from one up to the number of physical cores of the machine, which is also the default. Encoding is limited by the processor, so more processes than cores only compete for the same core and the same disk: on an eight-core, sixteen-thread machine sixteen at once measured slower than eight, so nothing above the physical cores is offered. Lower it when the computer must stay responsive.
- Files converted at the same time is its name when you hover over it.
When convert is greyed out
Convert is off when no row has anything to do: for every row, its preset, tags setting and effects setting together would change nothing - the preset is (Original), the tags setting removes no tag and no cover, and no effect is selected. Converting would only re-encode each file, which loses quality for nothing. Apply another preset, a tags setting that removes something, or an effect to some rows, and it comes back. It is also off while no file is listed, while a run is going, and when ffmpeg was not found.
Presets: the format and its quality
A preset says what the output is: the format, how good it is, and the options that format has. It is chosen in the first drop-down of the options panel and edited on the Presets tab of Settings, which the button next to the drop-down opens.
- Edit presets opens the Presets tab.
- New, Duplicate and Delete add a preset, copy the selected one and delete it. There is always at least one preset.
- A preset is moved by dragging its row; the same order is used in the panel's drop-down.
A preset
A fresh install comes with a set of ready presets (MP3 at 128, 192 and variable high, AAC, Opus, WMA, AC-3, an iPhone ringtone, Ogg Vorbis, FLAC, WAV 16-bit and AIFF 16-bit). They are ordinary presets: rename, edit or delete them. An iPhone ringtone is cut to 40 seconds, the longest iOS accepts.
- Name is the name shown in the drop-down.
- Format is the output format. The options below follow it: a format only shows the controls it actually has.
Quality
Every format has one main quality setting, a number field with its unit beside it, and its meaning follows the format: a bitrate in kbps for MP3, AAC, Opus, WMA and AC-3; a variable-quality level for Ogg Vorbis and variable MP3; a compression level for FLAC and WavPack, which changes only how long encoding takes and how small the file is, never the sound. WAV has no quality setting. A higher bitrate or level means a larger, better-sounding file.
- Bitrate mode (MP3 and Ogg Vorbis) chooses how the encoder spends its bits: Constant is the same bitrate throughout, Variable follows the music for a better size-to-quality ratio, and Average (ABR) (MP3 only) aims at an average.
- Bitrate is the bitrate for the constant and average modes.
- Quality level is the level for the variable mode.
- Compression is the compression level of FLAC and WavPack.
Sample rate and bit depth
These describe the shape of the audio. Left on keeping the source, the output has the same values as the input; changing them resamples. Only the values a format accepts are offered. The channels (swapping, one side on both, mixing down to mono or stereo) are a sound effect, in the Audio Effects list.
- Sample rate is how many samples per second the output has.
- Bit depth is the size of a sample for the formats that have one (FLAC, ALAC, WAV, AIFF and a few others).
Dither
When a 24-bit recording is made 16 bit, the samples are rounded and the rounding leaves a faint distortion that is audible on quiet passages. Dither adds a very small amount of noise first, which turns that distortion into a steady hiss far below the music. Plain rounding is the default and is fine for most music; dither is for quiet, high-resolution masters. It is never applied to a 24-bit output.
- Dither (when the output is 16 bit) appears when the output is 16 bit.
The ID3 tag version
MP3, AIFF and WAV outputs carry an ID3 tag, in version 2.3 or 2.4. Version 2.3 is read by every player and is what Mp3tag writes by default; 2.4 is newer and stores text as UTF-8. Both keep a repeated field as separate values. Leave it on 2.3 unless something needs 2.4.
- ID3 tag version chooses the version.
Advanced options
Below the usual controls a collapsed section holds the switches an encoder has beyond its quality setting. Left alone, the encoder decides, and a preset that never opens the section produces the same file as before. Leave them alone unless you know what you are after.
- Advanced options is the section; each entry is Automatic until you set it.
- MP3: Joint stereo, Encoder quality (0 best, 9 fastest), Low-pass filter (Hz), High-pass filter (Hz), Use the bit reservoir, Set the copyright flag and Set the original flag.
- Ogg Vorbis: Minimum bitrate (kbps) and Maximum bitrate (kbps) switch it to a bitrate-targeted mode.
- Opus: Optimise for (music, voice, or low delay), Bitrate mode, Frame size, Complexity (0 to 10), Bandwidth and Intensity-stereo phase inversion.
- FLAC: Block size, Stereo mode, Maximum LPC order, LPC coefficient precision, Minimum partition order, Maximum partition order and Exhaustive model search.
- AAC: Bandwidth limit (Hz) limits the highest frequency kept.
(Original)
The first choice of the preset drop-down is not a preset: (Original) converts each file to the format that keeps its own audio codec, at the bitrate it had. It is for jobs where only the tags or the sound should change, not the format. A codec that no output format holds (APE, for instance) fails that one file, with a message on its row. It cannot be edited or deleted.
Destinations: where the files go
A destination is a folder plus a pattern that names the files, chosen in the options panel and edited on the Destinations tab of Settings.
- Edit destinations opens the Destinations tab.
- Where the converted files are written is the destination drop-down of the options panel.
- Name is the name shown in the drop-down.
- Folder is where the files are written, and Browse picks it. A relative folder such as
convert,.\convertor..\convertis counted from the folder of each file:.\convertis aconvertfolder beside the file,..\convertone beside its folder, so a single entry serves files that sit in many folders. The folder structure is not kept then, because the folders the files sit in already are the structure. A full path such asD:\Outis one place for every file.
Source Folder
The first entry, Source Folder, is built in: each output is written next to its original and keeps its name, with the new extension. It needs no folder and cannot be edited.
File name pattern
The pattern names each output from the tags of its own file. Click a tag to add it; a slash makes a sub-folder. The tags are the name of the original file, the title, the artist, the album artist, the album, the track number, the disc number, the year and the genre.
- File name pattern is the pattern. A tag the file lacks makes an empty part that is dropped, except that a missing artist or album reads "Unknown Artist" or "Unknown Album" and a missing title falls back to the original file name.
- Example shows what a made-up file would be called, so you can check a pattern before using it.
A pattern of artist, then album, then track and title with a dash between them puts a track tagged Björk, Homogenic, 3, "Jóga" at Björk/Homogenic/03 - Jóga.mp3; the track number is padded to two digits, and characters a file system forbids are replaced.
Keep the folder structure
When a folder is added, its sub-folders can be rebuilt under the destination, which keeps an album tree an album tree. The added folder's own name is kept too, so two added folders stay two folders. A file added on its own has no folder to keep.
- Keep the folder structure when converting a folder is on by default.
If the file exists
What happens when an output with that name is already there. An output is never the input file itself.
- What to do when the output file already exists is the drop-down in the options panel.
- Skip it (the default) leaves the existing file and marks the row Skipped.
- Overwrite it replaces it.
- Keep both writes the new file beside it under a numbered name,
name (2).mp3.
Open the output folder
- Open the output folder opens the folder of the newest finished file, and before anything is finished the destination's own folder.
Tags: what is kept and what is removed
Tags are the title, artist, album, year, track number and the rest that travel inside a file, along with its cover picture. The tags setting decides which of them reach the output. It is chosen in the second drop-down of the options panel and edited on the Tags tab of Settings; the encoding and the metadata to drop are chosen independently, so one preset serves both.
- Tags is the drop-down.
- Edit tags opens the Tags tab.
- Name is the name of an entry.
- Entries are added, copied, deleted and dragged into order the way presets are.
Keep all, or delete all
An entry has a mode and a list of exceptions.
- Keep all tags keeps every tag; the list holds the ones to delete (Exceptions: tags to delete).
- Delete all tags deletes every tag; the list holds the ones to keep (Exceptions: tags to keep).
- Tags is the choice between them.
A fresh install has one entry, Keep all tags, with an empty list. To strip a noisy field, keep the default mode and list it; to keep only the basics, switch to deleting everything and list TITLE, ARTIST, ALBUM and TRACK.
Naming the tags
Write one name per line, or separated by a semicolon, as your tag editor shows it. Names are not case sensitive and an asterisk matches any text, so REPLAYGAIN_* matches every ReplayGain field. A name matches however a format spells the field: the editor's name (ENCODERSETTINGS), the ID3 frame id (TSSE), the Vorbis name, or the description of a custom field. While you type, the known field names that fit are offered under the box; click one to use it. Any name is accepted, offered or not.
The cover picture
A picture is not a tag name, so it has a switch of its own, and a mode that deletes all tags never touches it.
- Remove the cover picture leaves the cover out of the output.
Lyrics
Lyrics are a tag like any other, and they come in two kinds: plain text, and timed lyrics, whose lines start with a time such as [01:23.45]. A FLAC keeps both in one lyrics field, so FFmpeg Audio Studio reads the text: it is timed when at least two lines start with a time. An MP3, an AIFF file or the ID3 part of a WAV has a frame for each kind - SYLT for timed lyrics, USLT for plain text - and a timed lyric held in a SYLT frame in the source is carried over as .lrc text, so it survives a conversion to any format.
- Embed the .lrc file as the lyrics takes the
.lrcfile with the same name that sits beside the source file and makes its text the lyrics of the new file. It replaces any lyrics the source already has, and a tag entry that deletes the lyrics cannot take it away. - Lyrics in the tag chooses which frames an ID3 output gets: Automatic (timed lyrics as SYLT, plain as USLT) writes one frame chosen by the text, Both frames (USLT and SYLT) writes both, Always USLT and Always SYLT write that one whatever the text (a plain text gets every line at time zero in a
SYLT). It does nothing for the other formats, which keep the text in their own lyrics field. - Remove the times when writing USLT takes the times out of the text of every
USLTframe written; aSYLTkeeps its times.
How tags travel between formats
ffmpeg alone would rename the fields it does not know and drop some others. FFmpeg Audio Studio writes each field under the name a tag editor uses for that format, so the album artist, the sort fields, the composer, the BPM, the lyrics, the ISRC and custom fields keep their meaning from format to format. Fields with several values keep them as separate values, a track or disc number is written with its total (3/10) in the formats that do so, a year that a tag stored badly is not lost, and a field that a source spells two ways with two different values (a PUBLISHER and an ORGANIZATION) keeps both: the second stays as a field of its own rather than being overwritten. The cover goes along to every format that can hold one; the exceptions are FLAC in Ogg, the iPhone ringtone and AU, which carry none. Raw streams (AC-3, raw AAC, MP2, Wave64) hold no tags and no cover at all.
(None)
The first choice of the tags drop-down, (None), is not an entry: it keeps every tag and the cover with no exception. It cannot be edited or deleted.
Effects: what is done to the sound
An effects entry is a named list of things done to the sound while it is converted. The list is called Audio Effects here and in the work view. It is chosen in the options panel, apart from the preset, so one entry can go with any preset, and it is edited on the Audio Effects tab of Settings.
- Edit effects opens the effects tab.
- New, Duplicate and Delete make, copy and remove an entry; dragging a row changes the order of the list.
- Name is the name of an entry.
- Add an effect adds an effect to the entry (see Adding an effect).
- Close every effect closes every card of the entry, and the same button opens them again (Open every effect).
- Drag to change when this effect runs is the grip on the left of a card; Remove this effect removes the effect from the entry.
- Back to the default is the button beside a setting that puts it back to its default.
An effects entry
An effect is on while it is in the list, and off when you remove it; there is no separate switch. The same effect can be in the list more than once, each time with its own settings. On the page each effect is a card: a header that stays visible when the card is closed (the grip, the name of the effect, the button that removes it) and the settings below it. Under the settings the card shows the ffmpeg command it writes, so you can see exactly what will run.
Adding an effect
Add an effect is a category button joined to a search box. The category button offers All or one category and narrows the menu to it; typing in the search box narrows it by name. Choosing an effect adds it at the end of the list with its default values, and you drag it to the place you want. Besides the effects made for the app, the menu offers ffmpeg's own filters, each with the options ffmpeg gives it.
The order the effects run in
The effects run from the top of the list to the bottom, in the order you put them, so dragging a card can change the result. A few steps are placed by the app wherever they are in the list, because they must see the file at a certain point: for example the cut of a file, or the size limit. When an order cannot give the result you expect, because an effect counts on something that a later one changes, a line under the cards says so. The app never reorders your list.
All the effects
These are the effects the app offers, by category, with what each one does. The names and the sentences come from the effects catalogue that is installed together with ffmpeg, so they follow the version of ffmpeg you have; until ffmpeg is installed, the effects tab says that the effects are not installed yet.
Time and frames - Frame tricks: time-lapse, smooth motion, padding
- Play backwards: Run the clip from its end to its start, sound included. The whole clip is held in memory.
Volume and dynamics - Louder, quieter, even out, compress, limit, gate, normalise
- Audio contrast: Make the sound punchier by expanding or compressing its dynamics lightly.
- Compressor: Everything above a level is lowered by a ratio, so the loud and the quiet parts get closer.
- Compressor / expander: Compress or expand the dynamics with a transfer curve you set.
- Dynamic equaliser: An equaliser whose gain follows the level of the sound.
- Dynamic normaliser: Even out the level over time, quiet and loud parts alike.
- Dynamic smoothing: Smooth sudden jumps in the sound.
- Limiter: Stop the sound going above a level without hard clipping.
- Loudness normaliser: Bring the sound to a standard loudness (EBU R128).
- Multiband compressor: Compress each frequency band on its own.
- Noise gate: Silence the sound when it falls below a level.
- Psychoacoustic clipper: Clip loud peaks in a way the ear notices less.
- ReplayGain: write tags: Write the track gain and peak of the new file as tags; the sound is untouched.
- Shift the DC level: Move the whole waveform up or down.
- Soft clipper: Round off peaks gently instead of cutting them.
- Spectral dynamic range control: Control the level of each frequency band separately.
- Speech normaliser: Bring speech to an even level.
- Volume: Make the sound louder or quieter.
- Volume: apply ReplayGain: Apply the ReplayGain gain of the track (or of the album) to the sound itself, with a limiter.
- Volume: fixed gain: Make the sound louder or quieter by a fixed amount, with a limiter.
- Volume: normalise to a loudness: Bring the loudness of the part that is kept to a target, with a limiter so the gain cannot clip.
- Volume: normalise to a peak: Bring the highest sample to a target level.
Equaliser and filters - Bass, treble, keep or cut a range of frequencies
- 18-band equaliser: An equaliser with 18 fixed bands.
- All-pass filter: Change the phase of the sound without changing its loudness.
- Band-pass filter: Keep a band of frequencies and remove the rest.
- Band-reject filter: Remove one band of frequencies, for example a hum.
- Bass: Boost or cut the low frequencies.
- Biquad filter from coefficients: Apply a two-pole, two-zero filter you give as numbers.
- Boost the bass: Add subwoofer-range frequencies.
- Cut the sub-bass: Remove the lowest frequencies.
- Cut very high frequencies: Remove frequencies above the range of hearing.
- Emphasis (RIAA and others): Apply or undo a recording emphasis curve such as RIAA.
- Equaliser (one band): Boost or cut one band of frequencies.
- Equaliser (ten bands): A gain for each octave band, from 31 Hz to 16 kHz.
- FIR equaliser: A precise equaliser with a curve you describe.
- Frequency shift: Move every frequency up or down by a fixed amount.
- Frequency-domain expression filter: Change the sound with formulas applied to its frequencies.
- High shelf: Boost or cut everything above a frequency.
- High-order band-pass: Keep one frequency band with a very steep filter.
- High-order band-stop: Remove one frequency band with a very steep filter.
- High-pass filter: Remove the frequencies below a limit: rumble, hum.
- IIR filter from coefficients: Apply an infinite impulse response filter you give as numbers.
- Low shelf: Boost or cut everything below a frequency.
- Low-pass filter: Remove the frequencies above a limit: hiss.
- Parametric equaliser: Many-band equaliser with its own curve per channel.
- Phase shift: Shift the phase of all frequencies.
- Sound derivative: Compute the rate of change of the sound, a signal-processing tool.
- Sound from an expression: Rewrite each sample of the sound with a formula.
- Sound integral: Compute the running sum of the sound, a signal-processing tool.
- Spectral tilt: Tilt the balance between low and high frequencies.
- Tilt shelf: A shelf filter that tilts the whole frequency balance.
- Treble: Boost or cut the high frequencies.
Noise and repair - Hiss, clicks, clipping, hum, sibilance
- De-esser: Soften harsh s sounds in speech.
- Decode HDCD: Decode High Definition Compatible Digital discs.
- Denoise (FFT): Reduce steady noise such as hiss using frequency analysis.
- Denoise (non-local means): Reduce broadband noise with a patch-matching method.
- Denoise (wavelets): Reduce noise using wavelets.
- Denoise speech (neural network): Reduce noise in speech with a trained neural network.
- Remove clicks: Take out short clicks and pops, as from old records.
- Repair clipping: Restore peaks that were cut off by too high a level.
Time and pitch - Fade, speed, pitch, cut, loop, silence
- Change the rate without resampling: Play the same samples at another rate: pitch and speed change together.
- Change the speed, keep the pitch: Make the sound faster or slower without changing its pitch.
- Cut the sound: Keep one section of the sound and drop the rest.
- Delay channels: Delay one or more channels by a number of milliseconds.
- Distance delay: Delay the sound as if it travelled a distance, to line up speakers.
- Fade: Fade the sound in from silence at the start of the part that is kept, and out to silence at its end. Each length is in seconds; 0 leaves that end as it is.
- Fade in or out: Fade the sound in or out over a chosen time.
- Keep a range: Keep only the part between two times, counted on what the effects above it left.
- Limit the duration: Keep at most this many seconds from the start.
- Loop the sound: Repeat a section of the sound.
- Pad with silence: Add silence at the end, for a fixed length or a number of samples.
- Remove silence: Cut out silent stretches.
- Resample: Change the sample rate of the sound.
- Silence at the end: Cut the song where its trailing silence begins and leave exactly this much silence after it, so an LP plays as separate tracks.
- Time-stretch and pitch-shift: Change the speed and the pitch independently, with high quality.
- Trim silence at the ends: Cut the silence before the sound starts and after it stops - never silence inside the song.
Stereo and channels - Widen, pan, mix channels, headphones, surround
- Channels: Swap left and right, play one channel on both sides, mix both into one, or mix any layout down to stereo.
- Decorrelate channels: Make the channels less alike, which widens the sound.
- Dialogue enhancer: Make speech stand out in a film mix.
- Extra stereo: Increase the difference between left and right.
- Haas stereo enhancer: Widen the sound with a tiny delay between the sides.
- Headphone crossfeed: Mix a little of each side into the other to ease headphone listening.
- Headphone stereo widening: Make the stereo image wider, tuned for headphones.
- Mix channels: Remix channels with your own coefficients: stereo to mono, swap sides.
- Remap channels: Move channels to other positions.
- Stereo tools: Balance, mid and side levels, mute, phase and more in one filter.
- Upmix to surround: Spread a stereo sound over a surround layout.
- Widen the stereo: Make the stereo image wider with a delayed feedback.
Sound effects - Echo, chorus, phaser, tremolo, distortion
- Bit crusher: Reduce the sound's bit depth for a lo-fi, crunchy effect.
- Chorus: Thicken the sound with slightly detuned copies.
- Crystalizer: Sharpen the sound by exaggerating its changes.
- Echo: Add one or more echoes to the sound.
- Exciter: Add brightness by enhancing the high frequencies.
- Flanger: Add a sweeping, jet-like effect.
- Phaser: Add a sweeping phasing effect.
- Pulsator: Make the level pulse, with the stereo sides taking turns.
- Tremolo: Make the level wobble.
- Vibrato: Make the pitch wobble.
- Virtual bass: Make small speakers seem to play deeper notes.
No effects
The first choice of the effects drop-down, No effects, is not an entry: it does nothing. It cannot be edited or deleted.
The window: language, theme, notifications, news
The gear in the header opens Settings, which holds the Presets, Effects, Tags and Destinations tabs described above, and the tabs of the window itself.
- Open settings opens Settings.
- Language is the language of the window.
- Theme is Light or Dark.
- Show news from yaiol is on by default and covers the announcements described below.
- ffmpeg shows which ffmpeg is installed and the latest one yaiol offers. Download ffmpeg installs it, and Update replaces it with the latest; see ffmpeg, the conversion engine.
ffmpeg, the conversion engine
FFmpeg Audio Studio does not ship ffmpeg and never uses the one that happens to be on your PATH. It downloads the build yaiol approves, checks it and installs it into a folder shared by all yaiol apps, so a second app that needs it finds it already there. Until it is installed nothing can be converted: the status line says so and Download ffmpeg starts the download, with a progress readout. The effects menu is also empty until then, because the effects come with ffmpeg.
On the General tab of Settings, ffmpeg states the installed version and, after asking yaiol, the latest one. When they differ, Update downloads and installs the newer build; if yaiol cannot be reached, the line says so and you can try again later.
The notice when a run ends
When nothing is queued or converting any more, one operating-system notice says how many files were converted, skipped and failed. A run that was only cancelled shows none. It appears whether or not the window has focus.
- Show notification when conversion is finished on the Notifications tab turns it off.
A new version, and news
On launch the app asks whether a newer version exists and, if so, opens a small news dialog whose first card says New version available with the version, lists what is new in every release since the one you run, and offers Download. It only notifies: nothing is installed by itself, and a failed check is silent. The same dialog carries occasional announcements from yaiol, one card at a time.
- Don't show again keeps that card from coming back; for the new-version card, until an even newer version ships.
- Close closes the dialog for this run.
- Show news from yaiol in Settings turns the announcements off, and none is requested. The new-version card does not depend on it.
The command line
Next to FFmpeg Audio Studio the installer puts a small program, yac (yaiol audio converter), that does the same conversion from a terminal. It reads the same saved presets, tag settings, effects and destinations as the window, so a preset made in the window is a preset on the command line, and the files it writes are the same.
yac -p "MP3 320 kbps" -d Export Music/
yac -p FLAC -t Clean -o D:/Converted Album/
yac --list
- Give it files and folders; a folder is searched, with its sub-folders.
-pnames a saved preset (originalkeeps each file's own format),-ta saved tag setting,-ea saved effects entry and-da saved destination. A name is matched without regard to case, and the id works too.- Left out,
-tand-emean nothing is changed: every tag and the cover are kept, no effect is applied, whatever the window has selected. Left out,-pand-dare the window's current choice. -owrites into a folder. Together with-dit is that destination's file-name pattern and folder structure, written into that folder.-jis how many conversions run at once, up to the machine's physical cores,--overwriteisskip,overwriteorrename, and-qprints only failures and the summary.--listshows what each of these can name, with the window's current choice marked.- If ffmpeg is not installed yet, it says so and stops: open the app once and it installs ffmpeg by itself.
It prints one line per file and the same summary as the window, such as 3 converted · 1 skipped · 2 failed. The exit code is 0 when nothing failed, 1 when a file failed and 2 for a mistake in the command, so a script can wait for it and act on the result.
To run it from any terminal, tick the last option of the installer, which adds its folder to your PATH, or call it by its full path in the install folder. The option is off by default and only changes your own PATH.
Technical reference
Facts for anyone who needs to know exactly which name a field gets in which format. None of it is needed to use the app. The tables below are generated from the table the app itself uses, so they cannot drift from it.
Field names by tag standard
One row per field, one column per standard. Each cell is the name the field has there: an ID3 frame id, an MP4 atom, a WMA attribute, a Vorbis comment or APE item name, or a WAV INFO id. A dash means the standard has no name of its own for the field; the app then keeps it as a custom field, under the field's own name, so the value is not lost.
Field ID3v2.3 ID3v2.4 MP4 atom WMA attribute Vorbis / APE WAV INFO
--------------- ------- ------- -------- -------------------------- --------------- --------
ALBUM TALB TALB ©alb WM/AlbumTitle ALBUM IPRD
ALBUMSORT TSOA TSOA soal WM/AlbumSortOrder ALBUMSORT -
ALBUMARTIST TPE2 TPE2 aART WM/AlbumArtist ALBUMARTIST -
ALBUMARTISTSORT TSO2 TSO2 soaa - ALBUMARTISTSORT -
ARTIST TPE1 TPE1 ©ART Author ARTIST IART
ARTISTSORT TSOP TSOP soar WM/ArtistSortOrder ARTISTSORT -
BPM TBPM TBPM tmpo WM/BeatsPerMinute BPM -
COMMENT COMM COMM ©cmt Description COMMENT ICMT
COMPILATION TCMP TCMP cpil - COMPILATION -
COMPOSER TCOM TCOM ©wrt WM/Composer COMPOSER -
COMPOSERSORT TSOC TSOC soco - COMPOSERSORT -
CONDUCTOR TPE3 TPE3 ©con WM/Conductor CONDUCTOR -
CONTENTGROUP TIT1 TIT1 ©grp WM/ContentGroupDescription CONTENTGROUP -
COPYRIGHT TCOP TCOP cprt Copyright COPYRIGHT ICOP
DISCNUMBER TPOS TPOS disk WM/PartOfSet DISCNUMBER -
ENCODEDBY TENC TENC ©enc WM/EncodedBy ENCODEDBY -
ENCODERSETTINGS TSSE TSSE - WM/EncodingSettings ENCODERSETTINGS -
GENRE TCON TCON ©gen WM/Genre GENRE IGNR
INITIALKEY TKEY TKEY - WM/InitialKey INITIALKEY -
ISRC TSRC TSRC - WM/ISRC ISRC -
LANGUAGE TLAN TLAN - WM/Language LANGUAGE ILNG
LYRICIST TEXT TEXT - WM/Writer LYRICIST -
MEDIATYPE TMED TMED - - MEDIATYPE -
MIXARTIST TPE4 TPE4 - - MIXARTIST -
MOOD - TMOO - WM/Mood MOOD -
ORIGALBUM TOAL TOAL - WM/OriginalAlbumTitle ORIGALBUM -
ORIGARTIST TOPE TOPE - WM/OriginalArtist ORIGARTIST -
ORIGLYRICIST TOLY TOLY - WM/OriginalLyricist ORIGLYRICIST -
ORIGYEAR TORY - - WM/OriginalReleaseYear ORIGYEAR -
PUBLISHER TPUB TPUB ©pub WM/Publisher PUBLISHER -
SUBTITLE TIT3 TIT3 - WM/SubTitle SUBTITLE -
TITLE TIT2 TIT2 ©nam Title TITLE INAM
TITLESORT TSOT TSOT sonm WM/TitleSortOrder TITLESORT -
TRACK TRCK TRCK trkn WM/TrackNumber TRACKNUMBER IPRT
UNSYNCEDLYRICS USLT USLT ©lyr WM/Lyrics UNSYNCEDLYRICS -
YEAR TYER TDRC ©day WM/Year DATE ICRD
Which standard each format uses
Every output format writes its tags as one of the standards above. The last column says which column of the table above names the fields there.
Format Extension Tags are written as Names from
--------------------- --------- ----------------------------------------------------------- ------------------------
AAC (M4A) .m4a MP4 atoms MP4 atom column
AAC (raw ADTS) .aac none (a raw stream) -
AC-3 .ac3 none (a raw stream) -
AIFF .aiff an ID3v2.3 or v2.4 chunk (the preset) ID3 columns
ALAC (M4A) .m4a MP4 atoms MP4 atom column
AU .au an annotation field: title, artist and album only -
FLAC .flac Vorbis comments Vorbis / APE column
FLAC in Ogg .oga Vorbis comments Vorbis / APE column
M4R (iPhone ringtone) .m4r MP4 atoms MP4 atom column
MP2 .mp2 none (a raw stream) -
MP3 .mp3 ID3v2.3 or v2.4 (the preset) ID3 columns
Ogg Vorbis .ogg Vorbis comments Vorbis / APE column
Opus .opus Vorbis comments Vorbis / APE column
TTA .tta APEv2 tag Vorbis / APE column
WAV .wav an ID3v2.3 or v2.4 chunk (the preset), and a RIFF INFO list ID3 columns; INFO column
Wave64 .w64 none (a raw stream) -
WavPack .wv APEv2 tag Vorbis / APE column
WMA .wma WMA attributes WMA column
Notes
- Fields without a name of their own are kept as custom fields: a TXXX frame in ID3, a free-form atom (
----:com.apple.iTunes:NAME) in M4A, an item of the same name in a Vorbis or APE tag, an attribute of the same name in WMA. - One ID3 version without a name. ID3v2.3 has no mood frame, and ID3v2.4 keeps the original release as a timestamp (TDOR) rather than a text frame, so those two cells are dashes and the value is kept as a custom field in that version.
- The date. ID3v2.3 stores a date as the year (TYER) and a day and month (TDAT); ID3v2.4 has one timestamp (TDRC). A Vorbis or APE tag keeps it as DATE.
- Track and disc numbers. The total is part of the number in ID3 and MP4 (3/10); a Vorbis tag keeps TRACKNUMBER and TRACKTOTAL as two fields.
- WAV INFO. Only the ids with a name in the last column are carried; an id without one is dropped, because the same value is in the ID3 chunk when a tagger wrote one.
- Sort fields and the conductor. Names such as ALBUMSORT and CONDUCTOR are written the same way in every Vorbis output; a conductor read from an ID3 TPE3 frame is written as CONDUCTOR, not PERFORMER.
- Covers. A cover is carried by every format that writes tags except FLAC in Ogg, the iPhone ringtone and AU; the raw streams hold none.