With the Map Editor you can map your samples and save them as a SampleMaps .
Drag & Drop your samples into the map to select from one of three different mapping functions:
After you added your samples to the SampleMap it's possible to drag them around in the Map Editor and adjust their map properties with the SampleMap Value Setters and their audio-related properties in the adjacent Sample Editor .
In the Sample Map Editor you can use some of the usual suspected Action Keys while dragging:
- Ctrl - to move the samples in octaves.
- Shift - to restrict the movement from the samples current position to the x and y axis.
- Alt - to duplicate samples.
- Ctrl + Arrow Keys - To move the samples with the keyboard arrows.
After you're finished with editing you can save the SampleMap (Ctrl+s). It will be saved into the SampleMaps Folder of your project and from this moment on be available in the SampleMap Selector in the toolbar and accessible with the scripting capabilities of HISE. Recipe: Switch Samplemaps with a ComboBox
The next step would be to compress the SampleMaps samples into a single big monolith-file (HLAC) for improved loading-time and reduced file-size. Learn more about this here: Compress and Export
ctrl + N
|Create a new SampleMap
|Import Sfz File Format
|Import SFZ file format
|Shows up, when you haven't saved your SampleMap
ctrl + S
|Save the current SampleMap
|Convert To Monolith
|Convert the current samplemap to HLAC monolith format
ctrl + +
|Zoom in the sample map
ctrl + -
|Zoom out the sample map
ctrl + Z
|Undo the last operation
ctrl + Y
|Redo the last operation
ctrl + A
|Select All Samples
|Select all Samples
|Deselect All Samples
|Deselect all Samples
ctrl + X
|Cut selected samples
ctrl + C
|Copy samples to clipboard
ctrl + V
|Paste samples from clipboard
ctrl + D
|Duplicate all selected samples
|Delete all selected samples
|Fill Note Gaps
|Fill note gaps in SampleMap
|Fill Velocity Gaps
|Fill velocity gaps in SampleMap
ctrl + L
|Load a SampleMap from the pool.
|Refresh Velocity Crossfades.
|Switches to crossfade mode. LoKey and HighKey switch to LowerVelocityXFade and UpperVelocityXFade.
|Trim Sample Start
SFZ is a free file exchange format for samplers. However, HISE is not designed to be a SFZ sample player. The SFZ parser makes it more easy to transfer other sample formats to HISE . Although there are opcodes for almost any property of a sampler, only these opcodes are supported:
sample, lokey, hikey, lovel, hivel, offset, end, loop_mode, loopstart, loopend, tune, pitch_keycenter, volume, group_volume, pan, groupName, key
These are pretty much all opcodes thich relate to a HISE sampler property. If you want to convert NI KONTAKT libraries, check out the Chicken Translator SFZ edition, as this is the preferred way of migrating KONTAKT libraries
Loading SFZ files is remarkably easy, just use the SFZ button, or drop a .sfz file on the sampler. If there are multiple groups in the SFZ file, you will see a dialog window where you can consolidate the sfz groups to RR Groups or ignore dedicated sfz groups (and drop the same sfz on another sampler with a inverted selection to split the sfz file to two independant samplers")
SampleMap Value Setters
|the group index for round robin / random group start behaviour. Although it's called RRGroup, it can be used for any other purpose (like dynamic X-Fade or legato sample triggering). Think of this as an additional z-axis in the note/velocity coordinate system.
|the root note. This is the reference pitch note.
|the highest mapped key.
|the lowest mapped key.
|the lowest mapped velocity.
|the highest mapped velocity.
|Change the lower Velocity X-Fade
|Change the upprt Velocity X-Fade
Right click on the property to open a big slider that allows finer adjustment
Drag & drop your samples to a specific location in the Map Editor.
A pitch detection algorithm that maps the samples according to their pitch. (not always 100% reliable)
Filename Token Parser
The Filename Token Parser
maps samples according to their filename. It can divide the filenames into
and automap them to specific properties of the SampleMap.
With this we can take these two sample filenames:
and automap them to these properties:
- First RR Group, Root Note D#2, Velocity Range 0-63
- 2 - Second RR Group, Root Note C3, Velocity Range 64-127
Load your samples into the Map Editor and choose Filename Token Parser .
First you have to specify the filename Separator
. The parser needs this character to divide the filenames into tokens (the default separator is
). Each token will now appear in a separate row in the popup. Step through each token and tell the parser what to do:
The separated tokens of the first filename (it will iterate over all files, but only display the first filename tokens so that you can see what the parser is doing)
The Property column decides to which SampleMap property the token is assigned to.
|do nothing with this token. ignore the token information. (default)
|sets the MIDI NoteNumber. Use a single "Number" (0-127) or a "Note name" in the format D#3 (middle octave = 3)
|moves the sample into the specified RRGroup (starting with Group 1), Use "Number" or a "Custom" data type for this.
|spreads the velocity across the whole range divided by the amount of found "Custom" items (pp,mp,ff).
|spreads the velocity across a range (_1-63_). You must use the data type "Number with Range" or "Custom" for this mode.
|sets the lower velocity value, independently. use it together with High Velocity . "Number" only
|set the high velocity value. "Number" only
|maps each samples velocity to a single value ( LoVel:
The Data Type column defines as which data type the token should be interpreted. The result is always a number, or a space separated number list (Values).
|Uses the number received from the token
|Number with Range
|Uses two numbers. base and a upper limit (0-56) to define a range. (for
|the upper limit as number
|If the token is a Note Name (format: "D#3"), use this data type to convert it to the right midi note number (middle octave is 3).
|Maps any string in the item list to a number in the value list. Example:
to RRGroup 1 and
to RRGroup 2.
|the string token list (separated by space)
|the number list (separated by space)
|Sets a fixed value that can be entered in the Items&Values columns
|Ignores the token. You should not have to use this directly, as it's the datatype for ignored tokens.
In case that you want to store the parser settings for further use: You can Copy&Paste or Save&Load the Filename Token Parsers settings in the top of the Popup.
There is a handy tool called "Close Gaps" which can be useful after importing the files with this method.
The Solution to the example:
If you want to access attributes of SampleMaps or change SampleMap aspects with scripting, use a typed Sampler script reference. (Shortcut: Right click on the top bar of the Sampler)
const var Sampler2 = Synth.getSampler("Sampler1");