Viena window

Viena main window

The main window is divided into three parts: A, B, C, and D

A: This is a "tree view" showing the contents of one SoundFont loaded into memory. You can have up to four SoundFonts loaded at the same time and switch bewteen each of them by selecting them from the list juts above the tree view. There is also an option to show two SoundFont trees side by side in order to make it easy to compare them and to drag items from one to the other. To open a SoundFont into an empty slot, at first select the slot and then use either the Open File button or drag a file from the Folders, Files in D (see below).

B: This displays various items depending on what you have selected in A. If you have selected an Audio Sample you will see the Wave Editor. If you have selected a Preset (like in this image) B will by default show a virtual keyboard and the key and velocity ranges for the Layers of the Preset. These are shown as gray blocks, with zero velocity at the bottom and maximum velocity at the top. The Preset in this example contains six Layers (there is also a mandatory Global layer that can be empty). If you then select a Layer, the Layer generator table will be displayed. This table has all Layers listed side by side for easy navigation, comparing and editing of generators. You can edit the Layer data directly in this table

C: Here you have two tabs. One contains a list of favorite folders and SF2 files and the other tab is a Preset Cache. Here you can store, for easy retrieval, your favorite presets. Note, that this is merely a file reference, so if you move the file, the cached preset item will be invalid

D: The main toolbar with the most useful buttons.

NOTE: There are multiple Visual Themes to choose from.

Go to View and choose the one that fits you best. "Cyan Dusk" happens to be the one used throughout this help file.

Copyright © 2023 by Kenneth Rundt. All Rights Reserved.


Toolbar

Viena main functions

Toolbar buttons:

Exit: press to close Viena. If there are any unsaved SoundFonts a confirmation window will show uo,

Open File: Open a SoundFont file. The file will be opened into the current tab in area A. Use the drop down list to pick a SoundFont from the history.

New File: Create a new SoundFont in memory. Give a name to the SoundFont . At this moment no actual file will be created on the disk.

Save: Save the SF2 file. In the File manu you can find a Save As... command.

Snapshot: Save a intermediate copy of the SoundFont you are working on. You can have several Snapshots fot one SoundFont if you need to go back in time.

Undo: Undo the last change.

New Preset: A dialog will open. In this dialog you can select bank, program number and name for the preset. Then you can select from which SoundFont you want to take the instruments, and finally select the instruments. Each instrument will create one layer in the preset.

New Instrument: A dialog will open. In this dialog you can givet a name to the instrument. Then you can select from which SoundFont you want to take the source material. You can select two different kinds of sources: audio samples, to create new splits, or existing splits, if you want to copy splits from another instrument (in the same or another SF2). Finally select the samples or splits.

Add Samples: You add new audio sample by importing a WAV file from the disk. Note that audio samples in the SoundFont are always monophonic so if you import a stereophonic WAV file, Viena will create two new audio samples.

New layers: This button is enabled only when you have selected a preset. In the dialog box, select the SoundFont source and the instruments you want to use. If the instruments are in another SoundFont, all the necessary audio samples wil be copied as well. Each layer in a preset references one instrument. Layers can overlap, both in the key range and in the velocity range. Typical use of layers is to pan one to the left and the other to the right for a stereophonic sound. Layers can also be used to created completely new sounds out of a few instruments.

New Splits: This button is enabled only when you have selected an instrument. In the dialog box, select the SoundFont source and whether you want to use (copy) existing splits or create new splits from audio samples. If the splits are in another SoundFont, all the necessary audio samples will be copied as well. Each split in an instrument references one audio sample. Splits can overlap, both in the key range and in the velocity range. Splits can be used in the same way as layers (above). Please note that one instrument may be used by many presets!

Copy item(s) and Paste item(s). Any item in the tree view can be selected and copied (except from the top level nodes). Multiple items can be selected, copied and pasted in one go. The copied items can be pasted into the same or another SoundFont.

Copy presets: This is a handy tool for copying and pasting presets in one action, with all associated instruments and audio samples, from one SoundFont to paste it into another.

Copy Samples: ?

Setup: Here you can select various options. See Setup for more.

Input: Switch Viena into a MIDI input mode in order to be able to play notes on an external keyboard, for example

Reverb: Here you can select various Reverb options. See Reverb for more.


Layers

Preset Layers

A SoundFont contains "Presets", "Instruments" and "Samples". Presets are visible to the outside and can be used for the MIDI Program. A Preset may comprise several Layers. The minimum is 1. There can also be a Global layer having data to be used when it is missing in the other layers. Go here to learn more about Layers and the structure of a SoundFont. in the tree view to the right, select a layer to see it's contents.

Note that you can always easily navigate between a certain Preset, an Instrument and a Sample by clicking on one of the Tabs shown here at the very top of the page

At the top you see listed all Layers, with the mandatory Global first. You can select a layer either by clicking in the tree view or on the layer name in the table head.

To the left there is a list of all parameters (also called generators) used by layers. These values are always added to the values in the corresponding Instrument splits.

Whenever you select a Layer for a Preset in the tree view, the layers table becomes visible, as shown above. The table shows the layer's generator (or parameter) values. The first column is always the Global layer, even if it is not defined in the SoundFont. As you can display all layers in this way side by side it is easy to compare the values. For example, a value that is the same for all layers should be moved to the Global layer. You can edit the generator values directly in this table.

A layer is a reference to a SoundFont Instrument. Thus, in the example above, the highlighted layer makes use of an Instrument called Grand Piano 1. You see in this example that all 6 layers refernces the same sample. Why? If you look at the left you see a parameter called "Velocity Range" and you notice that all Layers have different values for this parameter. You also notice below that all Layers have different values "Vol Env Attack" and (almost) all have values for "Vol Env Release". Even further low in the table you see this:

The parameter "Modulation Envelope to Filter Frequency' has some values. This leads to a change in the cut off frequency for the low pass filter which makes the sound more muffled for low velocoties.

You can play with your mouse an the virtual keyboard to audition the Preset or individual layers. When you move the mouse pointer over the keyboard you will see in A which layers respond to which keys, BUT NOTE: layers will respond only if the velocity value is within the range defined (if defined)! When auditioning layers, some layers will respond only if the velocity value is within the range defined (if defined). Move the mouse pointer up to decrease the velocity and down to increase it before pressing a key.

The area A shows which layers belong to the key under the mouse pointer when moving in the keyboard above the grid. To audition an individual layer you must select it in the grid below. If you select the Global layer the layers will be auditioned like a Preset, i.e. fully layered. The same happens if you check the "Play all layers" box to the right.


Splits

Instrument Splits (also called "Zones")

A SoundFont contains "Presets", "Instruments" and "Samples". Instruments are used by the Presets and are NOT visible to the outside. An Instrument may comprise several splits. The minimum is 1. There can also be a Global split having data to be used when it is missing in the other splits. Below is an image showing the Splits for the "Grand Piano 1" instrument.

Note that you can always easily navigate between a certain Preset, an Instrument and a Sample by clicking on one of the Tabs shown here at the very top of the page.

This table shows the split's generator values. The first column is always the Global split, even if it is not defined in the SoundFont. As you can display all splits in this way side by side it is easy to compare the values. For example, a value that is the same for all splits should be moved to the Global split. You can edit the generator values directly in this table, or using the editor below the table. A split's own value always takes precedences over a Global split value.

Remember to press Apply when you have made changes in the editor at the bottom to update the table.

When auditoning splits, some splits will respond only if the velocity value is within the range defined (if defined). Use this slider to change the velocity of the keyboard above the grid.

You can play with your mouse an this "keyboard" to audition the Instrument or individual splits. When you move the mouse pointer over the keyboard you will see above which splits respond to which keys, BUT NOTE: splits will respond only if the velocity value is within the range! Move the mouse pointer up to decrease the velocity and down to increas it before pressing a key.

The box in A shows which splits belong to the key under the mouse pointer when moving in the keyboard above the grid. To audition an individual split you must select it in the grid. If you select the Global split, all splits will be auditioned like an Instrument, i.e. fully "layered" (but not with Layers). The same happens if you check the "Play all splits" box.

To audition an individual split using the keyboard above the grdi you must select it in the grid. If you select the Global split the splits will be audioned like an Instrument, i.e. fully "layered" (but not with layers, only splits!).


Sample editor

The Sample editor

This page gives access to a range of sample (audio) editing tools:

You can change some basic parameters for a sample:

Loop S-E: 'S' means start point and 'E' means end point. You can set these directly in the image by clicking with the mouse.Use left mouse button to set the start point and righ button to set the end point. Additionally you can moce these points in small steps using the up/down arrow pairs to the right of the S-E values in the table, In order to better see how well these points join together to create a smooth sound, you can use the "Loop overlay" function and also zoom in in to the region:

This particular case looks perfect. If in doubt, you can listen to the sample and manipulate the start and end points at the same time. (See Play Sound box)

Rate (Hz). Normally there would not be any need to change the sampling rate, but in this particular case it could be a good idea to increase it to 44100 Hz as most output will be at this rate. You can change the rate to either 44100 or 48000 Hz by using the tool at the bottom right, in the box Tools.

Root Key: You can change the root key if it is wrong. Viena tries to calculate the Root Key and also Correction to it my analysing the frequency spectrum using a standard Fourier Transform algorithm. To see the spectrum, check the Frequency spectrum box beneath the graph. If you agree with Viena, you can press the button "Set root note...." to correct both the Root Key and the Correction.

Correction: This is fine tuning the Root Key with small step, cents.

Link: The sample is always monophonic but it may be one half of a stereophonic sample. Here is shown the name of the other half, if found.

Type: Althoug the sample is always "Mono" it can be part of a "Stereo" sample.

Other functions:

The Equalizer can be used to change the sound. For example, to reduce noise, you can lower the high frequencies.

In the box Tools there are a few other useful functions, for example:

Add silence to the beginning of the sample,

Delete silence from the beginning of the sample

Trim to loop, use this if you find that the part at the end of the sample, after loop end point, is useless. But note that there is a looping option: Play sample to end after note off.

Smooth loop, use this if you find it hard to find good loop points and need to "cheat"

Change pitch, use to actually change the sound by "transposing" it up or down. This is NOT the same as changing Root Key or Correction as these two does not alter the actual sample data, but Change pitch does


SoundFont structure

The overall structure of a SoundFont is described above. The Preset is the feature that is visible to the outside. Presets are combined into Banks. Each Bank can hold 128 Presets and these are numbered either from 0 to 127 or 1 to 128 (in SynthFont 0-127). There can be 128 Banks (numbered 1-128 or 0-127). Hence the total number of Presets in a SoundFont file is large enough. Very few SoundFonts have more than a few Banks in use. Usually these are “variation banks”, .i.e there may be a slightly different Acoustic Piano in Bank 1 Preset 0 (1:0) than in 0:0.

A Preset may have one or more Layers. In the simplest case there is only one Layer, which then has to cover the whole key range and also the whole velocity range. The sound data used for a Layer is called an Instrument. The Instrument structure usually contains all the information needed to create the sound. Hence, in the simplest case, the Preset has only one Layer, referring to one single Instrument. NOTE: Instruments are pooled, meaning that several Presets may share the data in the same Instrument. This is cost effective but also a risk. When you edit an Instrument, be sure to check what happens with ALL Presets making use of this Instrument.

A Layer may contain parameters (usually called “generators”) that can alter the sound of an Instrument. So, although two Presets may share one single Instrument, they may sound differently due to the Layer’s data.

Layers are often used to separate key and velocity ranges, but this is no rule. Many Presets are “artificially” created by layering several Instrument sounds on top of each other. Another very common use is to add stereo to the sound with Layers. The wave data used in a SoundFont file is always monophonic. A stereophonic wave is hence usually split up into two different waves (labelled e.g. “Horn (L)” and “Horn (R)”) and two Instruments have two be created for this horn sound. In the layers, these two horn Instruments are then included on top of each other, but panned hard left and right. Artificial stereo may be created in the same way by having one instrument in two layers slight tuned up and down (and panned, of course).

Instruments, again, are structured in Splits. Usually, a Splits is used for a certain key and/or velocity range. A split always uses one single Waveform for the sound and has generators that can alter the sound. Instruments often need to make use of several splits and waveforms for a particular sound. For a real world instrument, the pitch range is so large that it cannot be recreated in a synth just be manipulating one single waveform. Hence, many waveforms are recorded and assigned a root note. Typically one waveform can cover a key range equal to root note ± 5 notes. Velocity splits are also common. Typically the same waveform is used, but different attenuation level, frequency filter and attenuation envelope.

One Waveform may be used by many Splits and Instruments. This is normally the case. Again, this is cost effective but potentially a risk. If you replace one Waveform with another then it may have unexpected side-effects.

All in all, it is important to understand that there are MANY parameters (usually called “generator) that are involved when creating a Preset sound, and it may be a very CPU power consuming task


Setup and Options

The Setup dialogue contains three pages.

The first page is for defining the optional MIDI input port and for defining the Audio output port:

The MIDI input port can be related to a hardware unit, like a physical keyboard, but it can also be a virtual port, like in the image.

For Audio output you have three choices:

  1. Windows Default is equal to any legacy driver offered by Window. This has usually very high latency. You can find the best settings for you hardware by trying out different buffer sizes and Latency values. The Latency value is a "worst case" scenario. Press the Test button to listen to a short tone,
  2. ASIO is a low latency port. Normally you need to install a driver for this port separately. ASIO4ALL is a free driver that works well.
  3. WASAPI ("Windows Audio Session API") is Microsoft's alternative to ASIO. WASAPI works very well on most modern computers. You do not need to install anything for it to work as the driver is included with the Viena distribution package (file called wasapi32.dll or wasapi64.dll)

The next page includes some options for the syntheziser engine. In Pitch Shifting method you can choose between two: "Normal", which requires very little computational power and works well in most cases, and, "Better", which requires a lot more computational power and works well in cases when the sampling rate of the source sample is different from the 44100 Hz used by Viena, or, if the required pitch shifting "length" exceeds 10 semitones. NOTE: When exporting samples in the Sample editor , the "Better" method is always used if the sampling rate is not equal to 44100 Hz.

The last page is a collection of various, mostly visual options :


How to...

Copyright © 2023 by Kenneth Rundt. All Rights Reserved.


Create a new SoundFont from scratch

How to... ››

How to create a new SoundFont from your own samples

Start by selecting which tree view in area A you want to use for this SoundFont. You have four tree views at your disposal. Press the button New file (see toolbar image above) and give the SF2 a name. At this moment, the disk file is not yet created. The SF2 is still empty.

Next step is to add audio samples. Press the the button Add Samples to display an File Open dialog. Navigate to the folder where your samples are.

If you want Viena to automatically create either only an Instrument or both an Instrument and a preset, check the boxes at the bottom of this dialog box.

Note that an instrument is NOT visible to the user of the SoundFont; the instrument becomes visible through a preset.

You can use a "Keys" file to help Viena set the root key and key region already now. A "Keys" file is a text file in CSV format (comman separated text). It looks like this in a spreadsheet program:

The first row must have the text "Default data" in the first column (A1). The next column (B1) is the default root key, C1 is either 1 or 0. If C1 is 1 then the root key can be used to defined the key range for the Instrument split created for the samples listed below in column A. The value in D1 is equal to the low key limit and D1 is the high limit. For example, if the root key is 60, the key range in this example will be (60-2) to (60+2). After this first row follows row with data for each sample. Column A contains the name fo the sample file, minus the extension ".wav. Column B contains the root key. Column C may optionally contain the desired key range for this sample. It can be expressed as a pair of two values, low to high, separated by a hyphen (like 16-16 in C2) or simple on single number for a Split covering only one key. The column D can contain optional velocity ranges. In this example D2 is equal to 0-127 which means that all velocities are used. Leaving this empty is the same as 0-127.

Select as many samples as you like in the file list and press Open. Samples are imported into the Audio Samples pool and the Sample editor is displayed in area B. In the Sample editor you should optionally set the root key and the loop points. To set the root key you can use the "Calculate main frequency, MIDI note and Correction" tool.To move the calculated values to the wave data, press "Set original". To set the S-E loop points (S=Start, E=End) you can use the following method. Starting now with "0-0", press the right down button so that the end loop value wraps around. Now you have defined a loop comprising the whole wave data, which is propably not what you want although this will work with some samples. To move the Start loop pont to somewhere closeer to the end of the data, press the left down botton. Now you have a loop area comprising a range of samples at the very end. This may still not be what you want. You may need to change the wave data zoom and also toggle the loop overlap on/off. You can use the mouse pointer in the wave data area to set the loop points. Press the left mouse button somewhere to defined the Start point, and the right button to defined the End point. Finally you need to audition the loop.

When you are satisfied, update the SF2 with the data!
Note that you can any time edit the name of the audio sample in the tree view in A. Press F2 to activate the in-place editor.

If you didn't check the "Create new instrument" box above, the next step is to create an Instruments.

Press the New Instrument button to display a dialog for entering data for the first new Instrument. In this dialog you must select a name for the instrument. You must also select the source SF2. This can be any SF2 open in Viena, i.e. you can now copy splits and audio samples from another SF2. But, in this tutorial we will not copy anything from another SF2, so select the "SELF" soundfont. You must then select wether you want to use existing splits or create new splits from samples. As you have no splits ready at this moment you must select Create new Splits. Finally, in the list of samples, check all samples you want to use in this instrument. Each sample will result in one split. Press OK. In the tree view A, expand the instrument (click the '+') and select any of the splits. Area B will now show the splits table , with all splits arranged side by side. Please note that Viena will always display a Global split, even if it is not defined. It becomes defined as soon as you enter any data in it. Next you can set the generetors for the splits you created. If you click on any split, the table in area B will reflect the selection. You can now either enter data directly in the table, or use the editor below the atble. Use the virtual keyboard at the top to listen to the instrument or the splits. Select the Global split or turn on the 'Audition Layered' button to listen to the instrument with all splits layered (as needed).

Note that you can edit the instrument name directly in the tree view A . Press F2. You cannot edit the name of a split as the name refers to the audio data. Don't forget to periodically save the file!

If you didn't check the "Create new preset" box above, the final step is to create a Preset.

Press the New Preset button to display a dialog for entering data for the first new Preset. In this dialog you must select a bank and program number, and name for the Preset. You must also select the source SF2. You can thus also copy instruments across soundfonts in this way. But, in this tutorial we will not copy anything from another SF2, so select the "SELF" SoundFont. Press OK. Now you can expand the Preset to edit the Layers. Typically you would create two Layers for a stereophonic sound, in which case you need to set the pan values to -50 and +50. Use the virtual keyboard at the top to listen to the preset or the layers. Select the Global layer or turn on Play all layers to listen to the preset with all Layers together.

Note that you can edit the bank and program number, and the name of the preset in the tree view A . Press F2.

Save the file!


Add a folder to 'Folders, Files'

How to... ››

How to add a folder to the Favorite Folders and Files view.

Toolbar:

Folders, Files functions:
1. Add folder
2. Remove folder
3. Copy preset
4. Open in Viena
5. Assign to track in SynthFont

Preset Cache functions:
6. Pin preset in cache
7. Remove preset from cache
8. Add cache group

Go to area D and click on the first tab to display the tree view. It may be empty or not. Viena will initially fill this view with folders you have chosen to save as a favourite in a SoundFont file open dialog. To add a folder, press the first button on the toolbar above, or use the right mouse button to pop up a context sensitive menu. Viena will scan through the folder and list all SF2 files. To look into an SF2, click on the name to expand it into its presets:

You can now audition the preset by playing with your mouse on the virtual keyboard in area B. You can also add the preset to the preset cache by pressing the 6th button. You can also copy a preset and paste it into an SF2 open in one of the tabs in area A.


Create new splits from samples

How to... ››

How to assign samples to an Instrument and create new splits.

In the tree view in area A , navigate to the Instruments pool. Select an Instrument. Press the New Splits button in the main menu or pick the function from the context sensitive menu (New Instrument Splits, right mouse button). You can now use the New Splits dialog to assign samples to the Instrument and create new Splits. At first, check the "Create new Splits (from Samples)" button. Select the source file (normally the same file. i.e. "SELF"). in the list of samples, check the sample you want to use. Use the buttons below the list to automatically select various ranges.

Check the "Assign to keyboard regions" to show the dialog below.

Instructions are found in the window.


Copy presets from one SoundFont to another

How to... ››

Quick start #1: How to create a new SoundFont using presets from another SoundFont

Open the SoundFont you want to copy from into one of the four tabs in area A . Switch to an empty position and create a new SoundFont:

Give a SF a suitabel name.

Press this button:

to show this dialog:

Select all the presets you want to copy and press OK

Note that Viena will copy and paste all required Instruments and Audio Samples as well.

Finally, save the new SoundFont. You may now also change the name of it.


Edit split generators

How to... ››

How to edit split generators.

In the tree view in area A , navigate to the Instruments pool. Select an Instrument and expand it into its Ssplits. Select one Split column. In area B you have a list of the most common parameters and their values. Some cells are empty because no values have been defined. Viena does not display the default values by default, but you can check the box Show default values to see a column with these. To change a value, select the cell and write in the new value using the PC keyboard. Press <ENTER> to finish editing. The new value will immediately be written to the SoundFont in memory, but not to the file, of course.

For editing, you can alternatively use the editor displayed below the table in area C. It is up to you which way you find most convenient. When you change something here the new value will not be sent to the SoundFont until you press Apply. Please note: if you want to edit the wave data while viewing the Splits, you must use this editor. Here is also the only place where you can change which audio sample the split uses (Reassign).


Use the 'Preset Cache'

How to... ››

How to use the Preset Cache.

Toolbar:

Folders, Files functions:
1. Add folder
2. Remove folder
3. Copy preset
4. Open in Viena
5. Assign to track in SynthFont

Preset Cache functions:
6. Pin preset in cache
7. Remove preset from cache
8. Add cache group

To add a preset to the cache you must at first have the SoundFont listed in Folders, Files . Go to area C and click on the first tab to display the Folders, Files tree view. To look for a preset in an SF2, click on the SF2 name to expand it. You can now add a preset to the preset cache by pressing the 6th button. A dialog box will appear that lets you choose to which cache group you want to add. You can also now create a new group.

Remember that cached presets are stored as a pointer to the SF2 file, so it will become invalid if you move the file or change its name.