Intermorphic apps can use add-on content zipped into the form of Paks ("Paks"). These pre-packaged Paks are also the easiest way to use add-on content in our apps.
This User Guide is not about how to use Paks in an app, and which is covered in each app's User Guide, but is instead about how to make your own.
Making "Paks" for Wotja, Mixtikl and Noatikl (zipped up content collections) is much easier that it may at first seem. If you either know how to make samples / loops, or how to work with them, the you know enough to be able to make Paks. And if you don't know that, then you can still contribute to the community by meta-tagging files.
Wotja Tip: Wotja 4.11.0 and earlier: All WAV loops used in a Pak must be 16-bit format but 24-bit Ogg loops are OK; Wotja 4.11.2+: 24-bit WAV format is also supported.
Mixtikl Tip: You can also use your own loops and samples in Mixtikl without first creating a zipped Pak. However, if you want to have portable content (i.e. to use on your device and desktop), you will need to make a Pak.
The KEY thing to remember when making your Pak, is that your MUST zip it up correctly, with the right path structure.
We use zip files because the format is open; they are great for templates because the included content cannot be overwriten; they are easy to make (by us or you!); there are many 3rd party tools (some free) to create them; they can contain a directory structure; packaged content can be anything and is compressed; they keep content nicely organised - and zip files are easy to transfer!
The Pak elements are the things that you need to include in a Pak to make it work, the combination of which depends on what kind of Pak you are wanting to make.
Tip: The best thing to do before you head off to start making your own Paks is to get the add-on Paks (all Contruction Kit Paks) and have a look at some of them and see the elements they include (just unzip the ones you are interested in).
Construction Kit Pak
An integrated collection of content sharing the same tempo and root that you want to appear in the Pak list and that you want to mix together out of the box e.g. all elements from a song chorus.
Example Construction Kit Paks
The AL Techno 112d (techno_112d_al_tp_im.zip) Pak contains varied content at the same tempo and root and is suitable for mixing together, so they are packaged as Construction Kit Paks and they show up in the Pak list.
A larger collection of content all of similar type, such as Bass Loops, that you may or most likely may not want to appear in the Pak list. Content in Separates Paks is mainly for browsing for from a content cell, and then adding to a mix.
Example Separates Pak
The LoopBeats 2 Pak (loopbeats2_tp_im.zip) contains only drum loops at different tempos and is packaged as a Separates Pak which does not show up in the Pak list, as the content in it is meant to be browsed for from a content cell.
Making, Selling & Distributing Paks
If you have put your own content into a Pak (i.e. YOUR Pak) and want to sell it, then fine: we won't get in the way. We don't want a cut on what is yours or even a 'format' royalty. Just set up your store or get a distributor, and away you go. Make sure first, however, that you own the content or have the necessary rights in the content to do this.
If you want to give YOUR Pak above to the community for them to use for free and to see what they can do with, then go for it!
If you don't make your own loops or sounds, you can still contribute to the community as a Pak maker/curator. There is a growing body of freely licensable Creative Commons content you could referencee & use within Paks - do, of course, make sure you comply with all license terms! See One Laptop Per Child project for examples of Creative Commons licensed samples.
If your Pak is to include audio loops we recommend:
Use 44 Khz stereo loops (either WAV or Ogg). Wotja 4.11.0 and earlier: All WAV loops used in a Pak must be 16-bit format but 24-bit Ogg loops are OK; Wotja 4.11.2+: 24-bit WAV format is also supported.
Aside from performance & footprint issues and that stereo loops require twice the RAM and more processing power, they simply sound so much better.
It is still fine to opt for mono as these can be positioned in the audio field and you can apply live FX via the ISE.
Ogg loops are much smaller (see Pak size below), but they have to be decompressed before being loaded into memory. If you are after pure speed of loading, then it is best to stick with WAV.
It's up to you - but remember two things: 1) File Size - keep it down if you want to run it on mobile devices; 2. RAM - samples have to be loaded into memory to be used, and this is always scarce on mobile.
Try to work with high quality "master" audio samples which you then edit and resample.
For song related Paks, content will generally be 1 to 4 bars loops from the various
chorus elements of a song/track (e.g. beat1, beat2, bass, keys, synth, vox1, vox2 etc) and can also include "sting" samples for "one shot" playback.
Tempo and the content size are closely interrelated: a 1 bar 60bpm audio clip is 4 seconds in length (each beat is 1 second in length and there are 4 of them in a bar), and a 1 bar 120bpm audio clip a 2 seconds in length (each beat is 1/2 second and there are 4 of them). Therefore Paks with a slow tempo will generally be larger than those with a fast tempo!
Tools You May Need
Wotja or Noatikl: to create generative .noatikl files as templates to include in the Pak.
Note: .noatikl files contain both Noatikl file data and associated Synth/FX definitions (but not samples or SF2); they can be used either standalone in Noatikl, or they can be used as content for Wotja or Mixtikl content cells.
Wotja for iOS: to create Wotja files and Wotja for iOS/macOS to test Paks and play your mixes!
Textpad, Notepad (or whatever): to tweak your pak.xml files (these define the tempo & key).
Winzip (7Zip or whatever): to package-up your Paks into self-contained zip files.
Audacity, Wavelab or similar: to create your loops and ogg files.
Awave Studio or Microsoft DLS Producer: if you need to create any DLS 1 wavetables for your PSE content.
The first thing you need to do for Pak creation is to make your Pak folder. Your Pak folder can be a folder underneath the Paks directory (e.g. paks/MyName_MyPak), or even a subdirectory underneath the Paks directory (e.g. paks/bassLoops/MyName_MyPak). The reason you might want to put it in a subdirectory is for easy browsing of content of a similar type.
First things first
Navigate on your PC to the Intermorphic Folder (see here).
Then create your Pak folder (MyName_MyPak)
Tip: ALL Paks (even those for Wotja) still use the path structure below that includes "mixtikl".
Create a new folder under the Intermorphic Folder (note the lower case 'i'):
e.g. intermorphic\mixtikl\paks\MyName_MyPak or;
Pak folder names must be unique and should a naming convention like "Artist_Track_Label" (or where they are just loops then "Company_LoopDescription").
Spaces may be used in path names, but we recommend you do NOT use them - choose underscore or dash characters instead - or use CamelCase.
This folder is displayed in the content list, so we recommend keeping it short and you may wish to use abbreviations and undesrscores or dashes.
Put (or save) all of the elements that you require into this folder.
You can work with and test your Pak in this folder before you create your final Pak file.
More experienced Pak creators may wish to create a "dev" folder under the "paks" folder, and then put all Pak content development in a folder "intermorphic/mixtikl/paks/" under this. You then create your zips, using batch files, from these folders and never inadvertently overwrite or alter your master content.
You are ready for the next step!
Pak Elements & What They're For:
Tip: Select each following heading to see full details.
Defines the Pak root and tempo; allows Pak to be displayed or hidden in Pak list
Required in Construction Kit; can be used in Separates Pak where all content share common root/pitch
This file defines the Pak base root and tempo and allows Pak to be displayed or hidden in Pak list. It is required in Construction Kits, and can be used in Separates Pak where all content shares a commmon root/pitch.
From the webpage, copy the text below and paste it into a new text file that you save in your MyName_MyPak folder as pak.xml. Modify the pak.xml it to suit your requirements (see below for the optional items you can delete) :
messagespath: The path to your pak messages.asm file; this will include your folder name (e.g. intermorphic/mixtikl/paks/MyName_MyPak/messages)
tempo: The tempo is the tempo for which the content is designed to be played, in terms of beats per minute.
root: The root parameter should be the root to which the
media in your content is designed to be played. For example, this might
be A, A#, C, Db etc.
sps: This optional parameter can be left out and is really only used for a Pak where you do NOT want a change in Mix root to pitch shift the sample, e.g. for some drum loops. A value of 0 means "prevent pitch shifting"; a value of 1 means "enable pitch shifting".
scale: The Scale is purely informational, describing
guidance as to the harmonic structure of the content within the Pak;
the user considers this, and for example might not choose to play a
"Minor" Pak against a "Major" Pak (but there again: they might!).
hidden: Set the value to 0 if you want the Pak to display in the Pak list (or just leave out the parameter altogether). e.g. for a Construction Kit; a value of 1 prevents it displaying in the Pak list, e.g. for a Separates Pak
displayname: DO NOT CHANGE, points to string 1 in Pak messages.asm file
kmopenname: DO NOT CHANGE, points to string 2 in Pak messages.asm file
description: DO NOT CHANGE, points to string 3 in Pak messages.asm file
copyright: DO NOT CHANGE, points to string 4 in Pak messages.asm file
dispscale: DO NOT CHANGE, points to string 5 in Pak messages.asm file
eska: DO NOT CHANGE
All other parameters under this (as shown in grey) are currently optional and purely informational. The reason for including the other meta information is that some day Mixtikl will be able to use these of search on then, helping you to find samples quickly.
WHEN MODIFYING THE XML, BE CAREFUL NOT TO ADD SPACES WITHIN DOUBLE-QUOTE CHARACTERS (except where text). DO NOT FORGET THE FINAL CLOSING BRACES.
Defines the common root and tempo; Pak will not show in Pak list
Special use: required in Separates Pak of common root/pitch that does not include pak.xml
Primarily for ad-hoq use and browsing of same tempo/pitch content from a content cell without first having to first create a zip, and obviating the need for separate yourfile_mixtikl.xml files for each content item - typical example would be e.g. using a directory of pre-prepared same tempo/pitch loops from a Music Magazine or sample directory
SPECIAL USE ALTERNATIVE TO PAK.XML FILE: This file tells Mixtikl about any overriding tempo, root and scale of all loops in this Pak, and will ensure the Pak is not displayed in the Pak list. Is only required in a Separates Pak that includes content all at the same tempo and root pitch, and does not contain a pak.xml file. It means you do not have to create a yourfile_mixtikl.xml file for each and every audio and music content file in the Pak.
It is primarily for ad-hoq use and browsing of same tempo/pitch content from a content cell without first having to first create a zip, foregoing the need for separate yourfile_mixtikl.xml files for each content item - typical example would be e.g. using a directory of pre-prepared same tempo/pitch loops from a Music Magazine or sample directory.
From the webpage, copy the text below and paste it into a new text file that you save in your MyName_MyPak folder as mixtikl.xml. Modify the mixtikl.xml it to suit your requirements (see below for the optional items you can delete) :
The content files you want in your Pak, in any combination of audio, MIDI, noatikl and wotja formats
Required in both Construction Kit and Separates Pak
Paks can contain audio and music files in any of the related formats supported by Mixtikl (e.g. .ogg, .mid/.midi, .noatikl, .wotja, .wav and even DLS 1 wavetables). For further information see the section on Content Types.
For "Construction Kit" Paks: Include a minimum of 12 content items (one for each of the 12 tracks), but you can include more if you want to give your Pak users "bonus" items. We recommend 15-16 items.
For "Separates" Paks: Include as many content items as you like, but remember that there is limited file storage on mobile devices, and the more items you include, the more there is to browse (so it can take longer to find something).
Ensure that any loops used are a minimum of 1 bar length (if they are short sounds you can pad them out with silence); loops have the correct number of sample points for the respective bar lengths; they all loop cleanly.
You will need to normalise any audio sample used in such a way that when 9-10 of them are playing simultaneously at say 80% max volume level there is no audible distortion. This might mean normalising to e.g. -2db or somesuch factor. Once this factor has been established, use it across all your Paks.
Content should be 1-4 bars in length, melodic elements being better as multibar (they more easily bear repetition that way; some beats can be 1 bar, but others should be longer). However, 2-4 bar samples can be large, so use sparingly. Generative content can play for ever :).
We recommend that content Master files should be 44KHz WAV files (mono or stereo depending on what you are working with).
Convert your .wav audio samples to .ogg using e.g. Oggdrop (quality setting 4, approx 128kbps). This should give you optimum sound quality, and file size.
Please bear in mind the overall recommended Pak sizes, and note that the Pak tempo will have a bearing on the size of the .Ogg files. Low frequency loops (e.g. Bass) tend to end up smaller than those with high frequencies (e.g. hi hats). You may need to experiment here, also with bar lengths to see what can fit.
All samples need to be prepared carefully so that the loop points are set correctly and there is no noticeable audio artifacts (glitches) when the sample loops. You should test all samples in test mixes. Also, you should ensure that the ogg encoded versions do not any clipping.
You should only include loops of the same scale in ANY Pak.
Required in a Separates Pak for every content item that differs from the pak.xml or mixtikl.xml root/pitch values
SEPARATES PAK: This text file tells Mixtikl about the tempo, root and scale of ONE content file, together with other meta information. It is only essential to have one for a content item when it does not share the common features of the pak.xml or mixtikl.xml file. It can also be used in a Construction Kit if you have a content item that is at a different root and tempo to that defined in the Pak.xml.
"yourfile" is shorthand for the name of the related content file, without its file extension. Eg. if one of your content files was called d_2-kick2_140d.ogg, then this corresponding file is called d_2-kick2_140d_mixtikl.xml.
From the webpage, copy the text below and paste it into a new text file that you save in your MyName_MyPak folder as e.g. bass_mixtikl.xml. Modify this file to match up with the corresponding content item :
tempo: The tempo is the tempo for which the content item is designed to be played, in terms of beats per minute.
root: The root parameter should be the root at which this content item is designed to be played. For example, this might
be A, A#, C, Db etc.
scale: The Scale is purely informational, describing guidance as to the harmonic structure of the content item within the Pak; the user considers this, and for example might not choose to play a "Minor" Pak against a "Major" Pak (but there again: they might!).
All other parameters under this (as shown in grey) are currently optional and purely informational. The reason for including the other meta information is that some day our apps might be able to use these to filter or search on to help you to find samples quickly.
WHEN MODIFYING THE XML, BE CAREFUL NOT TO ADD SPACES WITHIN DOUBLE-QUOTE CHARACTERS (except where text). DO NOT FORGET THE FINAL CLOSING BRACES.
From the webpage, copy the text below and paste it into a new text file that you save in your MyName_MyPak folder as license.txt. Modify license.txt to suit your requirements:
<copy text below... >
<a href="help:help">QUICK HELP
<b>Your license name
Your license text...
<a href="help:license">TOP ^
<copy text above... >
Wotja and Mixtikl allow the mixing together of many different audio and music
files, namely "content". This content can be in a wide range of file formats, from
audio clips to MIDI files and beyond. To keep things simple, we refer to any item of
content in any format simply as "content" or "content item", but this section gives
some more information on the different formats.
The above app's content flexibility allows you to be creative in ways that both
suits the capabilities of your device and that match your personal preferences –
namely how much memory you have on your phone, and how much space you
want to set aside for storing content or recordings of mixes you might make.
Audio content is used where maximum sonic impact is required. The reason is that
an audio sample (a short clip) contains a great deal of high quality pre-processed
audio information (such as a real voice, electric guitar riff, orchestral theme etc).
However, the downside is that memory usage is higher than for other content types
(for both storage and operation). A typical 1 bar audio sample (in compressed Ogg
Vorbis format, 48Kbps) is around 15Kb, but in order to be mixed it must first be
expanded into your device RAM memory, where it might be >4 times larger!
Audio formats supported (file extensions capitalised for consistency):
Ogg Vorbis (compressed audio format) – .OGG
WAV (PCM and ADPCM) - .WAV (8 or 16 bit only at present)
Note: When using audio content, there are a number of factors that determine the
size of the content item. The key ones are the tempo of the mix and how many
"bars" there are in each item of content (a "bar" is a musical term which refers
most commonly to 4 beats, and is the normal minimum size for a content item),
and then for each item the sample rate, bit depth and whether the sample is stereo
Tempo is to do with how many beats per minute (bpm) you have in your mix,
which is defined in each Pak. Tempo and the content size are closely
interrelated in that a 1 bar 60bpm audio clip is 4 seconds in length (each beat is 1
second in length and there are 4 of them in a bar), and a 1 bar 120bpm audio clip a
2 seconds in length (each beat is ½ second and there are 4 of them).
MIDI content is an electronic version of sheet music
(in that it only contains note playback information), and it is played through the
Mixtikl integral MIDI synthesizer. MIDI content has the advantage of
small size, and so uses far less device memory, but it does not have the sonic
impact and richness of the much larger audio content. A typical 1 bar MIDI riff is
MIDI formats supported (file extensions capitalised for consistency):
SMF (Standard MIDI file, type 0 or 1) - .MID/.MIDI/.KAR
Various advanced content options are available, and these
allow greater use of the device as a music "computer", creating rich sounds from
small components. This kind of content is typically in .noatikl format, and through the ISE and IME it allows the use of real software synthesisers, FX and music engines. A
1 bar .noatikl file can be just a few Kb in size, but can be set up to allow the creation of
hundreds of minutes of varied and sonically rich content.
Advanced formats supported (file extensions capitalised for consistency):
Noatikl - .NOATIKL
SF2/DLS 1 Wavetable
The ISE multi-synth can be used to hook up MIDI or advanced content to a Wavetable of type SF2 (SoundFont) or DLS 1. The Wavetable can either be in one of the pre-installed Paks, or included in a Pak you might have made. Either way, it has to be installed to your device and ISE must know the path to it.
Being able to target a SF2 or DLS 1 Wavetable via ISE means that MIDI playback, via the MIDI synth in ISE, can use some cool sounds and with the smallest performance overhead - all you need is the Wavetable!
This is content in any of the above forms that plays for more than 1 bar. It can be
even more effective than content of 1 bar length as it provides more continuity and
variation over a longer period of time. Mixtikl is very powerful in that
mixes can utilise not only 1 bar content, but also multi-bar content.
Mixtikl intelligently caters for content of non-full bar length (e.g. 2 ¼
bars). When the content is not in a Pak it will not simply loop the content,
causing mix synching problems, but will instead pad it out with silence until it
reaches the next bar boundary. Content that *is* in a Pak is time-
stretched/shrunk automatically to the nearest bar multiple.
The "mix file" itself
When you add content into a mix, this information is saved to a special "mix file"
format called ".wotja" or ".mixtikl" (depending on app used). It stores all the information about what
content is used in the mix and where, together with sound FX used etc.
Add-on Paks and Content
There is a lot that can be used in our apps. See here for what is available!
File Naming Convention
This section is for guidance only.
The file naming convention used for Paks suits Paks tha contain a lot of content as it helps to group similar content in list displays (e.g. content list).
For real examples, see the older templates included with our apps, such as the GenMix1 Pak (genmix1_dmaj_im_tp.zip)
TIP: If you have a loop, e.g. a drum loop, that you want never to be pitch shifted (even if it can be tempo-stretched), the use the "d_" prefix below.
Choose one of 5 single character values followed by an "underscore" (the user never sees these letters):
The number of bars followed by a "dash" (e.g. "4-")
OPTIONAL - we generally do not use this identifier, but it is available for you if it helps you, i.e. you can see in a content cell how long the loop will play for, and you can also visually track its progress with the moving content cell "mote".
0 is a special case that indicates content that will play for a very long time, which as far as the application is concerned, effectively means forever. This kind of content is generative in nature, and the generative material is authored with Noatikl. Noatikl content can be set up to play for a maximum of 9 hours, for example!
If the content is only 1 bar long, then you can ignore this, i.e. track_ContentName-aksmo.type.
The name shown in a content cell. Using this convention means content is shown in the easiest, briefest and most easily understandable way in both the content cells and the content list. The contentName can include the underscore character.
Recommended syntax is :
"sampleTypesampleNumber_TempoRoot_OtherInfo" (e.g. kick1_140d_OtherInfo for Kick Drum 1).
sampleType of 3-4 characters
"snar" for Snare Drum
"syn" for Synth
"prc" for percussion
"kick" for bass drum
"hhat" for hi hat
"cym" for cymbal
"vox" for voice
"chrd" for chords
"bass" for bass etc
the variant, e.g. 1, 2, 3 etc.
The tempo and root note e.g. _140d
Such as the details of the original sample name if the sample is renamed (e.g. 7WDZGSpice), the Pak name (e.g. loopbeats1) and the pak maker (e.g. _IM)
Preceded by a "dash", this is an advanced set of identifiers used by content authors to identify specific content types. If you are using audio or MIDI content only, then you can ignore these identifiers (i.e. track_bars-ContentName.type).
a - the identifier for "advanced content", which is content constructed in such a way that it requires more than normal usage of computer processing to play. An example of this being content that uses modular synthesis to generate the sounds, or has heavy use of multi-layered audio samples. This content will display as red in the content list.
k - used for content that uses the IME. This content is typically generative, in that music is continuously created on-the-fly.
s - the identifier for content that uses sounds created through modular synthesis. 's' labelled content is normally labelled "advanced" as well.
m - MIDI based content.
o - Content that uses compressed audio samples, such as sample in Ogg Vorbis format.
This is the file extension, such as .noatikl, .mid, .ogg or .wav etc. The file extension determines what color (Mixtikl ONLY) the content will show up in the cell content list.
Audio content displays as blue (Ogg, WAV);
MIDI content displays as black (MIDI, MIDI partikl)
in the content cell it is also indicated with a small black and white piano keyboard;
Advanced content (as noted above) displays in dark red (.noatikl)
Creating your Pak.zip file
You can use your preferred Zip file utility to create your Pak. The KEY thing to remember is that you MUST get the path information correct for your Pak to load. Some Zip file utilities make it easy to include the right path information, some don't. Some you will need to use a Command line option to do this, especially if you create your Paks in a different folder to the one required for a Pak to load.
It is essential that the following path (off your hard disk root, e.g. C:) is used and included in the Zip file for all your content in the Pak: e.g.
If you are making a Separates Pak you can included the Pak in a sub-folder under the paks directory, e.g.
The path(s) above MUST NOT include any other path information before "intermorphic" or the Pak simply will not work.
TIP: More experienced Pak creators may wish to create a "dev" folder under the "paks" folder, and then put all Pak content development in a folder "intermorphic/mixtikl/paks/" under this. You then create your zips, using batch files, from these folders and never inadvertently overwrite or alter your master content.
Once zipped, copy (or move) the Pak zip file (e.g. MyPak.zip) you have just made to the Intermorphic Folder
Relaunch your Intermorphic App, and you should be able to use your new Pak!
Windows Users - Tips for Zipping Paks
There are a number of zip tools you can use on Windows, including 7Zip and WinZip etc.
Approach 1 - Using Latest version of WinZip (e.g. > 12.x ...)
Imagine you have the content for pak you're creating in c:\this\that\intermorphic\mixtikl\paks\*
Add the folder(s) you want from Windows Explorer to a zip - you should include full path info
To fix the path info in the zip file, to be relative... i.e. to remove the unwanted c:\this\that path information then, in WinZip, select the "Folders" view.
In the left hand pane, move to the folder above which you wish to preserve the relative path (i.e. to c:\this\that in this case).
Drag the intermorphic folder from the right pane, to the top/root of the zip file structure in the left pane.
Your file/folder paths are now fixed!
Mac Users - Tips for Zipping Paks
There are a number of zip tools you can use on Mac, including StuffIt and BetterZip
Approach 1 - Using Terminal to zip up your Pak
Launch Terminal (from Finder, under Applications > Utilities), and type the following, where MyName_MyPak is the name of your Pak folder:
zip -r MyName_MyPak.zip intermorphic/mixtikl/paks/MyName_MyPak/*
Note that if you have moved your Documents folder somewhere else, you will have to move there instead with something like this:
zip -r MyName_MyPak.zip intermorphic/mixtikl/paks/MyName_MyPak/*
Reload your IM App and check your Pak is OK (we suggest you temporarily move your Pak folder so that ONLY the Pak zip gets picked up (for testing) and not your unzipped Pak folder)!
Approach 2 - Using a .sh (batch) file to zip up your Pak
Creating Pak zips with a batch file(s) is best if you are creating a lot of Paks, or just doing it again and again and don't want to type in the commands above every time. We don't want to go into another tutorial on how to use .sh (batch files), but you need to create a text file, and then rename it to something.sh and then set up the file association so that it can run as a batch file (none of this is straightforward it seems!). Suffice to say, we do not recommend creating / using batch files unless you know what you are doing!
If you use a rm command (remove), be very careful.
What follows is a batch file that checks if a zip file is there, removes it, changes to a master Pak directory, and zips up a particular pak and puts it in a separate zips folder (e.g. IMZips) where you can then later copy your Pak from to the correct intermorphic/mixtikl/paks/ directory for use in Mixtikl.
zip ~/IMZips/Paks/genmix1_dmaj_im_tp.zip intermorphic/mixtikl/paks/IM_GenMix1_DMaj/*.*
You can also append the zip line with arguments that prevent some files getting added, e.g.