Archived version
Create ideas for music, melodies, MIDI & lyrics... or make & playlist beautiful ambient generative music mixes for sleep & relaxation. Wotja is the consolidation and evolution of Noatikl, Mixtikl, Liptikl, Tiklbox & SSEYO Koan.
Users say of this powerful & unique creative relaxation system: "hands down the best generative software that I have ever used", "Brilliant", "Extremely musical", "Deep and professional", "best MIDI composition tool", "Love Wotja!", "These guys are ***THE*** pioneers along with Eno in generative music".
There's lots to explore, but you don't need to be a musician or expert to use Wotja. Anyone inquisitive can learn to master its power; see our helpful video tutorials.
Subscription and non-subscription versions available.
Platforms: iOS, macOS
With Wotja, generate a live stream of music or create a stimulating cut-up and enjoy it as you would enjoy freshly brewed coffee - there's nothing quite like it!
Note: Capabilities are iOS/macOS version dependent.
Wotja 4 is available in two versions: a free subscription version ("Wotja") and a paid for non-subscription "annual" version (e.g. "Wotja 17" / "Wotja 2017).
Identified by year (e.g. 2017 [or abbreviation e.g 17]), the paid for non-subscription "annual" version of Wotja is updated in tandem with Wotja during that year only. It has the same capabilities as Wotja with an active "Wotja Unlocked" In-App Subscription. The annual version has no In-App Store or In-App Subscriptions.
Important: At the end of the year in question the annual version will be removed from sale and no further updates will be made available for it. It will likely continue to work just fine if you subsequently update the operating system on your device but if you find you require further updates, perhaps because of an operating system or 3rd party component update, or if you want to get and use the cool new features, content and capabilities as Wotja evolves, then simply purchase a later annual version (e.g. Wotja 2018). Alternatively, get the subscription version of Wotja and purchase one of the In-App Subscription tiers. These are: "Wotja Unlocked" or, for extended Music Play Times, a range of "Wotja XT" tiers. See FAQ on subscriptions and their benefits.
* By quirk of fate, the 2017 paid for Wotja for iOS i.e. "Wotja 2017" (also previously referred to as "Wotja Pro 2017") has the more capable "Wotja XT1" tier enabled which is more than the "Wotja Unlocked" tier. That will be addressed in the Wotja 2018 release! :)
So there is always a way that Wotja can be used for FREE we include in the free subscription version a "Free Mode" of operation. It does have certain "Limitations" (see below), but simply purchase ANY In-App Subscription to unlock them.
On lapse of any In-App Subscription Wotja simply reverts to operating in "Free Mode" - it's as simple as that!
Note: For the subscription version we also provide a one time only fully functional 3 Day Free Trial (see the link for details).
The "Free Mode" Limitations are as follows:
Wotja is a deep app and that is reflected in this detailed User Guide. The iOS and macOS versions have largely the same features with interfaces that are geared to the underlying operating system. If you know how to use one, then you know how to use the other and vice versa. Because of that, and because Wotja for iOS came first, this User Guide is presently based around the iOS interface.
Note: Throughout this User Guide we use screengrabs for the Light UI Theme (this is the only theme presently available in Wotja for macOS).
Check out the Wotja: Quick Start (4 min) video or just start out by creating an auto-randomised Music Mix and explore from there:
Wotja: Quick Start (4m)
Please let us know if you think anything is wrong or missing!
See the Video: Wotja iOS: Quick Start (4m) [the same principles apply on macOS]
The Wotja Menu on macOS is where you can:
Tip: Use Finder to carry out normal file related activities e.g. delete/duplicate/rename/sort etc.
Note: You may want to use iCloud rather than local storage (if you do use local storage we strongly recommend saving your files to the Intermorphic Folder). If you use iCloud your files will also appear in the Wotja iCloud Drive folder for all your devices, meaning you can easily sync your Wotja related files between devices that share the same iCloud account (this is also handy for the Wotja Safari App Extension for macOS). See the iCloud FAQ.
WOTJA BACKUPS: Make these by: A) Using iCloud to store your files, or by B) backing up your device with Time Machine or equivalent; or C) emailing yourself a backup copy of each wotja. Using iCloud is the easiest way to manage your files.
UI Item | Description |
Menu Bar |
|
Wotja Menu [macOS] | Wotja for macOS Menu items
|
See the Video: Wotja iOS: Quick Start (4m)
If you launch Wotja on iOS the Files screen is the first screen you see. It displays the openable files (see below) that are in the Wotja iCloud folder or present in the Local Wotja app folder on the device (see iCloud/Local below).
The Files screen is where you can:
Filetypes:
Tip: The thumbnail you see for each file in iOS varies according to the file type and whether your file uses TTM.
Tip: When you first start Wotja, you're prompted if you want to use iCloud or Local. If you change your mind, go the iDevice's Settings screen, scroll down that and look for the version of Wotja that you have and go into that screen. You will see a "Use iCloud" toggle. If you turn that off your files are ONLY saved locally to your device. You should back them up regularly. See the File Management FAQ.
Note: You may want to use iCloud rather than local storage (i.e. saving your files to your iOS device). If you use iCloud your files will also appear in the Wotja iCloud Drive folder for all your devices, meaning you can easily sync your Wotja related files between devices that share the same iCloud account. See the iCloud FAQ.
WOTJA BACKUPS: Make these by: A) Using iCloud to store your files, or by B) backing up / synching your iOS device (note that a device restore will be needed to recover your wotjas); C) emailing yourself a backup copy of each wotja, or; D) if you have a desktop computer, use iTunes Apps File Sharing to copy your wotjas off your device and to save them to your computer. Using iCloud / iCloud Drive is the easiest way to manage your files, but if you do not want to use that and/or want to manually back up your files see the instructions on the Intermorphic website for File Management - Where should I put or look for App Files, Zips, SF2, WAVs etc.?.
UI Item | Description |
Album [iOS] | The Album Player is only for playing the Built-In albums. |
Action [iOS] |
Popup Menu: |
Settings | Go to Settings screen [macOS: Wotja > Window > Wotja Settings] |
Edit | First tap the jiggling file(s) to select the ones that you wish to perform an action on and then:
|
Create New | Select "Create New" to see the following popup menu [macOS: Wotja > File > New]:
|
Thumbnail | Saved File: Tap on one of the Saved File document thumbnails to open a previously created file. A file's thumbnail will briefly jiggle when you close the file and return to the Files screen, making it easy to see what file you have just played or edited. How the thumbnail displays depends on a number of factors:
File Name: Tap on the File Name for a pop up dialog to rename the file. |
Thumbnail | Wotja List: Wotja List files (.wotjalist) are played in the List Player. Wotja List files are indicated by a small purple list icon that overlays the bottom right of the thumbnail image. If the Play list includes an Album thumbnail then you will see that here, otherwise you will see a list of the included files. File List Name: Tap on the File Name for a pop up dialog to rename the Wotja List file. |
Thumbnail | Wotja Box: Wotja Box files (.wotjabox) are played in and exported from the List Player. Wotja Box files are indicated by a small golden box icon that overlays the bottom right of the thumbnail image. If the Wotja Box includes an Album thumbnail then you will see that here, otherwise you will see a list of the included files. File List Name: Tap on the File Name for a pop up dialog to rename the Wotja Box file. |
Template | Template: A template file is shown with a small IME overlay in the bottom right corner. These are presently .noatikl files, but we may later change the extension. You can save the generative content in a cell as a template from the bottom toolbar Toolbox icon and selecting "Save as File". Once saved, you can find these files in the Template list under "Saved Files". |
See the Video: Wotja iOS: Template List (5m)
The Template List is covered at the beginning of this User Guide because Wotja's use of templates is fundamental to how it works.
Templates are self contained "generative music and sound presets" - they can vary from being simple to very complex complex generators of notes and sounds.
Using randomisation techniques Wotja lets you mix templates together to very quickly create interesting music mixes. Once added to a mix you can edit/customize any of their settings, but you do not have to - they sound great as they are!
The Templates screen is where you preview and select templates that you want to base a new mix on (when creating a new Manual mix) or where in Mix mode you add a template to a Content Cell.
This screen can be accessed from:
On the left of the top panel is a button that takes you back to the screen you came from. Depending on how you accessed this screen, the top right menu items will vary (see below).
Tip: If you tap on a template or file in the left hand panel you can preview it without having to open it.
Tip: We include a number of cool Demo Pieces for you to to check out. Turn off the Random? toggle to see the "Demo Mixes" pak at the bottom of the Paks list. Some of the Demo Mixes require installation of one of the Free add-on Content Paks.
UI Item | Description / Menu Items |
Back to the screen you came from. | |
Random (Top right menu) |
When creating new Manual Mix:
|
Show Older? (Left) |
Toggle this on to see older templates that were included in Noatikl 2 and Mixtikl 6. |
Random? (Right) |
Toggle this on to see all the Pak and content toggles and the top "Random" menu option (only when creating a new Manual Mix). These toggles give you fine control over what Paks and content can be selected when you select the Random menu item on top right. Tip: Turn this off to be able to see the "Demo Pieces" Pak at the bottom of the Pak list. |
Random Settings | Shown only when Random? toggle is on. Takes you to the Randomization Settings screen. |
Paks (left list) |
The list of Paks you can select a Template from. Saved Files: Always shown at the top for easy accesss, this is list of wotjas or generative templates that you have already created and saved. WJ4 Paks: These include templates optimised for Wotja 4. IME VoiceTypes: Simple templates that let you start a cell with just one VoiceType. IME Others: Older sundry templates. IM3 Paks: The Paks that were available for Noatikl 3 and Mixtikl 7 IM2 Paks: (Shown in dark grey, and only if "Show Old?" toggle is on). These include generative templates that came with Noatikl 2 and Mixtikl 6. IM1 Paks: (Shown in dark grey, and only if "Show Old?" toggle is on). These include generative templates that came with Noatikl 1 and Mixtikl 1-5. 3rd Party Paks: If you have them installed, Wotja Paks (e.g. MDB or the AL Collections) are shown in dark grey, italic. Other third party paks are shown in black, italic. Demo Files: Have a listen! Tip: To be able to see this Pak, turn off the "Random?" toggle. |
Templates (right list) |
The list of Templates in the selected Pak. Tap to preview a Template; tap again to stop the preview. |
See: "Free Mode" & Limitations
See the Video: Wotja iOS: Quick Start (4m)
Wotja is a very powerful creativity tool for creating and sharing generative music mixes and cut-up ideas.
The Wotja mix files it can save contain everything Wotja needs to play and display what you have created (excepting any locally referenced items, e.g. .zip, .sf2, .wav, .ogg, .midi files; these are not saved to mix files).
This means a Wotja mix file contains generative music parameters, sound network configurations and settings, text and emoji, display settings and even a background image - what is saved to the file depends on whether you are using Free Mode or not and what you have added to it.
In order to edit the different kinds of parameters/settings that are stored in the file we have three distinct editing modes in Wotja. These modes are refered to as "Mix", "Cut-Up" and "Design". The parameters/settings used in each of these modes are saved to the Wotja file.
Each of these three modes is accessed via a "tab" on the bottom tab bar in Wotja, which is slightly different for the iOS and macOS versions, as shown below.
Mix | Cut-Up | Play/Stop | Display | Settings
Mix: Where you "design" your wotja, meaning accessing parameters for the Intermorphic Music Engine (IME) and Intermorphic Synth Engine (ISE) to define how the music is generated and what sounds are used, adding TTM (text), mixing voices and templates and setting cell rules for arrangement.
Note: Displayed via the top toolbar segment control, the Mix mode features 5 different right hand panel views of data (two of the panels are accessed by one of the segments). Each of these provides access to different controls that let you set up much of how your wotja works.
In addition, and so they are accessible throughout the app, we include two other controls (access is OS dependent):
See: "Free Mode" & Limitations
See the Video: Wotja iOS: Quick Start (4m)
This section gives you a quick overview of the interface related to creation of Wotja mixes in the Mix Mode, accessed via the bottom Mix Tab.
The Mix Mode has the most involved UI in Wotja as it concerns the mixing and editing of generative music. Both iOS and macOS versions have largely the same authoring feature set with native interfaces and the same way of working. If you know how to use one, then you know how to use the other and vice versa.
Note for macOS: There is a draggable middle splitter bar that lets you dynamically resize the size of left and right hand panels to suit your preference. In macOS 10.11, if the RHS network panel is resized (and the same for some others), it does not dynamically refresh.
Use the top toolbar 4 way segment control to show either the Network, TTM, Mixer or Rules data in the Wotja mix file.
Use the top toolbar button to right of the Panel Display segment control for a pop-up menu to select between Multi Column, Single Column or Single Cell display modes.
See the Central Area of the table below for detailed information on the Wotja Content Cells.
UI Item | Description |
Menu Bar |
|
Save/Back to Files [iOS] | Save / Back to Files See: "Free Mode" & Limitations Displays the Save Changes popup (see below) before exiting to the Files Screen.
|
Randomize Mix |
|
Toolbox |
See: "Free Mode" & Limitations Tap the Toolbox button to pop up a menu where you can select from a number of useful actions. The button will take on a fuschia colour when you have selected a sticky action. Tap the button again to turn off sticky behaviour.
|
Action | See: "Free Mode" & Limitations
|
Top Toolbar |
|
Column Lock | Tap on this button to lock a column to force the play of all cells in that column; tap again to unlock it. Locking of a column only has effect on cells for a Track with Track Rule of type "Sequence" and where cells are not looped (i.e. no orange band). In single column view, the column number shown at the top is that of the selected Cell. |
Mix FX | This button indicates if there is any Mix level FX applied. When there is no FX applied it is a dull blue colour. Tap the button to go the the ISE FX Network Editor where you can create or edit a FX network. |
TTM | TTM Panel: For a selected Cell that contains generative content the right hand panel shows a TTM text field for every voice in a cell. Only Fixed Pattern voices (pink) can play TTM, and the Enable toggle will change a voice to that when turned on. |
Track Mixer (Default) Voice Mixer |
Mixer Panel: Once in this panel, tap the button again for a pop-up menu where you can choose between seeing the Voice Mixer and Track Mixer panels.
|
Cell Rules | Cell Rules Panel: Right hand panel shows the paramater values for the selected Cell that determine things such as how long it will play for. |
Network | Network Panel: For a selected Cell that contains generative content the right hand panel shows the cell's generator network. Tap on the buttons in the network to have quick access to the relevant Voice parameters for the Intermorphic Music Engine (IME), right through to accessing the Intermorphic Synth Engine (ISE) to carry out any sound design you wish to do. |
Mix Display Mode button | A mix always includes a "grid" of 12 tracks of 4 cells. You can populate or leave empty any cells you wish. This button, shown to the right of the panel selectors, has a pop-up menu allowing you to select one of three display modes for the grid:
|
Central Area - Content Cells |
|
Content Cell | Content Cells are at the heart of Wotja. You can use the bottom toolbar right side "grid" icon to toggle the left hand Content Cell display to show either 1 column of Cells or 4 columns of Cells. There are 3 areas/parts of cell, see below. |
Selected Generative Audio Loop MIDI File |
Selected Cell: When a Content Cell is selected the border of the cell takes on a fuschia colour and the top or bottom of the cell takes on a lime green background colour that marries up to the right side panel that has been selected to display. The top of a Content Cell also displays an icon depending on the kind of content in it:
|
Cell Status: Playing Looping Play Empty |
The middle of a Content Cell displays the Cell Status band and within that is the name of the file in the Cell. The colour of this band indicates the following:
|
Cell Values: Playing Stopped Infinite Missing Content |
The bottom of a Content Cell shows the cell "Arrange" values, and these are presented differently depending on whether the mix is playing or stopped. The topmost values shown in blue are the Cell's Generative Bar values and the values below those in black or dark grey are the Cell's Cell Repeat values.
|
Central Area - Track Controls |
|
Track FX | Default - None: Tap this button to go into the ISE Network Editor where you can add Track FX. |
Track Rules: Sequence One Shot Loop |
Default - Sequence: Sequence: When the content in the Track's current cell has finished playing, the next Cell in the track will play (unless it has been forced to loop). One Shot: No Track Cell will play UNTIL it has been triggered (it will display the green "play marker" in the middle of the cell). Once triggered, any content will play through ONCE (like a sting) and then the cell will stop playing. Loop: No Track Cell will play UNLESS it is forced to loop - either by tap/hold on the cell or by setting the Loop toggle in this panel. Turn off looping the same way. Tip: When using the Toolbox menu "Randomize" menu functions only the item "Randomize Cell (sticky)" will randomize the Cell. Advanced Tip: Cells in Loop tracks containing Audio/MIDI content will play ONCE when the Column lock is first applied to a Column (if a cell is not already looping); cells containing generative content will be set to play for the length of the mix (∞). |
Track Solo Button | Tap to solo the related Track. Gold tint means soloed, grey means not soloed. This button is in the Track Control grouping to the left of the sliders. |
Track Mute Button | Tap to mute the related Track. Dark grey means soloed, grey means not soloed. This button is in the Track Control grouping to the left of the sliders. |
Central Area - Right Side Panel |
|
Generator Network | Voices Button: This is a shortcut for Voice Editor screen and this is the top left Voices button. You can still tap a Voice and select Edit from the pop-up menu to go to the Voice parameter screen for that voice. See also the Intermorphic Music Engine (IME) section of the guide for details on what the parameters do. What shows in this area depends on which panel you are in: See in order:
|
See the Video: Wotja iOS: Quick Start (4m)
The right side "Network" panel is where you can marry IME voices (note generators) to MIDI channels, ISE synth sounds and FX. The buttons in the network and associated ISE network all provide quick links to the underlying paramaters and editors.
Tap the top Voices button for quick access to the IME parameter editors. Go to the Cell Rules panel to set Cell and Mix level settings such as Cell Rules and Mix Tempo.
Tap/hold on a voice and you can drag it up/down to change the voice order. If you drag from a Voice button to a MIDI channel box that will tell the system that the Voice will play through the defined MIDI channel. If a new voice is added to a piece, the voice won't be assigned to a specific MIDI channel; if you haven't yet hooked-up a Voice to a MIDI channel, the IME will decide on a free MIDI channel to hook-up the Voice to when it starts playing.
For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide.
For full information on the Intermorphic Sounds Engine (ISE) parameters refer to the ISE section of this guide.
UI Item | Description |
Voices button | Tap to go to the Voice Editor screen. See also the Intermorphic Music Engine (IME) section of the guide for details on what the parameters do. |
Piece FX | Tap set the piece level FX in the ISE FX editor. |
Voice button | Tap on a voice to get a Voice Action pop-up menu below. To Paste a voice (once copied) you must tap an existing voice and then select Paste.
|
MIDI channel | The Voice "IME Patch" parameter (see Voices screen) defines which MIDI Patch command to send for each MIDI channel. The MIDI channel box is an indicator and not a button. However, you can tap/hold a voice button and drag it to a MIDI channel box. In general, you should only hook-up multiple Voices to the same MIDI channel if they all share the same Patch parameter. MIDI Channel 10 is reserved for the Drum instrument. Every voice with a Drum Patch, should generally be attached to MIDI Channel 10. |
Synth button | If the "ISE for Sounds & FX" toggle is checked in the Settings screen, then MIDI events are routed for each channel through a ISE Synth configuration defined by the associated Synth button, which by default will use ISE's built-in MIDI Wavetable synth (using the Patch defined by the Voice's Patch parameter). If you want to use a custom sound, click the Synth button to invoke the ISE Synth editor. |
Track FX button | The output from every Synth box can be passed through a custom FX Network. If you want to use an FX, click the FX button to invoke the ISE FX editor. |
See the Video: Wotja iOS: Quick Start (4m)
The "Text to Music" (TTM) panel is where you see which TTM players are active and it provides a quick route to adding text into them.
Tap on a coloured voice button to take you to that Voice's parameters in the Voice Tab.
Tap on the Text area to go into the Text Editor screen (see table below) where you can add your text and emoji.
You can use any text or symbols (including Emoji), and in can be in any language. In general it takes 2 characters to generate a note, but as a special case if only 1-3 characters or emoji are entered then Wotja will still generate a 3-4 note melody.
UI Item | Description |
TTM Panel |
|
Voice button | Tap to take you to the parameters for this voice in the Voices tab. In that screen tap the LHS "Text Pattern" item to scroll to all the TTM related parameters. |
Text | This is your TTM text. Tap this to go to the Text Editor screen below. |
Enable toggle | Turn this on to enable the TTM voice, meaning your text will be used to generate a pattern. If the voice type is not already Fixed Pattern turning on this toggle on will change it to one. The pattern generated by your text will then overide any pattern that may already be in the Fixed Pattern voice. |
Accessed via the Mix Mode > TTM Panel > Voice TTM button or via the Mix Mode > Network Panel > Voices Button > Text to Music > Text parameter, this is the screen where you enter your TTM text and emoji.
Tip: Using the Randomise button in this screen is a quick and easy way to create some cut-up text!
See the Video: Wotja iOS: Quick Start (4m)
Tip: To swap between Voice Mixer and Track Mixer panels, first select this segment in the top toolbar. Tap the segment again for a pop-up menu which allows you to change between them.
The right side "Voice Mixer" panel is where you can easily change the volume and pan balance of the Voices (generators) used within the cell.
Tip: To mix tracks against each other use the Track Mixer panel.
Tap on a slider to change the volume or pan.
Tap the Mute or Solo button to mute or solo the Voice. These buttons do not at present change colour like those in the Track Mix panel.
UI Item | Description |
Voice Mix Panel |
|
Voice button | Tap to take you to the Voice in the Voices tab so that you can edit its composition parameters. |
Volume Slider | Tap to change the volume for the related Voice. Tip: This slider changes the volume value for the MIDI channel that this Voice is on. You may have multiple Voices all on one MIDI channel. In that instance, try changing the Voice's Velocity parameters instead. |
Pan Slider | Tap to change the pan position for the related Voice. Tip: This slider changes the pan value for the MIDI channel that this Voice is on. You may have multiple Voices all on one MIDI channel. |
Voice Mute/Solo Buttons | Tap to mute or solo the related Voice. Tip: The Voice button will turn light grey when it is muted. These buttons do not at present change colour like those in the Track Mix panel. |
See the Video: Wotja iOS: Quick Start (4m)
Tip: To swap between Track Mixer and Voice Mixer panels, first select this segment in the top toolbar. Tap the segment again for a pop-up menu which allows you to change between them.
The right side "Track Mix" panel is where you can easily change the volume and pan balance of each of the tracks used in the mix.
Tip: To mix the internals of a cell use the Voice Mix panel.
Tap on a slider to change the volume or pan.
Tap the Mute or Solo button to mute or solo the Voice. These buttons change colour to indicate their status.
UI Item | Description |
Track Mix Panel |
|
Volume Slider | Tap to change the volume for the related Track. |
Pan Slider | Tap to change the pan position for the related Track. |
See the Video: Wotja iOS: Quick Start (4m)
The right side "Rules" panel is where, amongst other things, you can easily set the parameters that define how a Cell will play, as well as the rules used for the Piece in that Cell AND some general values that apply to the whole Mix (such as Tempo, Root, Ramp Up/Down as well as Playlist Duration settings, all shown at the bottom of the panel).
Tip: The values of some of these cell settings are shown overlaid on the relevant Cell.
Mix section: The Mix Tempo, Mix Root and Ramp Up/Down settings apply to both a mix and/or that mix in a PLaylist, but the Playlist Duration/Playlist Duration Range/Playlist Ramp Down are specific to that mix only in Playlists.
Important: We do not support Mix level rules that override those in all cells, but it is something we may consider later.
Tip: When exporting a piece for use as a template, it is best to use a maximum piece length (32,000 seconds).
Tip: If you are going to be making your mix or piece available for others to use, you may well wish to include your own copyright statement for each piece in the mix. Each voice within the piece can also have its own copyright statement.
For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide.
UI Item | Description |
Generative Cell |
|
Gen Bars | Default: ∞ - The minimum number of bars for which a cell will play generative content. Special Value: If this value is set far left to ∞ then once play in a Track reaches such a cell the generative content in that cell will continue to play either for as long as the mix plays or until you manually select another cell in that Track to play. This value is the first of a pair of numbers shown in blue in the top line of text at the bottom of the cell. |
Gen Bars Range | Default: 0 - A value that is added to the Gen Bars value to define the maximum number of bar for which a cell will play generative content.
This value is the second of a pair of numbers shown in blue in the top line of text at the bottom of the cell. If the first value (above) is ∞ then this value is not shown. |
Harmonize with Me | Default - ON: This determines if Wotja needs to take the notes played by this Cell into account when composing/playing other Cells. |
Harmonize with Others | Default - ON: This determines if Wotja needs to take the notes played by other Cells into account when composing/playing notes for this Cell. |
Generative Piece Rules |
|
Scale Rules | Default - Default Rule: When the cell is playing any active rule element will flash; the colour is that of the Voicetype of the playing voice. To edit or change the Piece Level Scale Rule (which can be overridden at Voice level), tap on it to go to the Rule Editor screen. For information on Scale Rules refer to IME Rule Object. For information on Piece Level rules refer to IME Piece Rules. |
Harmony Rules | Default - Default Rule: When the cell is playing any active rule element will flash; the colour is that of the Voicetype of the playing voice. To edit or change the Piece Level Harmony Rule (which can be overridden at Voice level), tap on it to go to the Rule Editor screen. For information on Harmony Rules refer to IME Rule Object. For information on Piece Level rules refer to IME Piece Rules. |
Next Note Rules | Default - Default Rule: When the cell is playing any active rule element will flash; the colour is that of the Voicetype of the playing voice. To edit or change the Piece Level Next Note Rule (which can be overridden at Voice level), tap on it to go to the Rule Editor screen. For information on Next Note Rules refer to IME Rule Object. For information on Piece Level rules refer to IME Piece Rules. |
Generative Piece Info |
|
Title | Displays the Title of the Piece/Template, if it is defined. For information on Piece Title refer to IME File. |
Author | Displays the Author of the Piece/Template, if it is defined. For information on Piece Author refer to IME File. |
Notes | Displays any Notes in the Notes field the Piece/Template, if defined. For information on Piece Notes refer to IME File. |
Cell Rules |
|
Cell Repeats | Default - 1: The minimum base value for the number of times a cell will repeat after it has played through once and to which the range value (below) is added. For a generative template each bar counts as one repeat; for audio or MIDI content this is the length of the content rounded up to the end of a bar). Note: If the cell contains generative content and the Generative Bar Min is value is set to ∞ then this setting takes no effect as the cell never repeats! This value is the first of a pair of numbers shown in black in the bottom line of text at the bottom of the cell. |
Cell Repeats Range | Default - 0: Sets the range that applies to the above base value. This value is the second of a pair of numbers shown in black in the bottom line of text at the bottom of the cell. |
Loop (Toggle) | Default - Off: Turn this on to force the Cell to loop continuously. Only once Cell per Track can be looped. Turning on Looping for another Cell will turn off Looping for this Cell. |
Cell Root Offset: Mix Root + Semitones | Default - Template Root: Choose the Root you want to apply to the Cell. Its value is a Semitone offset from the Mix Root. |
Track Rule |
|
Sequence/One Shot/Loop | Default - Sequence: Sequence: When the content in the Track's current cell has finished playing, the next Cell in the track will play (unless it has been forced to loop). One Shot: No Track Cell will play UNTIL it has been triggered (it will display the green "play marker" in the middle of the cell). Once triggered, any content will play through ONCE (like a sting) and then the cell will stop playing. Loop: No Track Cell will play UNLESS it is forced to loop - either by tap/hold on the cell or by setting the LoopToolbox menu "Randomize" menu functions only the item "Randomize Cell (sticky)" will randomize the Cell. Advanced Tip: Cells in Loop tracks containing Audio/MIDI content will play ONCE when the Column lock is first applied to a Column (if a cell is not already looping); cells containing generative content will be set to play for the length of the mix (∞). |
File Info |
|
Name | File name: This displays the name of the audio/MIDI file or original template used in the Cell. |
Path | Pak Name: This displays the name of the zip file that includes the template. |
Duration | Content length (secs): This displays the play length of the content in the cell. |
Mix |
|
Tempo: | Default - Template Tempo: Choose the Root you want to apply to the Cell. Its value is a Semitone offset from the Mix Root. |
Ramp Up: Seconds | 0-20: This applies when the mix starts to play (also in a Playlist). |
Mix Root: | Random root is chosen for an automatic mix or from the template if created manually: Choose the Root you want to apply to the whole Mix. |
Playlist Duration: Seconds | 10-7200: This is how long the mix will play for in a Playlist (overridden by Music Play Time). Double tap for a pop-up menu where you can edit the value via on-screen keyboard. |
Playlist Duration Range: Seconds | 0-7200: A range value added to the Playlist Duration value (overridden by Music Play Time). Double tap for a pop-up menu where you can edit the value via on-screen keyboard. |
Ramp Down: Seconds | 0-20: This applies when the mix stops playing in a Playlist. |
The Voices screen is where you edit all the parameter values for each of the voices in the piece in the cell. You get to it from the Network panel by tapping on a Voice button and selecting Edit from the pop-up menu.
Simply select the Parameter Group on the left hand side, and then edit the parameters on the right.
For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide.
UI Item | Description |
Undo/Redo | Undo or Redo your last parameter change. |
Central area |
|
Voice Selector Bar | The Voice selector bar shows the number of voices in the piece (in the selected cell). Tap in the left or right side of this bar to move to another. |
Parameter Group List | Tap the item you are interested in the left hand Parameter Group list for the right panel to scroll to that section. Tip: Tap "Basics" to scroll the Parameter Values panel to the top so you can see the Voice name. For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide. |
Selected Parameter Group | The selected Parameter Group. |
Parameter Values Panel | The Parameter Values panel is where you change the values for parameters in the group. Swipe up / down in this panel to scroll up or down. For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide. |
This view is where you select and (real-time) edit the Rules used in your voice or piece - be they Scale, Harmony, Next Note or Rhythm rules.
UI Item | Description |
Top area |
|
Rule Element | This control lets you change the rule elements. Tap on a rule element to change its value. The composition engine accomodates all rule changes in real-time - which can be a lot of fun! So that you can tell when a voice using the currently selected rule composes using it, it flashes the colour of the voice type used by that voice. This is primarily to remind you that other voices rely on that rule, so if you are going to change it then the way other voices compose may change, too. It can be useful to have the same rule used by all voices, but if you want to, then each voice can have its own rule! For full information on the Intermorphic Music Engine (IME) parameters refer to the IME section of this guide. |
List area |
|
Rules List | Below the Rule Edit area is a scrollable list contains all of the defined rules. Tap a rule to select it so that you can edit it in the Rule Edit area above. |
Toolbar |
The toolbar contains the Add Rule button, as well as a the Edit Rule Name, Cut, Copy and Paste buttons and the Delete button. When you select the Add Rule button you are presented with a set of included default rules. For Scale rules these may include Major, Minor, Dorian, Hypodorian, Hypolydian, Hypomixolydian, Hypophyrgian, Lydian, Mixolydian, Pentatonic, Phrygian. |
This view is where you edit all the Pattern parameters. Patterns are a little tricky to use because of limited string editing, so be aware. We suggest instead to use TTM Patterns.
UI Item | Description |
Top area |
|
Pattern Edit field | Tap in the field to edit the IME Pattern or Sub-pattern. The IME Pattern Syntax can take a bit of getting used to and you will need to study it carefully if you want to use patterns. |
List area |
|
Pattern List | Below the Pattern Edit field is is a scrollable list contains all of the defined patterns or sub-patterns. Tap a pattern to select it so that you can edit it in the Pattern Edit field above. |
Toolbar |
The toolbar contains the Add Pattern button, as well as a the Up and Down buttons to move patterns up and down, the Delete pattern button and the Presets button. Select the Presets button display a list of preset included patterns to choose from. IMPORTANT: The pattern you select in the presets list OVERWRITES your current selected pattern. Tip: Patterns are a way that can be used to create hidden structure in a piece. Set up a voice to be of Voice Type Pattern, set its volume to be zero (e.g. in the Blend view), but do not mute it (or it will not count in terms of composition). Then, follow that Fixed Pattern voice with another voice. Set up the following voice with Chords Strategy set to Chordal Harmony and you will never hear the pattern but it will be used as an invisible skeleton around which to compose! If you want to hear the pattern, set Follows Strategy to Semitone Shift. |
Voice Envelopes are supported for the following parameters:
Envelopes work in the same way for all of these. This view is where you edit the Voice Envelopes.
Each envelope is a collection of up to 100 data points. A piece starts with the value at the left side of the envelope, and as it progresses, eventually ends up with the value from the far right of the envelope.
UI Item | Description |
Envelope Mode | Draw: Select this if yoi want to draw direct on to the envelope with your finger to change the values. Macro: Select this to use one of the various macro envelope editing tools. |
Envelope Editor |
|
See: "Free Mode" & Limitations
The powerful "cut-up technique" allows you to quickly generate ("Create") random word associations ("Cut-up") from a pool of words. This pool can include words from up to 5 user entered text fields ("Sources"), a user word library ("Word Library"), the customisable Wotja Word Bank ("Word Bank") and a non-editable Wotja Word Database ("Word Database").
You can lock down ("Lock") any words you want or, for just a selected word, choose one of the alternative cut-up words presented. You can use Rules ("Rules") to constrain your cut-up by lines, words and syllables.
Keep iterating until you find the interesting, inspiring or serendipitous combinations of words you are looking for. Save the the best Cut-ups ("Saved") and then use in real-world lyrics, poems, haikus, tweets etc.
For your cut-up you get to choose how many lines and how many words per line you want in it and whether you want Wotja to attempt End of Line (EOL) rhyming.
Tip: You can also also quickly generate cut-up in the Text Editor screen.
In Wotja for macOS there are 3 main panels in the display.
In Wotja for iOS these are selected by the control at the top (shown above):
Important: We respect copyright and strongly encourage you to do the same. That means if you use Wotja to come up with a lyric you like, make sure that it does not infringe the copyright of any of your source material. Wotja is pretty good at creating random "cut-ups", but it is just a tool for you to use to generate ideas. It is ultimately your responsibility to make sure you are not infringing anyone elses copyright.
The Sources screen is the first of the three Cut-Up related screens.
It is where you input and store all the text you want to be used as a source for your cut-up. The sources are saved in the your Wotja file and you can have up to 5 of them.
Each source field is plain text only and you can type the data in directly, or paste-in some text from the clipboard.
macOS: There are also various other options you can use, which are on a pop-up menu that you can get at either by either right clicking or control clicking.
The Sources text boxes are all editable, which means you can move words around by cutting and pasting, or even edit or manually add in new words.
Tip 1: The more interesting the source material you use, the more interesting the cut-up suggestions generated. You can think of your favourite source materials like spices or ingredients, and then build up a collection of your favourites to add when you want. You can then add as little or as much as you like!
Tip 2: Why not try using text from some current news item as a Source - that way you can make sure you use words that are current, and some interesting themes can seemingly come out of nothing!
Tip 3: The more words there are in your Sources the more options for cut-ups.
Tip 4: To use the "Sources Only" cut-up mode requires that you have at least one source defined.
UI Item | Description / Menu Items |
Action | Popup Action menu.
|
Delete | Clear out this particular source. |
Text Area | This text area displays your source. It supports standard iOS text copy/paste etc controls. There is no formatting of text in a source. Wotja for macOS: In Wotja for macOS you can access a pop-up context sensitive menu by right clicking/control clicking on one of the text fields in the Sources area, or a word in this area. Right/Ctrl click on a word NB: You can click on a word, or, specifically in respect of the search option, select (highlight) single or multiple words.
Click on the background
|
Page Control | Either tap a dot or swipe the screen left or right to move between sources. |
The Create screen is the second of the three Cut-Up related screens.
It is where Where you create your cut-ups. The created cut-up, locks and associated Rules are saved in your Wotja file.
Tapping a word will lock/unlock it (a locked word is shown in red and will not be changed when you press the Create Cut-up button).
UI Item | Description / Menu Items |
Action | Popup Action menu.
|
Save | Saves this cut-up to Saved. If this is the first one you save you see no pop-up. If you already have a saved cut-up in Saved, you see a pop-up with two options:
|
Edit | Select to be able to edit the text in the cut-up area as plain text e.g. perhaps to change a word or even add new words (in which case a suitable new matching Rule will be generated). When in Edit mode, click in a word to place the cursor and press the Esc key to see a drop list of words; or double click a word to select it (once selected if you wait a second and click/hold the word again you can drag it). Press "Done" when finished to revert back to standard cut-up screen behaviour where tapping a word will lock/unlock it. |
Rules
Rules |
This top left button shows you the rule being used to create your cut-ups. If the rule has a title you will see it here, otherwise you will see the rule syntax. Tap on the Rules button to go to the Rules List where you can select a rule. Tap on the Rules button to go to the Rules List where you can select a rule. |
EOL (End of Line) toggle | Setting determines whether Wotja attempts to rhyme the ends of lines with other lines. For true, random, cut-up, then you would leave this set to EOL - OFF. |
Character Count | Displays the number of characters in your cut-up (useful to know if you plan on tweeting your cut-up) and number of syllables in each line. |
Text Area | Lines are alternatedly coloured with black and dark grey so that if your text wraps you can easily see which line the words are in. Tap a word to lock or unlock it (it shows in red when locked). When you select a word (locked or unlocked) it also underlines it to show that it is the selected word (e.g. "inspiring" in the screenshot above). To select a word without changing its lock state tap on it and then drag away from it and release. Even though the word does not display an underline, it is now selected. |
Word Alternatives Bar | This is displayed just above the bottom toolbar. If you tap on one of the four alternative words (e.g. "creative" in the screenshot above) then that word will replace the selected word (e.g. "inspiring" in the screenshot above). To refresh the alternative words shown, either tap a blank part of the cut-up area or tap the Create Cut-up button. |
Library Button |
Located to the left of the Blend slider, tap this to view the User Word Library which where you can add your own favourite words ("spices") that you can mix with words from your sources. In the User Library click the Show button to view the Wotja Word Bank (containing over 650 selected words). Both are editable/customisable and operate as standard text fields. The User Word Library and Wotja Word Bank are both stored outside of the Wotja file, so these words are available to use in cut-ups for any file. |
Blend Slider | The position of the blend slider determines what proportion of words are selected from your Sources or from the User Library and/or Wotja Word Bank. Left means use words only from Sources, and right means use words only from your Word Library. Any where in between is a blend! |
Cut-Up Mode Selector | Tap the Mode Selector to choose how your cut-up is created. Word Lock: In this classic mode, words can be locked, and the non-locked words are changed using the active rule (including syllables), and are sourced from Sources text, User Library and any Word Bank data you might have defined. This mode is very useful for fine-tuning a cut-up. Sources Only: This new cut-up mode analyses the structure of the Sources text and lets you create cut-up with a more natural feel; in this mode the cut-up is created from Sources ONLY and it uses the active rule (ignoring syllables) but EOL rhyming and word locks are ignored. |
Create Cut-up Button | This button looks like a dice and is located on the right of the tools panel. Provided you have first added some words to at least one of the Sources text boxes above (or you have some words in your User Library or the Wotja Word Bank toggle is on AND the Library slider is not hard over to the right) when you click this you'll see a Cut-up appear in the text area above it. Each time you click this button all non-locked words will be replaced by words selected at random from your word pool and/or Library/Word Bank. |
Rules List |
|
In the Rules List you will see the available Rules and can select the rule you want to have used for your cut-up. If there isn't one there you want to use then you can easily create and use any rule you want - see the Rule Editor. Tip: Rules are stored in a Wotja file. When you create a new cut-up then the Rules List is populated with the default rules. The cut-up uses only the rule you select and you can delete any of these rules you don't want to be used for cut-up. Edit:
Actions:
Rule List item:
|
|
Rule Editor |
|
See: "Free Mode" & Limitations The Rule Editor provides an easy, graphical way to create rules. If there isn't a rule you want to use in the Rules List, or you want to edit it, then you can do that easily. There are 3 ways to edit or create Rules. Either:
Editor Controls:
Rule SyntaxThe most basic Rule consists of a series of numbers. Each number stands for the number of words to put in a particular line of the cut-up. For example, the numbers "3 4 5 6" would represent four lines of cut-up as there are four numbers. The first line would have three words, the second would have four words, the third would have five words, and the fourth would have six words. There is a lot more you can do if you want to, and it then helps to understand the Rule syntax. Line Rule SyntaxTip: Items in [ ] are optional. LineWordsMin [- LineWordsMax[:SyllablesMin [-SyllablesMax]]] Composite SyntaxLineRule1 LineRule2 LineRule1 [title:"Name"] Using the above syntax it is easy to create a Haiku rule with 3 lines of words within a range and and fixed number of syllables of 5,7,5 for those lines. e.g.: 1-5:s5 2-7:s7 1-5:s5 title:"Haiku" |
The Saved section is the third of the three Cut-Up related screens / sections.
It is where you can see all the cut-ups you have chosen to save. These cut-ups are saved in your Wotja file.
UI Item | Description / Menu Items |
Action | Popup Action menu.
|
Edit | Popup menu.
|
Saved Cut-up | Tap a saved Cut-Up to select it. Export Saved Cut-Up: Right click a saved Cut-Up for a pop-up menu with options to copy it to the Clipboard or share it via standard Apple services. |
Add Replace Up/Down Edit Delete Actions |
Add: Copy the current Cut-Up to the saved Cut-Ups. Replace: Replace the selected saved Cut-Up with the current Cut-Up. Up/Down: Use these buttons to change the order of saved Cut-Ups. Edit: Copy the selected saved Cut-Up to the Cut-up screen for editing. Delete: Delete the selected saved Cut-Up. Export All: Tap the right hand Actions button for a pop-up menu with options to copy all saved Cut-Ups to the Clipboard or share them via standard Apple services. |
Cut-up | Edit saved cut-up: Tap on a saved cut-up and in the pop up message select OK to copy it to the Cut-up screen for editing. Delete saved cut-up: Swipe left on a cut-up and select Delete. Export one cut-up: Swipe left on a cut-up and select Export. |
See the Video: Wotja iOS: Playlists (8m)
The Display Tab (also referred to as Display Screen) is where you access the screens that let you set up how your wotja looks, i.e. for Fullscreen display when someone loads it.
If you want to add text to your wotja you can do that in the TTM view in the Design screen.
UI Item | Description / Menu Items |
Files | Back to Files screen. For details on the Save Changes popup displayed when you press this button see the description of this button in the UI Elements section. |
Action | Popup Action menu. For details see the description of this button in the UI Elements section. |
Text | Displays a pop-up menu where you can select:
|
Background | Go to a screen where you can set the background colour via RGB sliders or a HSB colour wheel. |
Picture | iOS: Goes to the Photos app screen where you can select a picture to use as a background image to your wotja. Turn off the toggle to remove the image from the wotja when you next save it. macOS: Select an image using Finder. Tip: If you want to export an imageless (i.e. small) wotja to clipboard for embedding in a webpage, then from the Action menu select "Export Wotja URL to Clipboard (no image)". |
Full Screen (click image for large) |
iOS Only: Tap anywhere in the center area to go Full Screen mode; when in Full Screen mode, tap anywhere to return to the Display screen. In Full Screen mode the background picture, if attached, will slowly auto-pan around the screen. |
See: "Free Mode" & Limitations
See the Video: Wotja iOS: Playlists (8m)
The List Player is used to:
It is opened by:
UI Item | Description |
Sleep Time | Shows the Wotja Sleep Time (i.e. how much longer Wotja can play for before it will stop playing). This value is also limited by the maximum play time allowed in your IAP tier. Tap the right hand Settings button to go to the Settings Screen where you can set the Sleep Time. |
Action |
|
Playlist Name | The name of the Playlist (Album). |
File Name | The name of the currently selected File. |
File Play Time | Shows the Play Time left for the current file. This value can be adjust in List Overrides. This value is also limited by the maximum play time allowed in your IAP tier. |
Add Item | Tap to add a file to your playlist. |
Album Thumbnail | Tap to add a thumbnail to your playlist. This image will show as the thumbnail in the Files screen. |
Sequential Play Random Play |
Tap to toggle between sequential and random play. |
Edit | Tap to be able to reorder your playlist. |
Tap the thumbnail to go to Full Screen display (see below). |
|
The top line is the file name. The center line displays "Playing" when the file is playing. The bottom line displays the minimum and maximum piece time (these values are set in Item Overrides). Tap the central area to play or stop the file. When the file is playing the item will be a light blue colour. |
|
Tap to go to the Item Overrides screen. |
|
Item Overrides Screen (click image for large) |
These settings override any related settings that may be in the File (these File related Playlist settings are set in the Cell Rules panel in the Mix Tab.
|
Full Screen (click image for large) |
Full Screen play is for when you want to sit back, look at any included image/message and reflect on the music. Tap the center of the screen to return to the Play List screen. |
See: "Free Mode" & Limitations
See the Video: Wotja iOS: Playlists (8m)
The "Album" Player is used only to play Wotja's "Built-In" albums. It is a slightly less functional version of the List Player in that it currently does not let you adjust list "Item Overrides" or re-order the album.
Built-In Albums
Wotja currently includes two built-in albums:
If you wish to adjust list "Item Overrides" or re-order the album first Export the Album as a Playlist via the Action button "Save Wotja Box Album to File". Then open the exported Playist from the Files screen and change the settings there.
Access:
See: "Free Mode" & Limitations
The Wotja "Web" Player is for Safari for macOS only and lets you:
Access:
How to use the Wotja Web Player to play webpage embedded Wotja URLS in Safari:
Item | Description |
Mac Menu | The Web Player menu includes the following top level menu items:
|
Play/Stop Button | Press to Stop/Start playback. Pressing Play also resets the Play timer so you can play for another 3 minutes. |
Display Area | Any TTM text included in the Wotja File and that is set to Display will display at the top of this areas. The area takes a background colour the same as that in the Wotja file and any image included in the Wotja file displays in the center. |
The secret of Wotja for Apple Watch is that it is very simple. It is primarily a player, but it does also let you randomise a mix. In a paired iOS device you can you :
Random mixes can be great if you just want to hear something new. Perhaps you are on a walk or a run, or just sitting down for some quiet contemplation.
What displays in the background on the Apple Watch is simply the Wotja mix file thumbnail!
Item | Description |
Main UI | All you need to do is tap!
|
3D Touch Menu | To display this menu 3D Touch the Wotja for Apple Watch app.
|
See: "Free Mode" & Limitations
The Mixdown & Recordings screen is where you can create and preview Audio or MIDI mixdown recordings.
This screen is only accessed from the "Mixdown & Recordings" Action menu item in Mix Mode:
You can set the number of bars you want to record (up to 100 bars by default, but extendable via the Max Bars slider control in the mix segment of Settings) and you can make either 48KHz stereo WAV or MIDI mixdown recordings. To kick off a mixdown recording tap the "Record" button in the bottom toolbar.
For audio recordings you can set the Ramp in and Ramp down times (from 0 - 20 seconds) in the Mix section of the Cell & Mix Rules panel.
Recordings you make are saved to the Wotja iCloud folder or Wotja folder depending on the "Use iCloud" setting (iOS > Settings > Wotja > Use iCloud).
Note: Mixdown recordings are not live recordings and they are made as fast as your device allows. To be made they require sufficient device memory to be available.
When a recording is made it is held in memory before iOS flushes it to the file system.
Bytes per second = 48000 x 2 x 2 =192,000. 100 bars of 4:4 at 60 bpm is 400 seconds of recording (just over 6 minutes). In terms of bytes this is 192000 * 400 = 77 MB. At 30 bpm, that is 154 MB.
For every 100 MB recording, you need to have space in the file system. 10 recordings will be 1 GB.
If you're using iCloud, e.g. 10 files totalling 1 GB, remember that those files are synced with the cloud.
UI Item | Description |
Mix button | Tap to go to back to the Mix Mode screen. |
Title | When a recording is being made this will change to indicate the progress of the mixdown. |
Edit button | Tap on this to access usual controls that allow you to manage deletions. |
Export | Tap to present a pop-up action sheet where you can choose where to export your recording to e.g. to iCloud Drive, Dropbox etc. |
Audio/MIDI selector | Tap to select which file type you want to record do. The two supported mixdown recording formats are:
|
Bars selector | To change the bars value either tap the "-" or "+" buttons, drag your finger along the slider or double tap it for a pop up to manually enter a value. You can increase the default value in Settings > Mix. |
Recording Audio file MIDI file |
The recording item uses an icon to indicate the file type and the description shows the name, bars, tempo and date/time. |
Record button | Tap this to start a recording. Once a recording is being made it changes to "Stop". You can press that to stop the recording being made. As the recording is being made you will see the recording progress is displayed at the top of the screen instead of the screen title. |
The Mix "segment" in the Settings screen is where you configure how you want Wotja to play its sounds and, amongst other things, how it is used with Audiobus / Inter-app Audio [both iOS only] and MIDI Out/In.
This screen is accessible in the following places in Wotja:
macOS:
iOS:
Item | Description |
Information | Select for links to further information such as version number, links to this user guide etc. Also shown are links to where to find more Paks and more Wotjas. It also includes a link to a simple in-app Game [iOS only]:
|
Sleep Timer |
|
Timer Slider | (Default: Infinite) The sleep timer can take values 1m to 60 mins. Use it to set how long you want to Wotja to play before fading out over the last 30 seconds of play time. How long Wotja plays for before before play stops depends on your IAP level. See Wotja Store. The timer is off when the slider is in the near left position. You will then see the value shown as ∞. |
Recordings |
|
Max Bars Slider | (Default: 100 Bars) This settings lets you increase the number of bars you can use to make mixdown recordings (see Mixdown Recording). IMPORTANT: Use with care as recordings are large and your device must have sufficient free memory available. If you try to change this value take note of the pop up message warning before you change it. Also be aware that these the recordings are stored in iCloud (if you are using that), so that could hit your bandwidth. |
Audio Out |
|
ISE for Sounds & FX | (Default: On) Enables ISE sounds, which all voices use as this is the sound generator for Wotaj. Turn this to off when you want to play through an external synth(s) and you do not want to hear the ISE sounds as well. NOTE: When this is set to OFF you will not hear anything from Wotja unless you have a MIDI device connected (and you will hear sounds through that instead). Note: Inter-App Audio and Audiobus are on by default (from Wotja 4.7 onwards it also supports Audiobus 3 audio routing). To use either of these you need to route Wotja via an Inter-App Audio or AudioBus enabled app. |
Audio Rate [iOS only] | (Default: 48 kHz or 44 kHz; auto selected depending on device capabilities). If, for any reason, you find Wotja is struggling to play your mix without a bit of breakup, try selecting the alternative 24 / 22 kHz option which uses less processor cycles. |
Audio Latency [iOS only] | (Default: 850 ms). This setting is of particular use if you are using Wotja routed via Audiobus or Inter-App Audio - higher values minimise audio artifacts which also depend on device power and mix/sound/fx complexity. If you are using Wotja to drive external MIDI synths you may need to tweak the values both here and for MIDI Latency. Example: You're driving an external synth via MIDI and want to sync the audio output of that with audio output from Wotja (ISE). First, make the Wotja audio latency as low as you are happy with. Then, change the MIDI latency (below) until the output from 3rd party synth is in sync. Many dependencies are outside control of Wotja, however. |
MIDI Input |
|
MIDI Input button | Note: MIDI Input is only used by Listening Voices. Tap the MIDI Input button to go to the MIDI Input Devices screen where you will see toggles for all MIDI Input Devices detected by Wotja.
Enable MIDI Input Toggle Shown at the bottom of the screen, don't forget to turn this on (it is on by default) if you want Wotja to detect incoming MIDI! |
MIDI Out |
|
Core MIDI | (Default: Off) When enabled, tells Wotja to send-out MIDI events via Core MIDI. Apps that are Core MIDI enabled can take advantage of this. |
Virtual MIDI | (Default: Off) When enabled, causes Wotja to present a number of Virtual MIDI ports - one Omni (all channels) and 16 per-channel virtual MIDI ports - and Wotja sends MIDI events as Virtual MIDI ports over Core MIDI. |
MIDI Clock | (Default: Off) When enabled, tells Wotja to send-out MIDI Clock events over Core MIDI / Omni channel.
|
Send Patch Change Events | (Default: On) When enabled, tells Wotja to send-out MIDI Patch Change Events. Turn this off if you want ONLY MIDI Note Event information to be sent. |
Latency | (Default: 100ms) Sets Latency (milliseconds) to apply to MIDI events sent-out to Core MIDI / Virtual MIDI by Wotja. Use to help remove jitter if using e.g. Network MIDI. |
Tuning [iOS only] | (Default: Off) Useful option for tuning external analog synths - causes all notes sent-out by Wotja to be "forced" to the specified pitch. |
See the Video: Wotja iOS: Mix Randomization Settings (12m)
The Randomization "segment" in the Settings screen is where you select the Randomization values that determine both how mix Cells are populated with templates when using the Random function in Wotja as well as how TTM voice text randomisation is applied in the Text Editor screen.
This screen is accessible as follows in Wotja:
macOS:
iOS:
The Random / Randomize function is mannually available in two places in Wotja:
Parameter | Description |
Templates |
|
Templates for Randomization | Templates screen: This easy access to the templates screen means you can always easily change the pool of templates you want to randomize from. |
General / Mix |
|
TTM Cells/Column (min) | Default - 1: The minimum number of TTM Players that will be in a column, assuming you have a TTM Pak available for selection when randomizing. |
TTM Cells/Column (max) | Default - 1: The maximum number of TTM Players that will be in a column, assuming you have a TTM Pak available for selection when randomizing. |
TTM Words (min) | Default - 2: The minimum number of words that will be added to a TTM Text field on creating a new random mix or in the TTM Text Editor when using the Randomize button with Randomise option selected. |
TTM Words (max) | Default - 2: The maximum number of words that will be added to a TTM Text field on creating a new random mix or in the TTM Text Editor when using the Randomize button with Randomise option selected. |
Tracks | Default - 4: The number of Tracks that will have their cell contents (below) randomized (starting with Track 1). |
Cells | Default - 4: The number of Cells in the Tracks above that will have their contents repopulated from the list of available templates. |
Generative % | Default: 70% - The chance that a randomized will be repopulated with a generative template. |
Blank Cell % | Default - 25%: - The chance that a randomized will be empty. |
Tempo Min | Default - 30 bpm: - The minimum tempo of a new, random mix. |
Tempo Max | Default - 60 bpm: - The maximum tempo of a new, random mix. |
Volume Min | Default: 90 - The minimum volume of a track in a new, random mix. |
Volume Max | Default - 127: - The maximum volume of a track in a new, random mix. |
Pan +/- | Default - 30: - How far away from center that pan can be for a Track in a new, random mix. |
Cells |
|
Generative Bar Min | Default: 8 - The minimum base value for the number of bars a generative template will play for and to which the range value (below) is added. Special Value: If this value is set far left to ∞ then once play in a Track reaches such a cell the generative content in that cell will continue to play either for as long as the mix plays or until you manually select another cell in that Track to play. |
Generative Bar Max | Default - 16: The maximum base value for the above. |
Generative Bar Range | Default - 0: Sets the range that applies to the above base value. |
Cell Repeat Min | Default - 1: The minimum base value for the number of times a cell will repeat after it has played through once and to which the range value (below) is added. For a generative template each bar counts as one repeat; for audio or MIDI content this is the length of the content rounded up to the end of a bar). Note: If the cell contains generative content and the Generative Bar Min is value is set to ∞ then this setting takes no effect as the cell never repeats! |
Cell Repeat Max | Default - 8: The maximum base value for the above |
Cell Repeat Range | Default - 1: Sets the range that applies to the above base value. |
Reset |
|
Reset All Random Settings | Resets all values back to their Defaults. |
iOS Only: The Theme segment in the Settings screen is where you choose whether you want the app to use a Light or Dark theme to suit your preference. This User Guide uses the Light theme.
Tap the Light or Dark heading to change theme - it is that simple!
The Settings screen is accessible from the bottom Settings tab.
iOS Only: This screen is where you set whether Wotja can use Mobile Data and whether or not it uses iCloud for file saving.
This screen is accessible from the iOS Settings Screen. Scroll down that screen to find the version of Wotja that you have installed and then tap it.
Parameter | Description |
Mobile Data | Lets you choose if Wotja can use Mobile Data when synching with iCloud. |
Use iCloud | Lets you move between Cloud and Local file storage. Plus, you're prompted what to use, when you start the app. |
Note: The annual "paid-for" non-subscription version of Wotja (e.g. Wotja 2017) does not include an In-App Store because it has no "Free Mode" Limitations to remove.
For Apple information on managing subscriptions please refer to : https://support.apple.com/en-us/HT202039
The subscription versions of Wotja contain a Store where you can purchase an In-App Subscription. The image shows the In-App Subscription tiers that are currently available (tiers and pricing subject to change). See "XT" Extension Tier FAQ for further details on what those tiers are for.
Tip: When any In-App Subscription expires then the limitations in "Free Mode" are re-instated.
The In-App Store is accessible in the following places in Wotja:
macOS:
iOS:
Item | Description |
Settings | Returns you to the Settings Screen or Files screen, depending on how you got to the Store. |
Restore | Tap this button and you will be asked if you want to check for and restore any previous purchases. |
IAP Item | If you have purchased an In-App Subscription, and it is active, then "Subscribed" will show to the right of it. The "Manage Subscriptions" button in the Miscellaneous" section takes you straight to the Wotja subscription page where you can manage your subscription. See also the FAQ entry on in-app subscriptions. |
Miscellaneous | In the "Miscellaneous" section tap the "Manage Subscriptions" list item for a link to Apple's general online information on how to manage your subscriptions. |
The Intermorphic Music Engine 4 (IME 4) "Generator Network" defines how all the generators/voice objects in a piece are associated with MIDI channels and how these generators/voices are linked to each other (e.g. Following voices [below], where one voice follows the output of another).
These objects can in turn be associated with Intermorphic Sound Engine 4 (ISE 4) Sound Networks and FX Networks.
In the Generator Network you can:
If you drag from a Voice box to a MIDI channel box that will tell the system that the Generator/Voice will play through the defined MIDI channel. If a new voice is added to a piece, the voice won't be assigned to a specific MIDI channel; if you haven't yet hooked-up a Generator/Voice to a MIDI channel, the IME will decide on a free MIDI channel to hook-up the Voice to when it starts playing.
Every IME piece/template (which currently uses the file extension of .noatikl) includes one or more Voice Objects ("Voices"). These are MIDI generators and are the things that actually generate the MIDI notes and MIDI events according to various parameter values used by it. They're called Voices for historical reasons, but are equally well referred to as a "Generators".
Each Voice Object composes according to its defined Voice Type of which are 6 (TTM are a subset of the Patterns Voice Type), and each Voice Type has a corresponding associated colour:
Tip: Where the interface displays the Voice's name (e.g. Fred), that element will flash when the Voice plays.
Rhythmic Voices are the default Voice Type and compose according to the parameters in the Rhythmic / Basics parameter set. Notes have their durations composed according to the Rhythm Rules you define for your voice, to fit as well as possible within the bar structure of your piece.
Ambient Voices have notes composed such that their durations are defined by the parameters in the Ambient parameter set. Rhythm rules are not used for Ambient Voices. An Ambient Voice plays its notes without any respect for tempo or bar timings! Ambient Voices are wonderful for creating drifting, floating sounds for either background or foreground use as drones or for musical texture.
Following Voices are fascinating. They are used to create Voices which work in a call-response manner, following the behaviour of other Voices in a variety of exciting ways according to parameters in the Following parameter set.
Repeat Voices are like Rhythmic Voices, with the added feature that they can be defined to repeat work that they have composed in previous bars, according to rules defined in the Repeat parameter set. When not repeating previous bars, Repeat Voices work in exactly the same way as Rhythmic Voices.
Patterns Voices are Voices that play in accordance with various fixed MIDI-like patterns. These patterns have a specific syntax and are able to follow generative sequencing rules, and can adapt automatically to changes in Scale Rules. They are great for bringing some structure to your composition. Fixed Pattern Voices can also be capable of mutating their patterns while playing, according to parameters defined in the Fixed Pattern parameter set. When not following a pattern (e.g. when mutating), Fixed Pattern Voices compose as Rhythmic Voices.
"Text to Music" is not a Voice Type per se, but is a sub type of the Patterns Voice Type with its own special set of parameters that are used to generate a seed melody from text and/or emoji.
Listening Voices are Voices that detect incoming MIDI note events (monophonic, not polyphonic) and present them as a virtual composed note which can be followed by a Follows Voice, allowing you to create simple hyperinstruments (something that generates music that can respond in some way to external events which we also sometimes now refer to as adaptive generative music [AGM]).
Listening voices do not require any use of scripting, but in Noatikl Desktop they can also be used with scripting for more advanced hyperinstruments.
Every Voice composes notes according to the settings of 4 types of Rule Objects it has associated with it.
The four Rule Objects are Scale Rule, Harmony Rule, Next Note Rule, Rhythm Rule. Each Rule Object contains one or more "Rules", such as "Major" or "Minor".
Each Rule is an array of the values of the elements for that Rule Object (such as the values of 12 scale intervals). These values represent the relative probability (from 0% to 100%) (the "weighting") of that Rules' element being chosen by a Voice for a note to be composed. An element with a value of 0 will not be chosen for composition.
Important: When the Pitch Range for a Voice is wide enough, Scale Rules will "wrap around" to accomodate the extra range in notes available.
Changes to the values in these Rules, as with changes to any other IME parameter, allows an instant change in the music generated.
Tip: Where the interface displays the Rule elements, tap or click one one at the appropriate position to change the value of that element; the IME will attempt to make that element flash when it has been selected to play a note.
These elements represent the semitone distance from the Root note defined for this Piece, these being: 0ve (root), m2, M2, m3, M3, 4, b5, 5, m6, M6, m7, M7
These elements represent in semitones the possible harmonies available, these being: 0ve (root), m2, M2, m3, M3, 4, b5, 5, m6, M6, m7, M7
Imagine that you have three Voices, called X, Y and Z.
Imagine that at some time in the piece, the IME has already chosen to play note C for Voice X, and note G for Voice Y. At that time, the IME thinks about composing a note for Voice Z. It looks at the notes available for it to compose, and adjusts the probabilities of choosing each of those notes, by applying the Harmony Rule element values for each of those two composed notes which are active at time (i.e. notes C and G).
Harmonies are always calculated based on a rising direction up from the Piece Root. So, if the Piece Root is B and the IME is considering if it can compose note D for Voice Z, and it looks at the note it needs to harmonize with which is note C for Voice X; then Noatikl figures-out the Harmony Rule values for Voice Z from the C of Voice X, up and through the Octave (i.e. E, F, F#, G, G# etc.).
These elements represent in semitones the distance a new note will be from the last composed note, these being: 0ve (root), m2, M2, m3, M3, 4, b5, 5, m6, M6, m7, M7
These elements represent the permitted note durations, these being: 1, 1/2., 1/2, 1/4., 1/4, 1/8., 1/8, Triplet, 1/16
Voice Type - Rhythmic & "Basics" parameters.
The "Voice Rhythmic" parameters encompass the main parameters of every Voice and also govern those of the default Voice Type, which is the Rhythmic Voice.
Every voice in a Noatikl file has a unique name. You can use any name you want, provided it is not empty, and provided it is not a single question mark (which has a reserved meaning for use with Rules, which you will find out about later).
Toggle this setting (Yes/No) to mute or unmute the voice. Certain Voice Types might take some time to respond, depending on how far in advance their notes are composed.
When the keyboard focus is on the Mute cell, you have various extra menu options available to you in the "Control" Menu. These are as follows:
If you hold down the ctrl key when you click on the mute cell, you will toggle all other voice's mute states, without changing the mute state of the voice that you ctrl-click on. This can be very handy.
Every Voice is assigned a given Patch. This specifies the sound that you will hear whenever the Voice plays a note. The exact sound you hear depends on the sound source you have associated with the Voice; this could be the ISE or you might be driving an external MIDI synth.
In general, the IME does not emit any MIDI bank select CC information for a Vvoice before it emits the Patch Change MIDI event. However, you can force the IME to emit such information, by typing-in a special format patch value; where you type-in the patch in the format: patch.msb.lsb, for example:
98.53.4
In this example, the IME will emit bank select CCs for both MSB and LSB according to the settings you supply (53 and 4 respectively, in this case). If you don't specify a value for the lsb, then the IME will only emit a Bank Select MSB CC (CC number 0). If you supply the lsb, then the IME will also emit a Bank Select MSB CC (CC number 32).
Not all software synthesizers for your favourite sequencer like having Patch data supplied to them via a Patch Change MIDI event. If this is the case, simply change the Send MIDI Bank/Patch? parameter to No (unchecked), and the IME won't send any MIDI patch change events.
A Voice emits data on a MIDI Channel. MIDI channels are numbered from 1 to 16. The default MIDI channel for a Voice is actually MIDI channel 0 – which tells the IME to assign a free channel from 1 to 16 automatically, as best it can. MIDI channel 10 is always reserved for percussion sounds, such as drum sounds or other untuned sound.
Every Voice composes according to its Voice Type.
Set the Pitch to be the minimum pitch for which you want your Voice to compose. The IME will ensure that it composes no notes less than this pitch value.
Set this to define the shortest possible sequence of notes that your Voice will compose in sequence. The Voice composes a sequence of notes, followed by a sequence of rests. The length of each sequence of notes is governed by this and the Phrase Length Range parameter.
This value defines the upper limit to the number of notes that your Voice will compose in sequence. For example, if the Phrase Length is 3, and the Phrase Length Range is 25, then the minimum phrase will be 3 notes, and the maximum phrase length will be (3+25) = 28 notes.
Set this to define the shortest possible sequence of rests that your Voice will compose. Your Voice composes a sequence of notes, followed by a sequence of rests. The length of each sequence of rests is governed by this and the Phrase Gaps Range parameter.
This value defines the upper limit to the number of rests that your Voice will compose in sequence. For example, if the Phrase Gaps is 3, and the Phrase Gaps Range is 25, then the minimum phrase will be 3 rests, and the maximum phrase length will be (3+25) = 30 rests.
This value defaults to zero. If not zero, then the defined percentage of notes that would otherwise be played by your Voice will instead be treated as a rests of the same duration. This is very useful for making any Voice sound sparser. Give it a go: this parameter is very powerful, and applies to all Voice Types.
Voice - Type Ambient
You define the Unit of Measure for which the other Ambient Voice parameters are interpreted. This may be one of the following values:
The parameters including Duration are all interpreted as being in thousandths of a second (i.e. Milliseconds). So, a Duration value of 1000 means one second.
The parameters including Duration are all interpreted as being in 60ths of a beat. In the IME a Beat is defined as being one crotchet; you get 4 beats in a bar of 4:4 music. So, a Duration value of 60 means one beat. A Duration value of 30 means a quaver. A Duration value of 20 means a triplet. A Duration value of 15 means a semi-quaver. A Duration value of 240 means 4 beats (which is a full bar if the Piece Meter is 4:4).
The parameters including Duration are all interpreted as being in seconds. So, a Duration value of 10 means ten seconds.
The Ambient Voice parameters govern how Ambient Voices work.
This defines the minimum duration for which the Ambient Voice will play when it composes a note. The actual value chosen for each note is a value between Duration, and Duration plus the Duration Range. Each and every note composed for this Ambient Voice will have a note whose duration is separately calculated.
This is combined with the Duration parameter, to determine the duration for which the Ambient Voice will play when it composes a note. The actual value chosen for each note is a value between Duration, and Duration plus the Duration Range. Each and every note composed for this Ambient Voice will have a note whose duration is separately calculated.
This defines the minimum duration for which the Ambient Voice will play when it composes a rest. The actual value chosen for each rest is a value between Gap Minimum, and Gap Minimum plus the Gap Range. Each and every rest composed for this Ambient Voice will have a rest whose duration is separately calculated.
Tip: This is the Duration used for the Phrase Gaps / Phrase Gaps Range parameters i.e. it allows the duration of gaps to be different to that of the notes.
This is combined with the Gap Minimum parameter, to determine the duration for which the Ambient Voice will play when it composes a rest. The actual value chosen for each rest is a value between Gap Minimum, and Gap Minimum plus the Gap Range. Each and every note composed for this Ambient Voice will have a note whose duration is separately calculated.
Tip: This is the Duration Range used for the Phrase Gaps / Phrase Gaps Range parameters i.e. it allows the duration of gaps to be different to that of the notes.
Set this to define the shortest possible sequence of notes that your Voice will compose in sequence. The Voice composes a sequence of notes, followed by a sequence of rests. The length of each sequence of notes is governed by this and the Phrase Length Range parameter.
This value defines the upper limit to the number of notes that your Voice will compose in sequence. For example, if the Phrase Length is 3, and the Phrase Length Range is 25, then the minimum phrase will be 3 notes, and the maximum phrase length will be (3+25) = 28 notes.
Set this to define the shortest possible sequence of rests that your Voice will compose. Your Voice composes a sequence of notes, followed by a sequence of rests. The length of each sequence of rests is governed by this and the Phrase Gaps Range parameter.
This value defines the upper limit to the number of rests that your Voice will compose in sequence. For example, if the Phrase Gaps is 3, and the Phrase Gaps Range is 25, then the minimum phrase will be 3 rests, and the maximum phrase length will be (3+25) = 30 rests.
This value defaults to zero. If not zero, then the defined percentage of notes that would otherwise be played by your Voice will instead be treated as a rests of the same duration. This is very useful for making any Voice sound sparser. Give it a go: this parameter is very powerful, and applies to all Voice Types.
Voice - Type Follow
The Follow Voice parameters govern how Following Voices work.
Select the Voice which you want your Voice to follow. If you don't specify a Voice to follow, then the following Voice won't play. You may follow any Voice in the piece you want, of any type. You may even follow a Voice that is following another Voice that is following another Voice... provided that you don't try to define a cyclic dependency which loops back to the current Voice!
This parameter sets the percentage of notes that the Followed Voice responds to so as to emit a note. Set to 100 if you want the Following Voice to emit a note for every note played by the Followed Voice. Set to a smaller value if you want to thin-out the notes played by the Following Voice. This is also useful for building networks of chords, where if you have a number of Following Voices all following either each other or one main Voice, and if those Following Voices have the Percent Parameter to less than 100, then sometimes you will hear dense chords, and sometimes you will hear thinner chords.
This parameter defines the pitch to use for a note generated by the Following Voice. The available values are:
This causes the Following Voice to choose notes which respect the currently defined Scale, Harmony and Next Note Rules.
This causes the Following Voice to choose notes which are offset from the followed note, such they are at an interval within the Scale Rule, defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
For example, if these values are 1 and 2 respectively, then each time a note is chosen, it will be between 1 and (1+2)=3 Scale Rule intervals up from the Followed Voice's note. It is important to understand that this refers to the non-zeroed elements in the current Scale Rule, in other words only those notes that are available within the Scale Rule.
So, in our example, if we were using a Major Scale Rule, and if the followed note were C4 (Middle C), and if Noatikl chose a value of 2 as its random value; then the played note would be E4 (Middle C), which is the second note up from Middle C within the Major Scale Rule.
This causes the Following Voice to choose notes which are offset up from the followed note, such they offset from the followed note by a number of semitones which is a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values. A note chosen in this way ignores the current Scale Rule.
For example, if these values are 1 and 2 respectively, then each time a note is chosen, it will be between 1 and (1+2)=3 semitones up from the Followed Voice's note.
So, in our example, if we were using a Major Scale Rule, and if the followed note were C4 (Middle C), and if Noatikl chose a value of 3 as its random value; then the played note would be D#4 (Middle D#), which is the third semitone note up from Middle C. This value is used even though it is not in the current scale rule.
You define the Unit of Measure by which the Delay and Delay Range parameters are interpreted. This may be one of the following values:
The parameters including Duration are all interpreted as being in thousandths of a second (i.e. Milliseconds). So, a Duration value of 1000 means one second.
The parameters including Duration are all interpreted as being in 60ths of a beat. In Noatikl a Beat is defined as being one crotchet; you get 3 beats in a bar of 4:4 music. So, a Duration value of 60 means one beat. A Duration value of 30 means a quaver. A Duration value of 20 means a triplet. A Duration value of 15 means a semi-quaver. A Duration value of 240 means 4 beats (which is a full bar if the Piece Meter is 4:4).
The parameters including Duration are all interpreted as being in seconds. So, a Duration value of 10 means ten seconds.
This defines the minimum delay after which the Following Voice will play a followed note. The actual value chosen for each note is a value between Delay, and Delay plus the Delay Range. Each and every note composed for this Following Voice will have a note whose delay is separately calculated.
This is combined with the Delay parameter, to determine the delay after which the Following Voice will play a followed note. The actual value chosen for each note is a value between Delay, and Delay plus the Delay Range. Each and every note composed for this Following Voice will have a note whose delay is separately calculated.
Used when the Strategy is either Interval Within Scale Rule or Semitone Shift.
This causes the Following Voice to choose notes which are offset in some way from the followed note, according to the Strategy; where the offset is defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
This represents the "Shift/Interval Range", and is used when the Strategy is either Interval Within Scale Rule or Semitone Shift.
This causes the Following Voice to choose notes which are offset in some way from the followed note, according to the Strategy; where the offset is defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
Voice - Type Repeat
The Repeat parameters govern how Repeat Voices work. Repeat Voices compose as if they were of Rhythmic Voice Type.
You define the name of the Voice from which you would like, from time-to-time, to repeat past bars of music. If you simply want to repeat bars played in the past for the current Voice, simply select the magic value of '?', which is also the default value.
When the Voice starts composing a new bar, it takes a look at this parameter value. This defines for what percent of the time the Voice should repeat previously-composed music. Set this parameter to 100 if you always want past composed music to be repeated (where available!); set to 0 if you never want past music repeated by this Voice. When the Voice doesn't choose to repeat past data it composes a new bar of music were it to be of Rhythmic Voice Type.
Defines the number of bars for which the Voice should repeat a past-composed chunk of music. The actual value chosen is somewhere between Bars and Bars + Bars Range.
Defines the upper limit of the number of bars for which the Voice should repeat a past-composed chunk of music. The actual value chosen is somewhere between Bars and Bars + Bars Range.
Defines the number of bars in the past, from which the Voice will choose the past-composed music to repeat. The actual value chosen is somewhere between History and History + History Range.
Defines the upper limit of the number of bars in the past, from which the Voice will choose the past-composed music to repeat. The actual value chosen is somewhere between History and History + History Range.
Voice - Type Patterns
The Patterns parameters govern how Patterns Voices work. Patterns Voices compose as if they were of Rhythmic Voice Type. Voices using TTM (Text to Music) Voices still use the Patterns Voice Type, as TTM is a subtype of that.
See the also the IME Pattern Syntax section.
When the Voice starts a new sub-pattern at the start of a bar, it consults the value you have defined for Use Percent. This parameter determines the probably of the Voice using the Pattern for the bar; or alternatively, compose a completely new bar (that you will hear only once!) were it to be of Rhythmic Voice Type.
If Use Percent is 100, then the Voice will always use the pattern. If Use Percent is 50, then teh Voice will instead compose a new bar every other bar or so. Note that the Voice will never interrupt a sub-pattern that it is playing; the Use Percent parameter is considered only on a sub-pattern boundary, at the start of a new bar.
The mutation factor is used when a bar is considered for mutation (which can happen only if Bars Between is not zero! The Mutation Factor determines the level of mutation to apply. If set to 10.0%, then when playing from a sub-pattern, this means that each note that would be played from the pattern, has a 10% chance of having a different one composed, with subsequence pattern playbacks keeping that mutation. Note that if Mutate Rhythm? is set to Yes, then if the composed note is longer than the composed-over pattern note, this might overlap and cancel-out some other notes in the sub-pattern.
This parameter defines the number of bars that the Voice waits between, before trying to mutate a bar in a pattern according to the Mutation Factor. If Bars Between is set to zero, the Voice can never mutate. Set to 1 if you want mutation every bar, 2 if you want mutation every other bar, etc. ...
The actual number of bars used is selected randomly each time, somewhere in the range from Bars Between, to Bars Between plus Bars Range.
This parameter is used to help define the number of bars between attempts by the Voice to mutate the current pattern. The actual number of bars used is selected randomly each time, somewhere in the range from Bars Between, to Bars Between plus Bars Range.
If set to No, then the timing of the sub-pattern is preserved perfectly; only the frequency of the pattern notes will be changed when the pattern is mutated. Otherwise, the duration of each note is chosen from the rhythm rules and phrase/phrase gap rules for the Voice.
Defines the Meter to be used by the Voice, such 4:4 or 3:4 or 6:8. A value of ?, which is the default, means to use the Meter defined for the Piece. A different value allows the Voice to work with a completely different meter, which can be used for interesting polyphonic effects.
Defines the Pattern to be used by a Fixed Pattern Voice.
Select the Patterns parameter to display any Pattern Editor Dialog that is available. Information on the syntax to use is detailed below.
The pattern syntax is somewhat complicated, and, until such time as we have created a pattern editor for the IME, will require a bit of effort to get to grips with.
A pattern is a text string in a specific format, surrounded by < and > symbols. Patterns can be grouped together as list of patterns. Because of this we refer to patterns as a "Pattern" when there is only one, or as "Sub-Patterns" when there are many in the list of patterns. We know it is a bit confusing, so we'll say it again in another way: each Pattern is made-up of a number of Sub-Patterns.
There are 4 types of Sub-Pattern:
The IME employs an underlying "time unit" that is 1/60th of a crotchet/quarter note. IME note Duration values map onto standard music notation in the following way (irrespective of meter) [# IME time units - Composed note length]:
So by way of example:
You are of course free to experiment using other time unit values, which will mean different things. E.g. 10 time units is a 24th note etc.
Tip: To aid understanding and visual clarity, we use the following color coding: durations, velocity values and scale intervals.
Where:
See above for note duration values.
In R patterns a negative duration indicates a rest for that time; in F patterns a pitch of -1 indicates a rest for the note duration.
If a note sub-pattern is not an exact even number of bars (e.g. 2 and and half bars at the current meter!) then the engine will pad to silence to the end of the nearest bar boundary.
Syntax
<[S][prob][.M] R {[seqnum[-seqnumrange].[repeattimes[-repeattimesrange]] [seqnum[-seqnumrange].[repeattimes[-repeattimesrange]]}* >
Where:
Which sub-pattern is chosen by the Voice depends on a few things:
If there is at least one sequenced sub pattern, then a sequence is used to drive the sub-pattern. Which sequence to use, is based on the Voice making a weighted random selection from the available sub-patterns. When (if!) the sequenced sub-pattern end is reached, the Voice will make another selection as to which sequenced sub-pattern to use.
Otherwise, a sub-pattern is chosen, based on the Voice making a weighted random selection from the available sub-patterns. This sub-pattern is played through to the end, at which point the Voice will make another selection as to which sub-pattern to play.
A Note Sub-Pattern that is less than a whole number of bars at the Voice's current Meter, will be padded automatically with silence to ensure that it remains bar synchronised.
The IME has its own pattern format, which allows it to play specified notes and rests in different ways. Patterns are affected by the various Rules being used by the Voice.
Tip: To aid understanding and visual clarity in the examples, we use the following color coding: durations, velocity values and scale intervals.
Below are a number of example patterns. Copy and paste these into Noatikl to try them out.
Rhythm: <100 R 60 60 60.127 60>
Both: <100 B 60.15-30 1 60 2 60.127 3 15 7>
Forced Frequency: <100 F60 60.127 1 60 4 30 5 15.70-120 7>
Sequence: <S100.M R 1.1 2-0.1-0 3-0.1-0 >
Two patterns. Select randomly from these two each time!
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Forced Frequency pattern. Plays note with pitch 58 (or MIDI patch 59 on Ch10): note on, note off, note on, note off etc.
<100 F58 15 1 45 -1 15 1 45 -1 15 1 45 -1>
Forced Frequency pattern: Plays a series of notes for a whole bar (or patches in the drum kit on Ch10) starting at base pitch 40, each one a 16th note...
<100 F40 15 1 15 7 15 6 15 13 15 2 15 8 15 4 15 11 15 13 15 2 15 8 15 2 15 2 15 8 15 4 15 14>
Two sequenced sub-patterns. Play 1 once, then 2 once...
<S100 R 1.1 2.1>
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Two sequenced sub-patterns. Play 1 twice, then 2 twice...
<S100 R 1.2 2.2>
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Two sequenced sub-patterns. Play 1 or 2 twice, then 1 or 2 twice...
<S100 R 1-1.2 1-1.2>
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Two sequenced sub-patterns. Play 1 once, then 2 twice, the one or 2 once, then 2 once...
<S100 R 1.1 2.2 1-1.1 2.1>
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Two sequenced sub-patterns. Play 1 once, then 2 forever...
<S100 R 1.1 2.0>
<100 B 60 1 60 2 60 3 60 4>
<100 B 30 9 30 8 30 7 30 6 30 5 30 4 30 3 30 2>
Voice - Type Patterns
Text to Music Voices are a special kind of Patterns Voice Type. They use text in any language and/or emoji to generate a seed melody which, even though not visible, is in a Patterns syntax. Use English, Chinese, Japanese, Russian, German, French - whatever language takes your fancy, you will always get a melody!
Voice - Type Listening
The monophonic "Listening Voice" listens out on its MIDI channel for incoming MIDI notes. It is silent (it does not generate or emit MIDI notes). When a note is detected, e.g. C60, it echoes a virtual note that can be "heard" only by a Following Voice which is then used to create an actual note. It will only detect a subsequent note if it first receives a note off for the previous note.
The virtual note created by a Listening Voice is pitch shifted, if necessary, to fit within the band of pitch values set by its Pitch and Pitch Range parameters (see Rhythmic Voice).
The Chord parameters let you configure any Voice Type to generate chords automatically.
In outline, use the Depth and Depth Range values to define the "Chord Depth"; which is the number of notes that will play at any one time for a given Voice. The first note in any chord is composed according to the normal mechanism for the Voice Type; additional notes that cause a chord to be built-up may be generated automatically according to the Chord parameters.
Specify the minimum Depth of chord that you want your Voice to play with. A value of 1 will mean that the Voice will not chord (unless the Depth Range parameter is greater than zero).
The Depth defines the number of notes that are played by the voice at any one time.
Specify the relative maximum Depth of chord that you want your Voice to play with. A value of 0 means that whenever the Voice is played, it will play a number of notes equal to the Depth. A value of one or more means that whenever the Voice is played, it will play a number of notes equal to a randomly selected value between the Depth and the Depth plus the Depth Range.
This parameter tells the Voice the percentage chance that it should actually emit any given note in the chord (after the first note, of course!). Set to 100 if you want the Chording Voice to always emit a note for every note played by the Voice. Set to a smaller value if you want to thin-out the notes played within the chord. This allows you to create chords of varying depth; sometimes dense, sometimes thin.
This parameter tells the Voice what it should do when it decides the pitch to use for a note generated within a chord. The available values are:
This causes the Voice's chord notes to be selected according to the currently defined Scale, Harmony and Next Note Rules.
This causes the Voice's chord note to be selected offset from the followed note, such they it is at an interval within the Scale Rule beyond the previous note in the chord, defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
For example, if these values are 1 and 2 respectively, then each time a note is chosen within the chord, it will be between 1 and (1+2)=3 Scale Rule intervals up from the previous note in the chord. It is important to understand that this refers to the non-zeroed elements in the current Scale Rule, in other words only those notes that are available within the Scale Rule.
So, in our example, if we were using a Major Scale Rule, and if the first note in the chord were C4 (Middle C), and if the Voice chose a value of 2 as its random value; then the played note would be E4 (Middle C), which is the second note up from Middle C within the Major Scale Rule.
This causes the the Voice's chord note to be selected offset up from the previous note in the chord, such it is offset from the previous chord note by a number of semitones which is a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values. A note chosen in this way ignores the current Scale Rule.
For example, if these values are 1 and 2 respectively, then each time a note is chosen, it will be between 1 and (1+2)=3 semitones up from the previous note in the chord.
So, in our example, if we were using a Major Scale Rule, and if the previous note in the chord were C4 (Middle C), and if the Voice chose a value of 3 as its random value; then the played note would be D#4 (Middle D#), which is the third semitone note up from Middle C. This value is used even though it is not in the current Scale Rule.
You define the Unit of Measure by which the Delay and Delay Range parameters are interpreted. This may be one of the following values:
The parameters including Duration are all interpreted as being in thousandths of a second (i.e. Milliseconds). So, a Duration value of 1000 means one second.
The parameters including Duration are all interpreted as being in 60ths of a beat. In the IME a Beat is defined as being one crotchet; you get 3 beats in a bar of 4:4 music. So, a Duration value of 60 means one beat. A Duration value of 30 means a quaver. A Duration value of 20 means a triplet. A Duration value of 15 means a semi-quaver. A Duration value of 240 means 4 beats (which is a full bar if the Piece Meter is 4:4).
This works the same way as Beats (60ths of a) except that where the Delay has a special value of 10, 15 or 20; the delay is interpreted in a special way that is very useful for some breakbeat-based music. Specifically, in this case, the calculated value for the delay is rounded to the nearest sub-multiple of the Delay value. So, for example, if the engine calculates a value of 43, and if Delay is 20, the used value for the delay is actually 40 (which is the nearest multiple of 20).
This defines the minimum delay after which the Chording Voice will play a followed note. The actual value chosen for each note is a value between Delay, and Delay plus the Delay Range. Each and every note composed for this Chording Voice will have a note whose delay is separately calculated.
This is combined with the Delay parameter, to determine the delay after which the Chording Voice will play a followed note. The actual value chosen for each note is a value between Delay, and Delay plus the Delay Range. Each and every note composed for this Chording Voice will have a note whose delay is separately calculated.
Used when the Strategy is either Interval Within Scale Rule or Semitone Shift.
This causes the Chording Voice to choose notes which are offset in some way from the followed note, according to the Strategy; where the offset is defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
This represents the "Shift/Interval Range", and is used when the Strategy is either Interval Within Scale Rule or Semitone Shift.
This causes the Chording Voice to choose notes which are offset in some way from the followed note, according to the Strategy; where the offset is defined as a value randomly selected between the Shift / Interval and Shift / Interval plus Shift / Interval Range values.
This parameter defines the amount that the pitch of each note in the chord should be offset, in semitones, from the previous note in the chord; the actual value selected might be overridden according to the various rules that apply to the Voice, but in general, this parameter allows you to "shape" a chord to have a given range of pitch values. In combination with the Delay-related parameters, this allows you to create some very interesting arpeggiation effects.
For example, a value of +12 would tend to space each note in the chord by a range of 12 semitones (which is one octave), with each subsequent value in the chord being higher in pitch that the previous.
For example, a value of -12 would tend to space each note in the chord by a range of 12 semitones (which is one octave), with each subsequent value in the chord being lower in pitch that the previous.
This parameter allows you to specify the range of relative velocities for the notes in a chord. Each subsequent note in the chord is the defined percentage louder (for a positive value) or quieter (for a negative value) than the previous note in the chord. A value of zero means that all notes in the chord are played with the same velocity.
The Voice velocity envelope values are ignored when this parameter is applied.
For example, a value of -30 would tell the Voice to generate its chords such that each auto-chorded note is 30% quieter than each preceding note in the chord; giving a noticeable tailing-off effect.
The Voice Rule parameters let you select the various rules that govern how your Voice works. The Rules themselves are edited in the relevant Rule Object. See Rule Objects.
Select the Harmony Rule that you want your Voice to use. If you select the value labelled ?, this tells the Voice to use the value defined in the Piece Object. If that value is in turn the ? value, then your Voice will choose a rule to use at random when it starts playing. See Rule Objects.
Select the Next Note Rule that you want your Voice to use. If you select the value labelled ?, this tells the Voice to use the value defined in the Piece Object. If that value is in turn the ? value, then your Voice will choose a rule to use at random when it starts playing. See Rule Objects.
Select the Rhythm Rule that you want your Voice to use. If you select the value labelled ?, then your Voice will choose a rule to use at random when it starts playing. See Rule Objects.
Select the Scale Rule that you want your Voice to use. If you select the value labelled ?, this tells the Voice to use the value defined in the Piece Object. If that value is in turn the ? value, then your Voice will choose a rule to use at random when it starts playing. See Rule Objects.
The default value for this parameter is "Yes", which means that the Voice will be considered for harmonisation with other voices. Set to "No" if for some reason you do not want other voices to harmonize with this voice.
Normally, you want your Voice to use the Piece Root. This is represented by the value ? However, sometimes you really want to force your Voice to use a different Root note; in which case, set the Voice Root to be whatever value suits.
This allows you to work-around the following sort of problem:
Imagine that you have a sampler, wher you load-up a variety of loops against MIDI note C3 up to D3. To have your piece drive this from a Rhythmic Voice such that the sounds you hear are not affected by changes to the Piece Root, you should set the Voice Root to e.g. C3 and your Voice will then be unaffected by changes to the Piece Root. Note that in this specific example, it would probably be a good idea to set the Harmonize? Flag to No.
This Voice Comments parameters allow you to store comments in your Voice, in the form of copyright information and any notes you might want to make for future reference.
Enter the Copyright information you might want to record for the Voice. In the case of a Voice from a template pack, this might contain a copyright notice associated with that template.
Enter any detailed notes you might want to make about this Voice for future reference.
The Voice Articulation parameters define the percentage of the duration of composed note, i.e. they determine how long a composed note actually plays for. The IME used to always compose notes to be played "Legato" (no gap between one note and the next) - this allows you to play them staccato.
1 is very staccato and 100 is legato (the new default).
Max articulation is the value of Articulation (min) + Articulation range, and is used in combination with the variation values (below).
The minimum variation in staccato between notes, c.f. other parameters that adopt the min + range approach.
The range in variation of stacatto between the notes (in addition to the min).
The Voice Controllers parameters define some of the key MIDI controller values that are emitted by the Voice.
Set this value to other than the default of "-1", if you want to emit a Damper/Hold MIDI controller (MIDI CC 64) at the specified value on this Voice's MIDI line. This is a funny MIDI controller, with only two states; in that a value of 64 or greater activates Damper/Hold, and any value of 63 or less means to turn it off! Leave this value at the default of "-1" if you don't want the Voice to emit any information for this MIDI controller.
Set this value to other than the default of "-1", if you want to emit a Harmonic Content MIDI controller (MIDI CC 71) at the specified value on this Voice's MIDI line. Leave this value at the default of "-1" if you don't want the Voice to emit any information for this MIDI controller.
Set this value to other than the default of "-1", if you want to emit a Reverb MIDI controller (MIDI CC 91) at the specified value on this Voice's MIDI line. Leave this value at the default of "-1" if you don't want the Voice to emit any information for this MIDI controller.
Set this value to other than the default of "-1", if you want to emit a Chorus MIDI controller (MIDI CC 93) at the specified value on this Voice's MIDI line. Leave this value at the default of "-1" if you don't want the Voice to emit any information for this MIDI controller.
If you are using Damper/Hold (64), then you will find that your notes can start building-up and never decay! In which case, set the Damper Release parameter to "Yes", which tells the Voice to momentarily release the damper just before the end of every bar. This prevents build-up of notes and generally sounds wonderful.
Set this value to other than the default of "-1", if you want to emit a Portamento MIDI controller (MIDI CC 65) at the specified value on this Voice's MIDI line. Leave this value at the default of "-1" if you don't want the Voice to emit any information for this MIDI controller.
The default value of "Yes" means that this Voice can share its MIDI channel with other Voices. This is only considered if you have defined the MIDI Channel parameter for a Voice to be 0.
The Voice Microcontroller parameters (there are two) allow you to define very powerful Microcontrollers to be associated with your Voice.
Microcontrollers are very powerful and you can think of them as built-in, highly configurable MIDI event generators. They can either synchronise to the tempo of your piece, or you can let them run free-floating. Experiment with them – they can do a huge amount to make your music interesting and dynamic.
Tip: if you want to synchronise your Microcontroller to the time-base, so that your MIDI controller is synchronised to bar boundaries in your music, you'll need to use the Beat Cycle Length parameter.
This tells your Voice which MIDI controller (also referred to as the MIDI CC) to emit for this microcontroller. When the Microcontroller is active, the Voice will emit values for this MIDI controller that change at various times, with behaviour that you define using the various parameters in this Parameter.
The Mode defines the shape of the waveform that the Voice will use to shape this waveform.
The Mode may be one of the following values:
The microcontroller is off. This is the default value.
The microcontroller will drift between the Minimum and Minimum plus Range, changing at times specified by the Update and Update Range parameters, by an amount between the Change and Change plus Change Range parameters.
A triangular waveform, that starts at the minimum value, works up to the maximum value, and works back to the minimum value.
A triangular waveform, that starts at the maximum value, works down to the minimum value, and works back to the maximum value.
A sawtooth waveform, that starts at the minimum value, works up to the maximum value, and then starts again from the minimum value.
A sawtooth waveform, that starts at the maximum value, works down to the minimum value, and then starts again from the maximum value.
Defines the minimum value that may be emitted by the Microcontroller.
The microcontroller will emit a value between the Minimum and Minimum plus Range values.
So for example, if you define Minimum to be 20, and Range to be 100, the value that is emitted will be in the range 20 to 120 inclusive.
Defines the amount by which the microcontroller will change, every time it is allowed to change. Typically set to a value of 1. If this value is set to 0, the Microcontroller will change only if the Change Range is greater than or equal to 1.
Defines the upper limit to the amount by which the microcontroller will change, every time it is allowed to change. Typically set to a value of 1. If this value is set to 0, the Microcontroller will change only if the Change Range is greater than or equal to 1.
For example, if you define Change to be 1, and Change Range to be 3, the value that is emitted will vary by a value between 1 and (3+1)=4 each time.
Defines the minimum time in milliseconds between changes in the emitted Microcontroller value. The system might not be able to emit changes as quickly as you want, if you set a very small value! If you don't want changes to happen very often, then use a large value.
Ignored if Beat Cycle Length is non-zero.
Defines the upper limit in the time in milliseconds between changes in the emitted Microcontroller value. Use this parameter to apply some uncertainty in when the changes will occur.
For example, if you define Update to be 1000, and Update Range to be 500, the value that is emitted will change every 1000 to 1500 milliseconds (or in other words, every 1 to 1.5 seconds).
Ignored if Beat Cycle Length is non-zero.
You define the Unit of Measure by which the Update and Update Range parameters are interpreted. This may be one of the following values:
The Update and Update Range are interpreted as being in thousandths of a second (i.e. Milliseconds). So, a Update value of 1000 means one second.
The Update and Update Range are interpreted as being in seconds. So, a Update value of 10 means ten seconds.
This parameter is critical for generating effects which synchronise with the bar timing of your Voice. If you want to achieve an effect like a filter-sweep that synchronises to your bar boundary, then this is the parameter to use.
Here are some of the values you could use.
Note in the IME a Beat is defined as being one crotchet; you get 4 beats in a bar of 4:4 music. So, a Duration value of 60 means one beat. A Duration value of 30 means a quaver. A Duration value of 20 means a triplet. A Duration value of 15 means a semi-quaver. A Duration value of 240 means 4 beats (which is a full bar if the Piece Meter is 4:4).
Use this parameter if you want to start the microcontroller from a start-point other than at the very start of its cycle.
The Voice Micro Note Delay parameters provide fine variation in the times of Note events generated by a Voice. This can be used to give a Voice more “human” feel.
The maximum amount of delay generated by micro note delay changes, that may be applied to note events. Zero means off (which is the default).
The amount of change in the micro delay that is applied by Wotja between note on/off events. The value drifts between zero (off) and the Delay Range, changing by plus or minus the Delay Change value each time.
Fixed amount of offset note delay to apply, used only when the Micro Note Delay controller is in use. The default value is zero.
The Voice Micro Pitch parameters provide fine variation through use of the MIDI Pitch Wheel controller.
Tip: This is not normally used on MIDI line 10, which is the drum/percussion line!
A value from 0 to 24, meaning how many semitones are controlled by the full available range of Micro Pitch parameters. The default value is 2, which represents two semitones.
Fixed amount of pitch-bend to apply on this MIDI line, used to tune/de-tune an instrument.
The default value is zero, which means to apply no offset pitch bend.
From -8192 to +8191; which covers a range of pitch bend defined by the Bend Sensitivity parameter.
The maximum amount of micro pitch change that can be applied. Zero means off (which is the default). The maximum value allowed is 8191. The value chosen is added to the pitch bend offset.
The amount of change in Micro Pitch that is applied by Wotja between “update” periods. The value drifts between zero (off) and the Pitch Range, changing by plus or minus the Pitch Change value each time.
The time in milliseconds between updates to the pitch controller. The actual value chosen is selected randomly each time, to be a value somewhere between Pitch Update and Update Range.
The upper limit of time between updates to the pitch controller. The actual value chosen is betwen Pitch Update and Update Range.
Normally, Voices compose and emit MIDI note events. The Voice Note to MIDI CC Mapping parameters allow you to tell a Voice to emit MIDI controller data instead of MIDI note events.
Why would you want to do this? Well, it lets you use a Voice as a very powerful generative MIDI event generator with a huge range of potential applications.
If you want this Voice to emit a MIDI CC instead of note on/off events, set this parameter to Yes.
If you have set CC for Note On? to Yes, then instead of emitting a note on event, the Voice will emit the specified MIDI CC, with a value equal to the composed pitch.
If you want this Voice to emit a MIDI CC proportionate to the Velocity of the composed note (in addition to any controller defined for Note On CC), then set this parameter to Yes.
If you have set CC for Velocity? to Yes, then the Voice will (in addition to the Note On CC value) emit the specified MIDI CC, with a value equal to the composed velocity.
If you want this Voice to emit a MIDI CC when a note off occurs, set this parameter to Yes. This applies only if CC for Note On? Is set to Yes.
If you have set CC for Note Off? to Yes, then instead of emitting a note off event, the Voice will emit the specified MIDI CC, with a value equal to the composed pitch of the stopped note.
Voice Envelopes are supported for a number of parameters. Envelopes work in the same way for all of these, so they are all grouped here.
Each envelope is a collection of up to 100 data points. A piece starts with the value at the left side of the envelope, and as it progresses, eventually ends up with the value from the far right of the envelope.
You can draw direct on to the envelope with your mouse.
Alternatively, you may use one of the various powerful envelope editing tools that we have made available to you.
To use the envelope editing tools:
- Right-click (win) or ctrl-click (mac) on the envelope tool
- Select the option you want. e.g. random, curve up etc.
- Select the range using the mouse...
- Then: either press space or enter, or select pop-up envelope tool to apply to the selected range.
- Select freehand mode to return to the normal click-to-paint mode.
This allows you to define how the Velocity level is changed automatically for your Voice throughout playback of the piece. The velocity defines relatively how loud each note is.
The actual Velocity value used at any point in the piece is calculated as being a value somewhere in the range from Velocity, to Velocity plus the value of the Velocity Range envelope.
The value in this envelope is added to the value in the Velocity Envelope.
The velocity for any composed note can change by a value between Velocity Change Envelope value (VCE) and the VCE plus the Velocity Change Range Envelope value.
The value in this envelope is added to the value in the Velocity Change Envelope.
This allows you to define an envelope that is used to emit a MIDI CC of your choice. The default value for this MIDI CC is 7, which is the Volume controller.
Use this to define the MIDI CC that you want to be emitted by this envelope. The default value is 7, which is the Volume controller.
Use this to turn your envelope on or off.
This provides fine variation in the values generated by the User Envelope 1. Any value generated by this micro controller is added to the Micro User Envelope 1 value, to give fine variation in any such envelope.
The maximum amount of micro change in the User Envelope 1 that can be applied. Zero means off (which is the default).
The amount of micro change in the User Envelope that is applied by Wotja between “update” periods. The value drifts between zero (off) and the Range, changing by plus or minus the Change value each time.
The time in milliseconds between updates to the Micro User Envelope value. The actual value chosen is selected randomly each time, to be a value somewhere between Update and Update Range.
The upper limit of time between updates to the Micro User Envelope value. The actual value chosen is betwen Update and Update Range.
This allows you to define an envelope that is used to emit a MIDI CC of your choice. The default value for this MIDI CC is 10, which is the Pan controller.
Use this to define the MIDI CC that you want to be emitted by this envelope. The default value is 10, which is the Pan controller.
Use this to turn your envelope on or off.
The Mix Tempo allows you to define the tempo for your mix.
The Mix Root parameter allows you to define the Root Pitch to use for the mix. For example, if you are using a Major Scale Rule, then set this value to be C for your Piece to play in the key of C Major.
Sets how long it takes for the file volume to ramp up once the file has started to play.
Sets how long the file will play for (Piece time) in the Playlist.
Sets a range on how long the file will play for (Piece time) in the Playlist.
Sets how long it takes for the file volume to ramp down before play moves to the next file in the Playlist.
The Piece Rules parameters allow you to define the default Rules used by the piece in the selected Cell. Each Cell can have different Piece Rules.
Set this to define the default Scale Rule to use when the piece plays. Individual Voices are allowed to override this setting if they so wish.
Set this to define the default Harmony Rule to use when the piece plays. Individual Voices are allowed to override this setting if they so wish.
Set this to define the default Next Note Rule to use when the piece plays. Individual Voices are allowed to override this setting if they so wish.
The Piece Time parameters allow you to define some of the key parameters that govern your composition at the Piece level.
The duration time units for which the piece should play. The default value is Seconds, but you can set to Bars if you so wish.
The minimum duration, in seconds / bars, for which to play this piece before restarting. The duration chosen is somewhere in the range of Piece Length, to Piece Length plus Piece Length Range. If Length Units is Seconds, then the chosen duration is rounded-up to the nearest bar boundary.
Defines an upper range in values, for which to play this piece before restarting
Defines the Meter to be used by this Piece, such 4:4 or 3:4 or 6:8. A Voice will generally use this Meter, but the Meter value to be used for each Voice may actually override this setting. This approach allows Voices to be configured to work with a completely different Meter, which can be used for interesting polyphonic effects.
The File Object allows you to define some book-keeping parameters for your piece (and each cell in a mix can use a different piece). None of these parameters affect the way that you piece sounds.
The title of your Piece.
The author of your Piece.
Any notes you want to include for your Piece.
The Intermorphic Sound Engine 4 (ISE 4) "Network Editor" is used to design / view and edit both Synth Networks or FX Networks.
Whether you are viewing/editing a Synth or FX Network depends on which button you tapped on in the Wotja Design screen used to access it. You can tell which network you are editing as the screen title will refer either to "Network Synth" or "Network FX". The Editor is quite easy to use one you understand how it works and how everything fits together.
Top Tip: To build a stereo synth network, use a Sound Unit's pan parameter to spatially position its sound. You can have as many Sound and FX Units, Controllers and Junctions in your network as you want (device capability permitting).
Central area:
The central area shows a visual representation of the network design (for General Controls see below).
The currently selected unit is highlighted with a black surround. Audio-rate units are shown in the top row of the network and control-rate units are shown in the bottom row. Units are always numbered from left to right and from 1 upwards; they are automatically renumbered if you ever delete a unit.
If there are no units shown then it means there is no Network defined.
Add Unit: Tap on an empty/blank part in the top half of the screen to display the Unit Add menu (below). Audio-rate units are listed first: Tone Generator (Tone), FX; followed by Control Rate units (Ctrl-). Note if you are designing a Synth Network, then at least one of your units should be a Sound Unit! Sound Units all have a "Tone:" prefix.
Select / Edit Units : How you do this depends on the Tap Edit checkbox/toggle setting below. Note: Some units do not have editors (Random, Junction) as they just sum the inputs of anything feeding, so nothing happens when you tap on them.
Top buttons:
Connectors & Controllers Area:
Bottom toolbar:
All Units (i.e. both audio-rate and control-rate), except Junction Units (below), have some parameters that can be controlled (modulated) by control-rate Units (LFO, Envelope, Amp). Each Unit you want to control can have as many Connectors (lines) as you like, and these are separately numbered for each Unit. This allows all kinds of fun and clever sound design stuff to be done in the ISE. The Connectors and Controllers are displayed / selected at the bottom of the screen.
You can tell if a Unit (audio-rate or control-rate) has been set up to be modulated by a Controller as you will see a blue or red line attached that is connnected to control-rate unit to the left of it.
Junctions (audio-rate or control-rate): These units are coloured grey, have no interfaces, and are used only to sum together the outputs of a number of Units of the same audio-rate or control-rate type, meaning the units they sum are always on the same line.
Controller Editing:
The KEY to understand how the Connector/Controller controls work is to understand that:
Have a look at Osc 3 in the image above (the 3 signifies the unit number). It is shown as selected (bold black line around it) and has a red line (Connector) going to a red Control-Rate Unit below (Controller). Even though you might think that the red line is Connector 2 for the Osc 3 unit - as it is shown second in the network - it is actually Connector 1. You can tell this in the DT image left drop list shows "1" and in the iOS image it is shown as the first item in the list. This connector links LFO Unit 2 with the Osc 3 unit.
Controller Adding:
The "DSynth" tone generator unit can be used either as a melodic tone generator or as a Drum/Percussion Synthesizer for a range of drum/percussion related sounds. You can shift the pitch of the generated sound away from the notes that would otherwise be played, using the Tuning controls.
The unit works by combining two Oscillators which cross-modulate each other's oscillation frequency. Each oscillator has its own ADSR envelope which is used primarily to modulate the volume of the oscillator, but which can also be used to modulate the frequency of the oscillator!
The output of the two oscillators is merged with the output from a filtered noise generator (the bottom block of parameters) which also has its own ADSR envelope. The net effect is a unit which can create a wide array of percussive and melodic sounds. You can use the Export and Import buttons at the top of the unit to export and import DSynth settings to/ from the clipboard.
Tip: Use an audio junction unit to add together sounds from multiple tone generators to make even richer sounds!
Main Controls
Oscillator 1 and Oscillator 2 Parameters
Filter/Q Parameters
Tuning
This unit lets you create a range of waveforms, which are driven by MIDI pitch (via the "Pitch" checkbox); in which case, they are flexible, efficient MIDI tone generators.
Tip: You can use an audio junction unit to add together sounds from multiple tone generators to make even richer sounds!
Tip: The bottom linked Envelope Unit is there to help you shape your sound.
Main Controls
Type
STS
Tuning
Bottom Toolbar
This effect unit is an example of Granular Synthesis, which although is often used to do time-stretching of samples, is used for a completely different purpose here - that of creating rich layered sounds ranging from ambient forms to plopping sounds and twinkling chimes. The particle system incorporates octave, semitone and micro tonal offsets. It also has a checkbox that allows it to use the default volume envelope for amplitude shaping.
The Particle System synthesizes tones from a number of sine waves. This is really granular "additive synthesis". The unit works by streaming-out grains up to a maximum of 20 at any one time. These are randomly offset from each other to blend well. When the effect decides to generate a new grain, it takes its information from the dialog values. If the grains are reasonably large then the harmonics come in and out giving a full sound.
Tip: You can use an audio junction unit to add together sounds from multiple tone generators to make even richer sounds!
Main Controls
Envelope
When added to a Synth Network, a Wavetable Unit defaults to use the integral "General MIDI" (GM) Wavetable and plays Patch "001-Acoustic Grand Piano". To change the Patch select another one in the Patch list.
It is easy to use the other IM-included SF2 wavetables (IM Drums, IM E-Perc, IM Guitar, IM E-Piano, IM Piano, IM Synths).
Simply use the left list control to select the Wavetable from the list of those shown and then use the right hand list control to select the Patch (all patches available in the Wavetable are listed; they are listed in standard patch bank/patch order).
To use your own or 3rd party SF2, they just first need to be put in the right place (see: Copy Content In/Out).
Note: If a Wavetable Unit is used in a Synth Network for a MIDI line, its Wavetable and selected patch will override the underlying piece's IME General MIDI Patch parameter (which always uses that patch in the GM Wavetable). If you DO want to use the piece's IME General MIDI Patch parameter setting, you must DELETE all units in the Synth Network and select the OK button to accept that. If you then re-enter the Synth Network you see a Wavetable Unit looks to have been added. It is a placeholder but it is not used - unless you enter the Wavetable unit in which case the sound will default to a GM Piano sound until you change it.
Top Tip: There are 4 parameters in the Wavetable unit that can be modulated: Frequency, Portamento, Amp and Pan. Try using a LFO Unit to modulate the Wavetable Unit's frequency paramater to apply a vibrato effect. To change how that vibrato is applied over time, try shaping the output of the LFO with an Envelope Unit before feeding into the Wavetable Unit.
Tip: You can use an audio junction unit to add together sounds from multiple tone generators to make even richer sounds.
Main Controls
iOS: This top area is scrollable (swipe to scroll).
macOS: The top area and selector list area below is separated by a horizontal draggable splitter bar.
Selector List
Bottom Toolbar
If you have a weak signal, e.g. coming out from a Filter Unit or an Wavetable Unit, then pump it into an amplifier. The Amplifier can multiply the input by a factor of up to 10. If you want more than this, feed it into another amplifier!
Main Controls
Sums the input and duplicates it at varying delay rates with the effect of "thickening" the audio. The delay time and frequency should be tweaked to give the right feel.
Main Controls
Used to help compress the signal in the DSP chain.
If you view the compressor behaviour as a function of Output (measured in decibels [dB]) against Input (measured in decibels [dB]), the compressor displays three distinct regions of behaviour:
Main Controls
Mode
Used to add interesting delay effects to an audio signal.
Main Controls
Distorts the sum of your incoming signals. Take cutoff X right down to about 0.02 to get a really distorted sound - it sounds great on a particle system! Cutoff Y acts like an amp and Cutoff Max determines the position of the output wave when the input is at 1.0 or -1.0.
The combination of Cutoff X, Y and Cutoff Max contribute to reshaping the input signal.
Graph of the Distortion Cutoff parameters
Main Controls
Use the Equaliser Unit to modify the frequency response of your audio signal. Depending on how you configure the unit, it can operate as either a 5-band or a 10-band equaliser. Note that the 5-band equaliser takes less CPU power.
Main Controls
Toolbar
The Filter Unit can work in a variety of different ways depending on how you configure it:
Main Controls
This unit adds overdrive distortion to the sound source.
Main Controls
This unit adds reverberation to the sound. This gives depth to the sound and makes it seem as though the piece is being performed in a room. You can control the 'size' and sound of this room with the parameters below.
Main Controls
The Envelope Unit is used to edit the "Ctrl-Envelope" control-rate plugin. It is only of use in Modular Synth networks, where it is triggered in response to MIDI note on events for the current MIDI line, and generates no sound of its own. Used in context of the TG Osc it is also triggered in response to MIDI note off events.
There are a number of values which you can adjust to modify the shape of your envelope. The shape used is shown in this diagram below.
Main Controls
Toolbar
This unit lets you create a range of control-rate waveforms. The waveforms oscillate at a pitch that you dictate yourself. They are used for modulating the parameters of other effect units; they should only be run below (say) 50Hz or you'll get some odd effects.
Main Controls
Type
STS
If you have a weak control rate signal, coming from a LFO for example, then pump it into an amplifier. The Amplifier can multiply the input by a factor of up to 10. If you want more than this, feed it into another amplifier!
Main Controls
Main Controls
This unit simply generates a random value from -1 to +1 at the control rate (it is not an audio unit). There is no Unit interface, but you control the scale factor with the slider at the bottom of the Network Screen.
Audio-rate / Control-rate
Junction units are what you use whenever you need to add or combine together the output from two or more units in the system. They are added from the Units drop list below the Chain display. They are shown in grey in the network and have no interface of their own.
There are two types:
When a junction unit is selected in the top "Chain" display area, a "Connector + Unit" section displayes at the bottom of the Network Editor screen and which lets you change junction inputs.
Main Controls
Connector + Unit & Scale: These only show if your currently selected unit is a audio-rate [audio] junction ("Junction") or a control-rate junction ("Ctrl-Junction").
The ISE incorporates a very powerful and flexible software synthesizer. The ISE and its pop-up plugin editors are a new audio application suite, that supports editing of effect plugin settings. The features and flexibility of the ISE are such that, to make the best use of them you will find that a little understanding of the basics of sound synthesis will go a long way.
If you haven't delved too deeply into programming synthesizers before now, or if you fancy a quick refresher course, then this tutorial is for you. We will not be getting heavy with the physics and number crunching side of things here. We'll keep it practical and, hopefully useful. Let's go.
We have to start by establishing the meanings of the terms we will be using from here on in. Creating sound is all about finding new and interesting ways to shove air around. Here is an idealized illustration of what that might look like using a single pure tone.
Using this graphic we can identify some basic units and concepts in sound generation.
The waveform |
The waveform is the wiggly line, obviously! This one is a sine wave. |
A cycle |
The area between the vertical blue lines in the graphic is a single cycle of this wave. In this instance it starts at zero, rises to the highest point, drop back down to zero, continues to the lowest point and rises up to zero again. You can start a cycle at any point of the waveform. It doesn't have to start from zero. The main thing to remember is, if you choose any arbitrary point on the waveform to start from, when you reach that point again, so long as you are traveling in the same direction as you were when you left it, you have completed a single cycle. If you start the waveform at some other point that the one shown here (say, from the highest point on the graph) you have changed the phase of the waveform. It doesn't make it sound any different if you listen to the tone on its own but there are good reasons for being able to change the phase of a wave if you wish. We'll get to them soon. |
Frequency |
Describes the number of cycles in each second. It is measured in Hertz (Hz), one hertz being one cycle per second. If the frequency is in our hearing range we perceive it as the pitch of a note. The human hearing range falls roughly between 20Hz at the low end and about 20,000 Hz at the upper end. If you can hear much higher than that then your owner needs to get you a dog licence. Human ears aren't very good at detecting pitch at the extremes of our hearing range but can be incredibly acute in the midranges. |
Amplitude |
Describes the range of upward and downward movement the waveform makes. We hear it as volume. Large amplitude values mean loud audio signals. Small ones mean quiet ones. If you reduce the amplitude of a wave you are said to attenuate it, if you increase it you are amplifying the signal. These amounts are typically measured in decibels (dB) which are a total pain to work with, mostly because they work to a negative logarithmic scale where minus infinity is the quietest point and zero is the point of optimal loudness. So we'll move quickly past. In a wholly analogue system, like a Stratocaster plus a Marshall stack, amplifying a sound beyond that optimal point gives the desirable sort of distortion sound that has been putting food on guitarists' tables for years. No such luck with a digital system. In the digital world you cannot take the amplitude of a waveform beyond 0 dB. If you try, the wave looks like it hit a brick wall and sounds ghastly! We mention this because putting sound into an amplifier is only one way of increasing its amplitude. Adding another sound source also increases the amplitude of the sound we hear. Which is why a full string section is louder that a solo violin. In sound synthesis it is not uncommon to use several sound sources to create a single sound. The ISE has a built in limiter that manages sound levels internally for you to keep things out of the clipping zone. However, you will need to take some care of levels yourself if you want the best possible sound quality. A limiter working hard is often quite audible which might not be an effect you want to hear! |
Zero crossing |
If you think about it, moving air around systematically involves both pushing it and pulling it blowing and sucking. This is reflected in the graphic in that there is a line drawn through the centre of the waveform. Amplitudes above the line have a positive value, those below have a negative one. In the jargon, audio signals are usually bipolar. The point at which a waveform has an amplitude of zero is particularly important in sampling, something we will cover later. But the location of the zero crossing line has a significance in synthesis also. For convenience, we show the zero line in the graphic as bisecting the waveform so there are equal amounts of waveform both above and below the line. Things don't always have to be this way and there are ways for us to move this line up or down. To do so, in the jargon once again, we apply a DC offset to the waveform. As moving this line up or down will make no appreciable difference to the sound of the tone, why worry about it? If an audio signal is what you want, in truth it is not worth bothering with. But, if you want to use a waveform for something other than audio, like using one waveshape to control the parameters of a second then it can be very important. As we might find out later! |
And that's about as much as we need to know about the components of a waveform. But there are a couple of other things we need to touch on to help understand how to synthesize sounds.
If you play a note on any tuned musical instrument you will hear an astonishing complexity of sound. But, despite that complexity you will (hopefully) perceive a pitch. That's the fundamental. In all sounds that we perceive as pitched there is one frequency that stands out from all the other noises in there and this is the one the ear uses as the pitch reference. A piano, violin and oboe sound totally different to each other but, if they all play note A4 you will hear three distinctive sounds all having a common fundamental frequency of 440 Hz or thereabouts.
If you listen more closely to the sound of a single instrument playing a single note, once you get past hearing the fundamental you will hear a range of other tones. Some of these work in a musical way and sound rather like chordal notes related to the fundamental. Others have a more uneasy relationship to the fundamental or are completely atonal.
The musical ones are harmonics. They sound musical because they have a very precise mathematical relationship with the fundamental frequency. The frequency of the harmonics are always a whole number (integer) ratio of the fundamental frequency.
Just to confuse matters slightly, the fundamental is also called the first harmonic. So, a tone with a fundamental frequency of 100Hz will have the second harmonic at 200Hz (an octave), the third at 300Hz (octave plus a fifth), the fourth at 400Hz (two octaves) and so on to the limits of our hearing.
The other sounds that you can hear are called aharmonics. These are frequencies that have a non integer ratio to the fundamental. When there are a lot of these present we tend to perceive the sound as clangorous or bell like.
If these three elements were all present in a sound in similar proportions we wouldn't hear a musical note at all. We would hear noise. So, to make musical sounds we need to find some way of establishing a balance between the fundamental, the harmonics and the aharmonics for any given frequency. And that's what synthesis is all about.
There are three major routes to doing this. One is that we can start off with basic sounds that are very rich in harmonics and then use a filter to reduce or remove the ones we don't want. Oddly enough, that is called subtractive synthesis.
We can also do the exact opposite. We can take very simple tones and add them together to create complex sound. Additive synthesis, surprisingly hard to do well.
The third route is a kind of middle way between these two. If the properties of one waveform can be used to vary those of another at audio frequencies, new and complex waveforms can be generated. You could call this synthesis by modulation. The most common methods used are amplitude modulation and frequency modulation.
In reality we mix and match, using elements from all three main routes as we need them.
The components of most synthesizers can be categorized into four broad groups.
The first group could be called sources. These are the devices that produce the raw sound you will work with. The ISE allows you to use samples as sources as well as including some very well featured tone generators.
The next group we can call modifiers. Included here would be envelopes that shape the sound over time and filters that remove or emphasize certain frequencies.
The third group are modulators. They apply regular, repeated change over time to specific sound parameters. The most common of these is the low frequency oscillator, the LFO.
Finally there are the effectors. These are signal processing devices, reverberation modules, delays and so on. Usually they act at the end of the synthesis chain.
It is usual to define the output from modifiers and modulators as control signals; being as their usual job is to control the parameters of other devices in the synthesis chain. In the days of monster analogue modular synths it was considered sensible to use different coloured patch cords for control signals to distinguish them from audio and other signals. When using the ISE it is also important to distinguish control signals from the audio path. We'll explain why in a moment.
For now, let's have a look at the first three device types in turn.
Any self-respecting synthesizer will have a tone generator offering several basic waveforms as a starting point for sound creation. Why? What distinguishes one waveform from another? The answer lies in the harmonics on offer. So lets just quickly run through the more common waveforms and see what distinguishes one from the other.
Sine wave |
Is a pure tone. It has no harmonics at all so there is not much point in applying a filter to one. Nothing to filter! This purity of tone make it very good for adding low end definition or kick to a bass sound. It is also good for additive synthesis where you don't want harmonics unless you put them there yourself. Put three or four of these waves together for an instant electronic organ type of sound. |
Sawtooth wave |
Is the most harmonically rich waveform in the box. Characteristically bright and buzzy. The starting point for thousands of classic synth sounds. A sawtooth wave has every harmonic present (theoretically) but their amplitude decreases from that of the fundamental by 1/the harmonic number. So the second harmonic is ½ as loud as the fundamental, the third harmonic is 1/3 as loud as the fundamental and so on until you hearing fails. |
Triangle wave |
Really just a sine wave straightened out. It doesn't have many harmonics and those that are present are quite high up. So, if you want hard and aggressive sounds this is not the wave to choose. Nice for flute sounds and soft leads though. |
Square wave |
A bit complex this one. A graph of a true square wave looks rather like a child's drawing of castle battlements.
Square wave is a shorthand way of saying "pulse wave that spends as much time at the highest point as it does at the lowest". In this form it has a sound that is usually described as "hollow". The reason is that every second harmonic is missing, there are only odd numbered harmonics present. But this absence of even harmonics only holds true if the time between "high" and "low" in the cycle are the same. If the wave spends half of its time at the top the ratio between the high points and the low points of the waveform is 1:2 and, as we already know, every second harmonic is missing. If we change this ratio to 1:3 (i.e. the wave spends 33.3% of its time at the top) some of the missing harmonics return. We now only loose every third harmonic instead. If the ratio was 1:4 (25%) we would only loose every fourth harmonic. And so on. If there was a way of shifting this ratio in real-time we would be able to hear these harmonics coming and going. We could call it pulse width modulation and use it to recreate classic synth string sounds, all kinds of shimmery pad like sounds and some unforgettable bass tones. Sounds like a plan! |
Combination waves |
Unsurprisingly, combination waves can have the characteristics of most of the above. The ISE includes one waveform that can be "morphed" from triangle to sawtooth to pulse wave. If you've followed us this far you should have realised that this gives you the option of tailoring the harmonic content of the waveform quite closely; a very powerful option indeed. Similarly, being able to change the shape of a wave in real-time can open the door to a whole new bag of sonic tricks. Pulse width modulation on steroids! |
Envelopes give us a way of shaping a sound in time. Every synthesizer will always have at least one to control the amplitude of a signal. More sophisticated synthesizers will have several envelope generators which can be assigned to control other important parameters.
Envelopes are usually "one-shot" devices. An event triggers their start and, once underway, they transmit values that correspond to the envelope shape until they are done. They then do nothing until they are triggered again. Amplitude envelopes are usually triggered by the equivalent of a note being pressed on a keyboard.
Envelopes can be described by the stages they go through. The ISE amplitude envelope is a multi-stage envelope, having separate stages for Attack (how quickly the envelope moves from zero to maximum), Hold (how long it stays at the final attack level), Decay (how quickly the level falls to the..), Sustain (the lowest possible level during a note event) and Release (how long the sound will take to fall to zero from wherever it was when the note event stopped). There is a set of stages associated with when the note stops.
The control signals sent by the envelope unit in the ISE can be bipolar; i.e. the control signal value can be positive or negative. This has got some implications if you want to combine control signals from more than one device.
Say you want to combine the output from an envelope and a LFO to create a LFO that fades up or down. As these could both be bipolar signals, shoving them into an adding unit (a simple mixer) won't work as you expect. Adding a minus value to a positive one is subtraction by another name so doing this will result in periodic signal cancellations and other unexpected behaviour.
If you recall your basic grade maths, you'll remember that a negative (minus) value multiplied by a positive always gives a negative result. So, if you want to combine bipolar control signals, use a negative scaling factor on one or more of your control-rate junction input scale factors!
Amongst some synth nerds, filters can acquire a mythical status, becoming objects to be worshipped or argued about into the small hours. This is rather off-putting for the rest of us and obscures the fact that, from a users point of view, they are actually rather simple devices.
There are only four things you need to know about a filter; its shape, its slope, its cutoff point and whether it is resonant.
The shape is usually what gives the filter its name. So it is a safe bet that a low pass filter will allow low frequencies through and exclude higher ones. Similarly, a high pass filter will do the opposite. A band pass will allow through frequencies that fall into a certain range and a band reject will allow everything through except frequencies in the defined range. Nothing mysterious about that.
The cutoff point is the frequency at which the filter will start to do its stuff. So a low pass with a cutoff point of 600Hz will start to attenuate anything over 600Hz but leave all the lower frequencies alone.
The slope of a filter simply determines how sharp the attenuation will be. It is sometimes expressed in dB per octave and sometimes in "poles". The famous Moog filter had a 4 pole slope which equates to a reduction of 24dB per octave. If the earlier example of a 600Hz lowpass cutoff was a 4 pole type it would mean that, by the time we got to frequencies of 1200 Hz they would be attenuated by 24dB compared to the ones at 600Hz. This is quite a steep reduction and would leave very little audible signal by the time we got beyond 1500Hz. Something more gentle, like a 2 pole slope would only attenuate frequencies by 12dB per octave. So you would hear more of the higher harmonics.
Filter resonance (sometimes called Q for reasons that don't matter) is also pretty straightforward. All this does is emphasize the frequencies around the cutoff point. It is a kind of feedback loop. The higher the Q the more pronounced are the sounds at the cutoff frequency. On some old analogue synths you could crank this up so high that the only thing you could hear was the cutoff frequency so the filter would start to behave like an oscillator. This was called self-resonance. It is not so easy to do in a digital system.
And that's filters really. If they were fix and forget devices they would be little more than glorified tone controls. But, if we can use envelopes or LFO's to change the cutoff frequency or resonance in a dynamic way, then they are the heart of a subtractive synthesis system. Hence all the attention they get.
We've made passing reference to it before but it is now time to get into some detail about modulation. It is a huge topic because there are so many possibilities. The skillful use of modulation techniques is probably the single most important factor in getting dynamic, expressive, musical sounds out of a synthesizer.
We'll start with a definition. In synthesis, modulation is the process of using one signal to apply regular, usually cyclical change to one or more parameters of a second signal. Lets look at a simple practical example.
A violinist often gives expression to a piece by adding vibrato. When he or she waggles their finger on the fretboard the net result is that they are making small regular changes to the fundamental frequency of the note they are currently playing. We can do exactly the same thing with our instruments.
To create vibrato on a synthesized voice we simply apply small regular, cyclical changes to the oscillator frequency. We do that by routing the output of one, low frequency (i.e. slow) oscillator to the frequency controls of the main, audio oscillator.
The change this will make depends upon the properties of the signal sent from the low frequency oscillator (LFO). And, when we use a LFO as a controller of other parameters, some things that are not important to the sound of a waveform become very relevant indeed.
There are five aspects to a LFO waveform that are important to consider; the actual shape of the wave, its frequency and amplitude, its phase and its DC offset.
Frequency and amplitude are quite easy to come to terms with. The higher the frequency of the LFO the more changes per second will be made. Amplitude is an interesting one. In our violin example, sending a 100% amplitude sine wave from the LFO to the tone generator frequency control would not give us vibrato. It would give us the sonic equivalent of seasickness. You use the amplitude controls of an LFO to determine how much change is to be applied. For vibrato, very small amplitudes around 3% will do fine.
It is useful to be able to visualise the wave shape of an LFO. If we are generating a sawtooth wave at audio frequencies then the direction of the sloping part of the wave is irrelevant to the sound. A wave that has a slope to the left sounds the same as one with a slope to the right. However, if we want to use an LFO to make gradual change to one parameter, then fall down to the beginning and start again, we would not want to use a waveform with a left facing slope. Visualise it!
Phase and DC offset are related to some degree. Lets consider phase first.
In the vibrato example, for the main oscillator to remain in tune we need the LFO to start from the zero crossing point. If it started at any other place it would automatically add something to the main oscillator and cause it to sound out of tune.
There might be other occasions when we want the effect that comes with starting the LFO at somewhere other than zero. In those circumstances we would adjust the phase to suit our purpose. Again, the best advice is to try to visualise what you want to achieve, then program it accordingly.
Finally there is the DC offset for the LFO. To go back to our violinist (for the last time, honest!) a vibrato effect that shifts the fundamental pitch up and down by equal amounts is not very natural sounding. It actually sounds far more realistic if we push the frequency in one predominant direction. The way to do this with an LFO is to shift the DC offset.
Think about it like this. The LFO is sending numerical values out to be added to the frequency of the main oscillator. As a bipolar signal with no DC offset, half of these values will be positive and half will be negative. Changing the DC offset will shift this balance. If we only want the vibrato to work up from the fundamental we would need to shift the zero crossing point right down so that the LFO sent out only positive values.
This can be hard to visualise just by applying a numerical offset value so the ISE makes it very easy by giving you an option to set the ratio between positive and negative values transmitted by the LFO using two sliders. Nice!
There is a catch to doing this though. If you change the DC offset it will obviously have a non-zero value. Less obviously, if you sent this DC offset LFO to the pitch control of another oscillator you will automatically add the DC offset value to it, taking the oscillator out of tune! So, if you are shifting DC offsets in this way you need to retune the destination oscillator to compensate.
Exactly the same principles apply when using LFO to modulate parameters other than oscillator frequency. We've mentioned how the harmonics present in a pulse wave change depending upon the pulse width ratio. If you route a slow LFO to modulate the width of a pulse wave type oscillator you get a rich shimmering sort of sound as harmonics come and go that has been the basis for synth string patches since forever. It also gives some astonishing bass sounds in the lower registers. Pulse width modulation was actually hardwired into the infamous Moog Taurus bass pedals so beloved by `70's prog-rockers.
Incidentally, if you are using an LFO to modulate pulse width you will need to attend to its amplitude. Too much modulation and you can get to the stage where there are no harmonics at all - not even the first one! Silence is not always golden.
Modulation by slow, sub-audio oscillators is not too difficult to get to grips with. But there is no rule that says that modulators always have to be inaudible. However, what happens when you crank the modulator signal up into the audio range can get pretty wild. One option is to use a device called a Ring Modulator.
With this device you simply take two sound sources and plug 'em into it. In effect what happens after that is that the first audio signal gets spliced with other signal at the frequency of that second signal. What you end up with is a new signal that consists of the sum and the difference of the two incoming signals. Which is OK if the two are pure sine waves. But if they have harmonics attached...:)
At low modulator speeds a ring modulator just chops up the sound in quite an obvious way. This was how they made the Daleks speak! But at high modulator speeds you can get all manner of crazy, unpredictable effects, especially if the modulator frequency is either fixed or changes in a way not related to the carrier. If you want one of those "car crash in a steel foundry" moments (and who doesn't) head for the ring modulator.
As we are talking about high speed modulation it is probably worth mentioning something that isn't going to work in the way you might think. At this point we need to get a bit technical about the workings of the ISE. Remember what we said about distinguishing control signals from audio signals? Here's why you need to do it.
The ISE is a digital synth (obviously!) so everything going on under the hood has to have a sample rate to work to. In order to save resources for the things that matter, the ISE gives absolute priority to rendering the audio signal at a reasonable sample rate, typically 22Khz on a modest PC. To save CPU time, all control signals are rendered at a very low sample rate. The default rate is 100Hz..
In most circumstances, this low sample rate isn't an issue. You don't need to hear the actual output of an LFO or envelope unit so there is no point in rendering it at CD quality when we can do better things with the resources available. However, it does mean that you can't just stick the output of one tone generator into the frequency control input of another because the (incoming) modulating signal will be interpreted as being a control signal and so will be capped at the control signal sample rate frequency.
Granular synthesis is a relative newcomer as a synthesis method, mainly because the tools and processing power needed to do it easily haven't been readily available until recent times. As powerful computers tended to be in academic institutions it gathered a reputation for being "something for the boffins". While the underlying maths might be the stuff of nightmares, the concept of granular synthesis is dead easy. Here goes.
If you take a very small section out of a waveform ( a few milliseconds at most), add an similarly small section of silence and loop play the result at audio frequencies you get an entirely new, and rather complex waveform. The audio content of this waveform will be determined by several different things; the size and content of the original mini sample (the grain), the length of the silence, the nature of the boundary between the two (is it abrupt or does it fade and by how much?) and the playback speed.
If you think about it, this is not a million miles away in principle from good old amplitude modulation. But then we take it to another level!
If you move away from using a single grain to using multiple grains, all with different frequencies, or if we modulate the grain size and/or the grain end crossfades it all gets very strange. You very soon start to generate mutated, wholly original sounds that are not easy to achieve by other means. Which is what the buzz about granular synthesis is all about.
Now we wouldn't be telling you all this if there wasn't a way to do it with the ISE. One of the modules available is a "particle generator" and mainstream this is not! What this module does is generate up to twenty little bits of simple waveforms which are then used as the grains in creating a more complex overall sound. You control a range of the more useful and interesting parameters, most of which can be modulated by other the ISE modules.
What comes out of the business end of this module is not always predictable. It is very easy to get it to generate complex, untuned warbling or twinkling sounds. With a little more effort you can make some breathtaking, animated, tuned soft lead sounds. As it is hard to describe the indescribable the best way to learn about this little beastie is simply to play with it. Think about it as a hands on introduction to chaos theory!
The use of "real world" sounds instead of tone generators as the starting point for sound synthesis is hardly a new concept. But it wasn't until the 1980's and the development of affordable digital recording technology that the full potential of this could begin to be realised. The ability to process and manipulate recorded sounds using the familiar shaping and modulating tools is a form of hybrid synthesis.
The simplest implementation of this can be seen in most samplers which basically slap a subtractive synthesis engine onto a digital sample playback device. You can do this with the ISE, no problem. And we will. Later.
But that is more than enough background for this tutorial. We can now take this knowledge forward with us and explore the ISE in more practical terms by starting to build our own instruments within the ISE.
Try launching the ISE. This is the place where you activate and program the ISE ... and where MIDI sound creation for the Intermorphic Sound System (ISS) gets very interesting!
Note that the audio plugin framework that underpins the ISE is an open framework, and has been designed to allow 3rd party developers to create application UIs into which they can plug in their own or other 3rd party sound processing modules, including support for the Intermorphic modules if so required.
When you start using the ISE for a MIDI line, what you have is an independent, non-midi, polyphonic synthesizer The sound generation limitations of MIDI pretty much go out of the window.
The ISE is no lightweight. It has a degree of flexibility that is comparable to the old, monster modular synths. It includes some features that are seldom seen, even on very expensive, "famous name" hardware synths. Inevitably, something so well featured and flexible isn't able to hide its complexity too well so there will be a bit of a learning curve to negotiate if you are going to be able to harness this power in a creative way. This tutorial aims to help you up along that curve.
We won't be creating full pieces of music in this tutorial; instead, we'll concentrate on programming sounds using the ISE.
To get the best from any synthesizer you really need to have some understanding of the path the various signals take inside it. If you have had some experience of hardware synths you will probably be used to imagining a left to right signal path, with the sound generating oscillators at left hand side and the sound output stage at the far right. The ISE signal path pretty much follows this convention...
It is here, in the Synth Network Editor, that we design the sound for the selected MIDI line. As you add synth units to your sound design, they appear as boxes in the bottom part of the dialog. We sometimes refer to these units as "slots"; you can have as many "slots" as you want, where you insert the various modules and units that, together, will make your synthesizer module. The sound you eventually hear will come only from the audio-rate unit in the rightmost slot. So, if you were to construct the simplest of synthesizers, using one tone generator and a LFO, you would have to put the tone generator in a slot somewhere to the right of the LFO. Put them the other way round and, if it was fast enough, all you would hear would be the LFO!
With the proviso that the sound comes out of the right most unit, the signal-flow is pretty strict in terms of left-right ordering. Signals from one module can only ever be passed to modules that are to the right of it in the design. In practice you must put control-rate units (your controllers and shapers, such as envelopes and LFOs) sound BEFORE the sound generating modules (i.e. before your tone generators). So, if you want to use an envelope to control the output from a LFO, you'll have to put the envelope to the left of the LFO. This does of course help you keep a handle on what your signal path is doing. With practice, you won't be confused.
Says it all really.
The ISE makes an important distinction between audio signals and control signals. Here's how it works.
Most signals in the system are "audio-rate" signals; they are rendered at whatever sample rate the platform is running at, for example 22Khz.
The only signals that can be used to modulate parameters of a synth unit (e.g. to amplitude or wave shape) are control-rate signals, that must come from a control-rate unit. To save CPU resources for the things that matter, control signals are rendered at a very low sample rate; typically 100Hz. So, if you try to modulate a parameters between units at audio frequencies the best you are going to get is 100Hz. This is not going to be good enough for specialised applications such as FM synthesis!
The reason that we do this, is that it saves a lot of CPU horsepower; to render subsonic waveforms at near CD quality would be pretty pointless. You don't want or need to hear the direct output of an envelope unit or a slow LFO.
A fixed architecture synthesizer with limited flexibility can hide a lot of things from the end user. Because the ISE has been designed for flexibility it is up to you to take care of some of the details to make sure that the results you get are the results you expect. This is particularly the case when making sure your MIDI line is in tune with the others in a piece.
The thing that is most likely to catch you out is when you use a LFO to modulate the frequency of a tone generator. If you use the LFO with most of its settings at the default there will not be a problem. However, if you adjust the min or max value sliders you will have a tuning problem that will need correction. Why?
If you recall in the synthesis tutorial, we said that changing these values was the same as applying a DC offset to the LFO wave, i.e. the zero crossing line has a non-zero value! So, if you route a LFO that has been shifted in this way to the frequency of another oscillator you are, in effect sending two values. One is the LFO amplitude, which will change over time and the other is the DC offset which is a constant. This DC offset will have to be allowed for by adjusting the pitch of the sound generating oscillator to get it back into tune.
So, if you have an out of tune MIDI line, check what is modulating the frequency!
All soft synths are serious processor hogs. A lot of effort has gone into minimising the hit that the ISE will make on your processor but you can't cheat physics. Making complex sounds in realtime means doing hard sums very fast and there will be a limit to the strain your CPU can take.
Note: The polyphony a synth will play with the Polyphony ("Poly") setting in the Network Editor. Note: This setting does not display in FX Networks which have no concept of polyphony.
Tips
Finally, a word about polyphony. With the ISE, each MIDI line can become an independent, polyphonic synthesizer.
But rather than always thinking of the ISE as a polyphonic synthesizer, you can think also think about it as a synthesizer that can have multiple instances of a Synth Network. If you set the "Poly" parameter to 2 or more, what the ISE does is create the corresponding number of identical synth networks that can operate simultaneously, one for each possible note. So, setting your "Poly" parameter high is an excellent way to use up your processor resources - which you will want to try to conserve. Use it with care.
OK, enough of the preliminaries. Lets get on with making some sounds. The terminology and concepts we will be using will assume you are up to speed!
This is how to set up the ISE as a simple two oscillator synth in the classic style. We'll go through this in some detail because, once you have got the principles of the ISE established, working in more adventurous ways gets much, much easier.
Firstly, we need to create a piece. From Wotja create an new mix (Menu > New) and from the popup Template list Seed (Pak) > Ambient. You will then have a mix or piece that will play long notes. Save this piece as "MyTest".
Launch the Synth Network Editor and set the poly to be 1 or more. Once you set a tone generator in your synth module design, this will then override any MIDI patch settings that your piece is using.
So: we need to design the module that our MIDI line will use. As we are going to make a classic kind of synth we will need two tone generators, a filter and an envelope to control it.
Add the following by tapping on a blank area in the Synth Network: Unit 1 - "Ctrl-Envelope", Unit 2 - "TG Oscillator"; Unit 3 - "TG Oscillator"; Unit 4 - "Filter".
Hold on - the filter is only fed from the output from the unit immediately before it; and what we really want is to feed the filter with the combined outputs from units 2 and 3! To do this, we need to route the two tone generators into the filter unit. How we do that is fundamental to getting the ISE to work for you!
Tap/hold Unit 4 (the Filter) and press the "Add Before" button and then select a "Junction"; your Filter is now moved to become unit 5! When the Junction Unit is selected, in the bottom Connector & Controllers area tap the Add button twice. Make sure that the first input item of the two inputs you've just added comes from Unit 2 (the first tone generator), and make sure that the second of the two inputs comes from Unit 3 (the second tone generator). You can set relative scaling factors for the two input units by playing with the scaling factors.
Here is the text that we get if we now press the "Export" button on the synth module editor window (we could subsequently reimport this if we need to by highlighting the text, copying it and pressing the "Import" button):
<fxm> <unit t="c/envelope" r="c"/> <unit t="tg/osc"/> <unit t="tg/osc"/> <unit t="j" i="2,1.;3,1."/> <unit t="filter"/> </fxm>
The audio-rate junction you've just added takes the the signals from the two tone generators, and adds them together. The output from your audio-rate junction automatically feeds the filter unit to its right.
OK, that's the network built. Now lets fine-tune our settings.
Tap unit 2 to display the Oscillator Unit. There is a list control where you can select the wave shape for this tone generator. We want a saw wave. The direction of the slope isn't relevant. Close unit 2, then tap unit 3 to display the second Oscillator Unit.
Select a sawtooth wave for the second tone generator. Please make sure its direction is the same as its twin in unit 2 or else they will cancel each other out and you won't hear much! :)
To make a big sound, set one of the tone generators to work an octave lower than the other. You can do this with the one in Unit 2 by setting the Octave offset to 1.
Once you've done all that, tap unit 5 (the filter) to open the Filter Unit. Set the filter type to "low pass" and adjust the cutoff frequency and Q (resonance) to taste. The filter will automatically sweep unless you tell it otherwise.
Here's what the exported module now looks like:
<fxm> <unit t="c/envelope" r="c"/> <unit t="tg/osc"p="1280=2;1287=1;1030=1;1031=1;1026=0;1033=0;1034=0;1028=400000;1281=1.;1282=0.;1283=50.;1284=50.;1285=50.;1288=-1.;1289=1.;1035=0.;1040=0;1042=10;1044=10;1046=50;1048=10;1050=0;1052=400;1054=100;1056=50;1058=0;"/><unit t="tg/osc"p="1280=2;1287=1;1030=1;1031=1;1026=0;1033=0;1034=0;1028=400000;1281=1.;1282=0.;1283=50.;1284=50.;1285=50.;1288=-1.;1289=1.;1035=0.;1040=0;1042=10;1044=10;1046=50;1048=10;1050=0;1052=400;1054=100;1056=50;1058=0;"/><unit t="j" i="2,1.;3,1."/> <unit t="filter"/></fxm>
Next, lets use the control-rate envelope (unit 1) to modulate the frequency of our first tone generator (unit 2). Select unit 2, and and in the bottom "Connectors & Controllers" area add a controller by pressing the "Add" button. Set the source Unit to be unit 1 (our envelope), and set the Param(eter) to be Frequency. Your envelope will now be modulating the frequency of your LFO! Use the Scale slider to adjust the amount of modulation. Select unit 1 if you want to modify the shape of your envelope.
Note that the envelope editor display might look a bit complex to start with, but it it's not really. It can be used to send out negative as well as positive values (it is bipolar!).
For example, you might want an envelope shape that rises slowly to a maximum, falls down to a low level rather slowly and tails off to nothing once the note has ended. So you could set the attack time to around 5 seconds, the decay time to just less than 4, a very low sustain level and a release time of half a second.
Once you have an envelope shape you like it is then just a matter of playing around with things until you get the exact sound you want. Note that you can also use control-rate LFOs to modulate parameters; and many units have a large range of parameters that you can experiment with modulating.
Anyways, back to our example: you should hear a more familiar, if rather overused, sound. If you go back to one of the tone generators and tweak the "Micro Offset" value a bit you will find that fattens up the sound nicely.
For a final touch you might want to add some reverb. This is best done by using it as a global effect for the entire piece because you might have several voices that you want to treat similarly.
If you close the Synth Network Editor you'll be back to the main application window. Press the "Global FX" button to open the FX Network Editor. This looks and works just like the Synth Network Editor you saw before, but this is now being used to edit global FX for the entire piece. Make sure to add an FX of type "reverb", and change the settings in the unit to get the sound you want. Then, close the Unit.
And there we have it. One classic, filter swept pad in the traditional subtractive style. Easy!
Now we have a sound that works it is a good idea to save it for use in other pieces. As noted above, you can export & import data directly via the clipboard and a text editor at various levels of the tool; this makes copying sounds around from piece-to-piece very easy.
If we export the settings from the Synth Network Editor the text should look something like this (depending on exactly what you did!). We need this by the way for our next tutorial step.
<fxm><unit t="c/envelope" r="c"/><unit t="tg/osc" p="1280=2;1287=1;1030=1;1031=1;1026=0;1033=0;1034=0;1028=400000;1281=1.;1282=0.;1283=50.;1284=50.;1285=50.;1288=-1.;1289=1.;1035=0.;1040=0;1042=10;1044=10;1046=50;1048=10;1050=0;1052=400;1054=100;1056=50;1058=0;" c="1#1029,.058"/><unit t="tg/osc" p="1280=2;1287=1;1030=1;1031=1;1026=0;1033=0;1034=0;1028=400000;1281=1.;1282=0.;1283=50.;1284=50.;1285=50.;1288=-1.;1289=1.;1035=0.;1040=0;1042=10;1044=10;1046=50;1048=10;1050=0;1052=400;1054=100;1056=50;1058=0;"/><unit t="j" i="2,1.;3,1."/><unit t="filter"/></fxm>
This sounds similar in some ways to Voice 1. But this time, instead of using a filter module to remove harmonics and animate the sound we will use an envelope to change the waveform shape over the duration of each note.
If you recall some of the things we covered in the previous tutorial you will realise that changing the waveshape will change the harmonic content of the sound. And, if we get it right, we'll end up with something that sounds like a traditional filter sweep without the CPU hit that the filter involves. So, really, we are almost using additive methods to make this sound. And it is more economical. Great!
Go back your piece above and open it.
Select the filter unit and press the Delete button to remove it. The last unit is now the audio-rate juntion unit, which just adds the two tone generators together.
Open up the Editors for the two tone generators. Change the wave type for each of them to STS. You'll notice that you get some interesting control sliders for this wave type.
Here is the synth module definition at this stage:
<fxm><unit t="c/envelope" r="c"/><unit t="tg/osc" p="1280=5;1283=41.;1284=32.;1285=36.;1048=10" c="1#1029,.058"/><unit t="tg/osc" p="1280=5;1283=44.;1284=57.;1285=59.;1048=10"/><unit t="j" i="2,1.;3,1."/></fxm>
It may not sound that interesting so far, but the STS wave is one of the quietly outstanding features of the ISE. If you couple that with modulation, and keep going, you will see why. The three parameters, controlling the up/down ratio, squareness and slope give you the capacity to morph a waveshape.
It might be a good idea to set up a simple voice just using this waveshape in a single tone generator and play around with the sliders to get the feel for what you can do with this. Basically, if you set the up/down to 100%, squareness to zero and right/left% to either 100% or zero you will hear a sawtooth wave. If you now move the right/left slider towards the centre you will hear the sound mellow until, at 50%, you get a triangle wave. Now move the squareness slider and you hear the sound harden again as the wave become more pulse like. We already know that changing the up/down ratio of a square wave (the duty cycle) will change the harmonic character in other ways. Check it out!
So, by varying these three parameters in different ways in real time you can generate some excellent harmonic changes without resorting to a filter. Lets do it!
We don't need to change the current Envelope settings, but you can play with this if you like. But we do want to route the envelope controller (unit 1) to the appropriate destination!
In the bottom Connectors & Controllers area, for both units 2 and 3, add a controller from unit 1. Ensure that this new controller is used to modulate the Up/Down Ratio parameter. Now do this again, adding new controllers, but this time to use unit 1 to also modulate the Squareness Ratio. Then do this again for the Slant ratio!!
As this is the "suck it and see" school of synthesis, the next bit is down to you and your ears. Hit play and adjust the settings levels on these parameters, the envelop and the scale factors)until you get a sound you like. You'll find that if you overdo the levels you can flatten the waveshape out and lose the sound altogether.
Here is the synth module definition at this stage (it is worth a listen):
<fxm><unit t="c/envelope" r="c" p="1042=0;1044=0;1046=4168"/><unit t="tg/osc" p="1280=5;1283=31.;1284=57.;1285=31.;1048=10" c="1#1029,.016;1#1293,.457;1#1290,1.679;1#1294,-1.251"/><unit t="tg/osc" p="1280=5;1028=5900;1283=28.;1284=41.;1285=35.;1048=10" c="1#1293,.661;1#1294,.533;1#1290,.771"/><unit t="j" i="2,1.;3,1."/></fxm>
It shouldn't take you too long to find settings that sound like the filter sweep we created in the first example. If you check this sound with the one from the first example with a Filter Unit you'll find that this approach actually gives you a greater range of harmonics than using a simple filter. The sound will tend to be richer and brighter, sitting up in the mix more perhaps.
We can use the ring modulator mode of the "osc" unit to give some quite pleasant quality tones that are very similar to those you get from basic amplitude modulation. The key is to make sure that both the tone generators track the pitch of the composed notes.
A ring modulator has to have two inputs for you to hear anything. If you just load up the ring modulator on its own you'll hear nothing. The ISE oscillator use the internal oscillator as one permanent input. All you need to do is route another source into the ring modulator and off you go.
Change one of your modules such that it is one "osc" unit followed by another "osc" unit. Be sure to check the "ring-modulate?" checkbox on the second unit; verify that the "Use MIDI Notes?" checkbox is also checked.
If you play with the various oscillator parameters you'll discover that the harmonic content of the sound generated depends mostly on how far apart the two tones being modulated are.
Go back to your Ring Modulating unit. Uncheck the "Use MIDI notes".
What you get is a weird, metallic noise! The quality of the noise will depend upon the relationship between the frequency coming in from the tone generator and that of the oscillator in the ring modulator. Adjust this frequency until you get a cleaner, bell like tone. It should be somewhere around 700 Hz.
If you want things to get dafter, add a control-rate LFO "(c/lfo") to modulate the ring modulator's oscillator frequency. Try this. Add a control-rate lfo ("c/lfo") as the first unit. Set the wave type of this LFO to Random and the type to Step. Set the frequency to 2 Hz. Now add this unit as a modulator controller of the ring modulator frequency. Hit play! :)
What you should be getting now is weird, randomized electronic chime noises that change every half second. Strange, isn't it?
You can use SF2 samples as the source as well as another ISE module so you can do ring mod sound warping to your own samples in realtime. And who wouldn't want to do that?
Now if you thought ring modulated noises were strange, check out this option. As an alternative to a comprehensive tone generator module, the ISE includes the Particle generator.
The concept is based on granular synthesis. This module generates little wavelets of sound punctuated by little sections of silence. With careful control of the comprehensive set of parameters on offer you can generate the most unworldly sounds.
A little alert before we start. This module does a lot of maths! Don't overuse it in a piece or there won't be much processor time left for anything else.
We'll use it to create an Sci-fi movie background music sort of thing.
Open the "MyTest" mix/piece you created above, and delete the Synth Network you made. Add a Particle Unit as your only unit for MIDI line 1. And that's it! :)
Well, not really. The difficulty now is that this all gets very subjective and rather hard to write about. You just need to hit play and then adjust the many parameters on offer in the Particle module until you get a sound you like. So instead lets just check out the key variables.
The harmonic parameter is one of the most influential factors on the end sound. Low values will keep the base frequency of wavelets close to each other. Larger values will mean much greater differences between individual wavelets and a much wider harmonic range to the sound.
Frequency velocity is like a mini pitch envelope applied to each wavelet. Small values give nice detunes and sweeps. Larger values can cause queasiness!
The attack, sustain and decay parameters are like a mini amplitude envelope for each wavelet. Small values make each wavelet distinct and audible. Larger values will cause a smearing and blending of the sounds which is not unpleasant.
Pause governs the time between each wavelet.
The "Number of Elements" value sets the number of wavelets to be generated. Set this lower and reduce the processor hit for this module.
You will hopefully have noticed that every parameter can be modulated by another unit, so there is plenty of scope to sculpt some quite unique and complex pieces with this little baby!
This is just one kind of the strange little things you can get out of it (it is worth a listen):
<fxm><unit t="tg/particle" p="1280=1046;1281=.297;1282=.175;1283=.379;1284=0.;1285=.033;1286=0.;1287=.181;1291=9"/></fxm>
This one is a little bit different because, with this beast, you can achieve so much. So some explanation is in order first.
To make decent percussive sounds using a modular synthesizer takes quite a few modules, most of which would be rather over specified for the task to hand. Such an approach would waste a lot of computational resources. So we took a different path.
The drum synth module incorporates just the tools you need to create a huge range of tuned and untuned percussive sounds with no waste. It looks a bit complex at first sight because it packs a lot into a small area of screen but once you get the hang of it you'll love it.
The module incorporates three tone generators – two generate sine waves, one generates coloured noise. The noise generator has a multi-type resonant filter. Each tone generator has its own simple attack/decay envelope that controls the amplitude. This envelope can also be routed to control pitch in the case of the sine wave generators and the filter cutoff frequency for the noise generator.
The output of the three generators is added together so you control the mix between them using the envelope level parameter. A word of warning – this module has been designed to kick - it goes loud.
One sine wave generator is designated the master and can be set to any frequency from the low 40’s to about 900 Hz. The other sine wave generator slaves to this frequency, i.e. its setting is a ratio of the frequency of the first one. We do this mostly to save CPU resources (the slave oscillator’s maths are slightly less taxing)
One thing worth noting is that the two sine wave generators can cross-modulate the other’s frequency. What’s the point of this?
Well, using the output of one sine wave generator to modulate the frequency of the other will give some metallic-like tones. It is called frequency modulation synthesis. Exactly how metallic will depend upon the difference between the frequencies of the two generators and on the depth of the modulation.
If you then take that modulated output and make a loop so it modulates the frequency of the first tone generator (modulate the modulator as it were!) then the results can get even more harsh and chaotic. At high modulation depths this is just what you need to start to create struck metal percussive effects. Lower depth values will dirty up drum sounds for you rather nicely.
You can force this module to track composed note values. There are loads of possible uses of this feature. The obvious one is to get several percussion instruments for the price of one. If you want to set up an alternating high/low cowbell figure simply load up the relevant preset, enable note tracking on this module and set up a pitched fixed voice type or something similar to take care of the tuning. You can also create a whole battery of tuned percussive instruments; marimbas, bells by using this option.
Enjoy!
And that just about concludes this quick jaunt through the practical application of the ISE. We've really just scratched the surface but hopefully you have collected enough pointers from this and the previous tutorial to make your own way from here.
Tone Generator (TG) Unit : A unit that knows how to generate sound in response to MIDI note events. These are the Wavetable, DSynth, Oscillator and Particle units. You can have as many TG Units in your design as you want, subject to the processing power of your target platform.
FX Unit : An audio processing stage which can be used to perform a variety of exciting things. You can have as many FX Units in your design as you want, subject to the processing power of your target platform.
Synth / FX Network: A grouping of all units used by a particular Synth or FX (Global FX or Track FX). Think of it in terms of a row of audio-rate units that work from left-to-right.
Audio-Rate Unit : An unit that works at the normal audio processing rate of the system, e.g. Wavetable Unit.
Control-Rate (Ctrl) Unit : A unit that works at a lower rate than the normal audio processing units and is used to control parameters on other units. These are the Ctrl-LFO, Ctrl-Envelope and Ctrl-Amp units.
LFO: Low Frequency Oscillator. The Ctr-LFO Unit can be used to control other effects unit parameters such as filter cutoff frequency or perform pitch modulation. The audio-rate LFO (Osc) can be used as a direct frequency generator, or to apply Ring Modulation effects if run at a low enough frequency.
Envelope: A Control-Rate Unit that creates a waveform in direct response to a note on MIDI event; used to modulate various critical parameters within audio-rate or control-rate Units. For example, envelopes are used to shape the volume of a note when it is triggered, and can also be used for all sorts of neat effects such as modulating the pitch of a note while it plays.
See also the General Questions FAQ.
Note: If content in your exported file uses a custom Wavetable/SF2 that is also in your iCloud Drive folder then for the file to play correctly when opened in Noatikl 3 or Mixtikl 7 (as relevant) you need to have that custom Wavetable/SF2 available in the Intermorphic Folder (See here). If this does not work you will need to recreate the association to the custom Wavetable/SF2.
Notes: When saving as an .mixtikl file the any audio loops that might be used by the Wotja mix are not included. Wotja does not utilise or resave in .wotja files or exported .mixtikl files the following Mixtikl parameters:
This is not supported.
Note: You many not need to do this as Wotja for iOS can open Noatikl and Mixtikl files. Simply copy or transfer the files to the Wotja iCloud Drive folder and they will appear in the Wotja Files list.
Noatikl
In Noatikl, go to the Pieces screen and then select the export button on the bottom toolbar. You will get a messages saying the data has been exported to the clipboard.
Mixtikl
In Mixtikl, select the Content Cell you are interested in (the cell content must be generative i.e. not audio loops) and from the Content Cell menu select the Export button and you will get a message saying that the data has been exported to the clipboard.
Note: When you export from a Mixtikl content cell the Track FX are NOT included (but Cell FX are).
Note: If your Mixtikl content cell used a custom Wavetable/SF2, then you need to have that available to Wotja and you may need to recreate the association.
General comment: The Intermorphic Sound Engine (ISE) Sound Units (Wavetable, Tone, DSynth, Particle) run in stereo. In earlier iterations of our sound engine these units ran in mono, even though the FX Units worked in stereo. Running the Sound Units in stereo does place a higher load on the processor, however, it greatly improves the sounds that the ISE can generate so it was an essential change we had to make.
You can get performance issues if the processor in your device is trying to do more that it can handle, and there are a number of possible reasons for this when it comes to using Wotja. You can also get some audio artifacts occur in the ISE from "note stealing" (see below). However, before we look at any of those, there are some general things to check / note first when it comes to conserving processor cycles so that the app can use the maximum processor power available.
If Wotja isn't making any sound, first check that you have the "ISE for Sounds & FX" toggle turned on in Settings. If this is on, then Wotja will automatically render all MIDI data that it generates through Wotja's built-in Intermorphic Sound Engine, and you should hear Wotja playing (unless you've turned-down your computer's volume). If the checkbox isn't ticked, Wotja will only send its MIDI data to whatever MIDI Output destination you have defined in Wotja's MIDI Out settings... which means that you've probably got a bit of MIDI configuration to do first in order to hear Wotja play.
Note that Wotja can play both through ISE and through a MIDI device, if that is how you have configured things - the choice is yours.
Get in touch via our support form and include your mix. To do that, from the Mix tab Action button select "Export Wotja URL to Clipboard (no image)" and then paste that into the support form (See: Mix Action button). We will see if we can figure it out for you!
This can happen if, in the Cut-Up Tab, you have the Word Library control "Use additional words?" set to "None" and you have no sources that contain text.
The reason the text disappears is because the pool to choose words from is restricted only to the sources, and there is no text in the sources!
The solution is either to add some text to a source(s) or to press the Library button and change the Word Library control "Use additional words?" to either "WJ Bank" or "WJ Database".
You cannot record MIDI files directly in Wotja. You will need to use a 3rd party app to do that, using Wotja's MIDI Out capability.
Wotja is a very powerful MIDI application and supports Core MIDI and Virtual MIDI. You can record it with another suitable 3rd party app that supports Core MIDI / Virtual MIDI and MIDI recording.
By default we hide the older Noatikl 2 templates simply as our current templates are so good! They are included, however, and it is easy to display them. Simply go to Files > Create New > Templates > and turn on the toggle that says "Show Old?". Once you have done that, the older templates will show up in the template list in a dark grey colour.
These are not included in Wotja 4 as we now have a new set of gorgeous sound presets and templates (you can also export favourite presets from these, too). But we are making them available if you want them; see below.
Tip: You see the included TG Preset list from the Network Editor screen. Select the "Action" button and then "Open".
Older Presets: Download a zip of the TG presets and place that in the Intermorphic Folder or zips folder under that.
Once the file above is copied to the right place, you may need to restart the app for the older Presets to be displayed.
Try this example.
When you visit the link to the Dropbox shared Wotja file in Safari then you will see a page of text - this is the Wotja URL.
Intermorphic apps that directly support save to/load from Apple iCloud and Apple iCloud Drive folders:
The iCloud Drive folder on macOS is found here:
~/iCloud Drive/Wotja/
~/iCloud Drive/Noatikl/
~/iCloud Drive/Mixtikl/
~/iCloud Drive/Liptikl/
We strongly recommend using iCloud / iCloud Drive wherever you can.
There are five main reasons for that:
Our iOS apps support "flat" folders meaning they will display all files under the root folder, including files in any subfolders.
Tip: If you want to limit what files are displayed in the iOS app, you need to move the files you don't want to see out of the main app folder, perhaps into a "Archived" folder under iCloud Drive.
See: iCloud Drive FAQ
Tip: Even if you have Wotja for iOS installed on your device, to see the Wotja iCloud folder on Mac, we strongly suggest installing either Wotja for macOS.
If you have just installed one of our iCloud Drive supporting apps for the first time, then it seems it can take a while for the iCloud Drive synching to happen and for the folders/files to appear on your Mac. We know not why.... but a couple of suggestions to try are:
Wotja is Audiobus / Inter-App Audio enabled which means you can send an audio stream out through that and then record it with another suitable 3rd party app that supports Audiobus / Inter-App Audio and recording.
Audiobus / Inter-App Audio support is enabled by default and we make no charge for its use*.
Inter-App Audio
Please refer to the Apple website for information on how to use Inter-App Audio (and iOS 7+ system provided capability) with GarageBand. There are many other IAA enabled apps, such as Multitrck DAW and Thumbjam.
Audiobus
Please refer to the Audiobus website for instructions on how to use Audiobus.
*To use Audiobus you will also beed to install the Audiobus app for iPhone, iPad and iPod touch This is a 3rd party paid for app.
We try as hard as we can to make our apps stable. To that end we now include in our apps either HockeyApp or Crashlytics. Because of this, rest assured we will have been alerted to it and we will be trying to fix it. This also means our latest versions are likely to be the most stable so we recommend keeping Wotja updated to the latest version, where your device/OS allows.
Even though we (usually!) get the crash logs, it can also help us track things down if you send us any info about your particular crash, or indeed anything you think is not working right. The crash log files all start with the app name, and have an extension "crash". They can be found here: Where do I find Crash Logs?. They are text files that we can read, and give us useful information in tracking-down a crash and you can send them to us via our Contact form. Don't forget to tell us what you were doing when you had the crash! Hopefully we will be able to fix the crash in the next update. Thank you!
Sure! Follow these links to some tutorials that will help you to learn how to create sounds using the ISE:
The most important thing to remember when you start using the ISE is that the audio for a voice ALWAYS comes from the rightmost signal-rate effect unit!
The effects units for each voice are in general processed from left-to-right. Think of the system as a pipeline of audio information, where audio is generated over on the left, and passes through intervening effects units and ends-up on the right hand side, at which point it gets generated. However, the pipeline can actually be pretty complicated, in which case it can become useful to think of an Effect Module as being either like a tree of interrelated modules, or even a network of effect units working together in complex way!
So, the best way of thinking how effects units work, is in terms of a collection of special-purpose units, that are connected together in pretty much any way you want, using invisible connecting "cables". The user interface shows these connections as best it can. Note that feedback loops or 'cyclic dependancies' between units are not allowed.
The user interface displays a module by showing the signal-rate units at the top of the display area, and control-rate units below them. The currently selected unit is displayed differently to help remind you which unit you are currently editing.
The outputs from all voice-level effect modules are summed-up by the ISE Synth, and are then passed into the Global Effects Module, which you can define if you want.
Note that control-rate units do not generate stuff that you can hear directly, you use them purely to control parameters of other effect units in system. Control-rate units can be used to modulate parameters for both signal-rate and other control-rate units. For example, you could have an envelope unit (c/envlope) whose sole purpose is to create an envelope of values which is used to modulate the frequency parameters of a dsynth unit.
You might be wondering at this stage, exactly why things are so flexible? Well, the reason is that it is this very flexibility which makes the ISE so powerful at creating a truly mind-boggling variety of exciting sounds and audio effects! However, this flexibility can also make things a little complicated to get your head around... which is where this documentation comes in.
The ISE has a built in limiter which stops the sounds from overloading. However, it can sometimes add distortion in a mix with many instruments. The key to prevent this is to decrease the internal volume of the final mix. One way to do this is to make use of the global effects module level effects: you can simply use an amplifier to reduce the overall mix level! Another powerful technique is to apply a compressor to dynamically limit the volume level (though this can mask dynamics in some content).
One easy way to deal with this is to make use of the global effects module level effects: simply use an amplifier to increase the overall mix level! Another powerful technique is to apply a compressor in "expander" mode, to dynamically boost the volume level (though this can mask dynamics in some content).
This is very easy to do:
You can of course also use exactly the same technique in the Effects dialog. You can copy Effects designs from MIDI line to MIDI line within the system; or copy the Global effects design to a MIDI Line, or copy from a MIDI Line Effects Design to the Global effect.
Intermorphic is Tim Cole & Pete Cole - yes, just two brothers - and we have now been working together in generative music since 1990, i.e. for over 27 years. However, without the incredible support and interest from so many over the years then we would not be where we are today with our current Apps, Engines and Content. Our thankyou list below is an ever expanding one, in no particular order, and does not include everyone (sorry to those we have missed!). We offer our heartfelt thanks and gratitude to: