HyperTunes User Guide
This guide is for Version 1.3 and later.
HyperTunes is a system for modular MIDI arranging on iOS.
It lets you collect and organize all your musical patterns, song fragments, and songs within the app.
It makes it easy try pairwise combinations of those patterns and song fragments.
And it lets you compose and arrange music in terms of musical structure, such as verse-chorus-bridge song forms.
The following section presents short tutorial videos covering most features in the app. Please go through them. That will give you a good sense of how the app works very quickly.
HyperTunes does not provide note entry or note-level editing. You get music into it by importing pre-existing parts from other sources. Currently you can load standard MIDI files (type 0 or type 1), with General MIDI instrument mapping. (You can also record incoming MIDI, but this feature is still somewhat experimental.) Eventually you will also be able to load Music XML files.
A file is imported into a single-section arrangement. Notes are assigned to parts based on the General MIDI Program Change events that precede them in their MIDI channel. A part is created for each GM instrument selected by a program change.
Here is the basic HyperTunes workflow:
In iTunes, with the device plugged in, click on "Apps", click on HyperTunes in the File Sharing list, drag MIDI files or Zipped folders of MIDI files into the "HyperTunes Documents" box. (Files will be transferred to the device immediately. It is not necessary to sync.)
1. MIDI files (".mid"/".MID" suffix) will be imported into a built-in project named Import.
2. Zip files (".zip") suffix will be unzipped, and a project will be created for each contained folder of MIDI files. (Non-MIDI files in a contained folder are ignored.)
If HyperTunes is currently running, the imported files will show up in the Import project the next time HyperTunes goes from being in the background to the foreground. If HyperTunes is not currently running, the imported files will show up next time the app starts up.
HyperTunes will not successfully import MIDI folders whose names contain the characters "/" or ":".
Before importing any MIDI library, please check for these illegal characters in all folder names and rename appropriately (e.g., replace those characters with spaces or underscores.)
In case (1) above, you should move any imported files from the Import project to a project of your choice.
To do so, open the "Import" project, select the "Transfer A/B" tab, and use the "move" operation. You can multi-select files during the move.
(Note that it is important to use the "move" rather than "copy", because the latter does not actually copy the MIDI file underlying an arrangement.)
You can open a MIDI file in HyperTunes from another app, e.g., Mail. When you do this, the MIDI file is copied to the built in Import project.
You can also open a zipped folder of MIDI files in HyperTunes from another app, e.g., Mail. When you do this, the MIDI file are imported into a new project of the same name as the folder.
HyperTunes, will start up - or come to the foreground if it was already running - and it will alert you that a new file was added to the Import project, or that anew project was created.
HyperTunes provides a single level of grouping of arrangements into projects. If an imported Zip file contains nested folders of MIDI files, that nested hierarchy of folders and subfolders is flattened into a list of HyperTunes projects. Each folder in the Zip file that contains any MIDI files results in a distinct project which is uniquely named based on the path to that subfolder in the folder hierarchy. Any degree of nesting is permitted. Some examples will make this clear.
Example 1: Zip file contains MIDI files at top level; no folders
Folder structure on desktop:
Project structure in HyperTunes (the imported project is named "flat"):
Note that non-MIDI files are not imported.
Example 2: Zip file contains MIDI folders with no no subfolders.
Folder structure on desktop:
Project structure in HyperTunes (the imported projects are named "a", "b", "c"):
Example 3: Zip file contains both midi files and MIDI folders.
Folder structure on desktop:
Project structure in HyperTunes (the imported projects are named "a", "b", "c", and "folders-mixed", the last being the name of the Zip file itself, which contained MIDI files at top level):
Example 4: Zip file contains MIDI folders with nested subfolders.
Folder structure on desktop:
Project structure in HyperTunes (the imported projects are named "a_sub1", "a_sub2", etc.):
Some commercial MIDI loop libraries are heavily subdivided into small, deeply nested folders of MIDI files. This can lead to a very long project list after HyperTunes' flattening process. It is advisable in such cases to look for ways to first consolidate the library into a smaller number bottom level MIDI folders before importing.
If you import lots of MIDI folders or third-party MIDI loop libraries, your project list can grow quite large, especially after HyperTunes flattens deeplay nested libraries. HyperTunes supports filtering the project list based on keywords in the folder names. If you can add appropriate keywords to your MIDI folder names before importing them, this feature can save you a lot of scrolling.
Here is the list of currently defined keywords, grouped by category:
A keyword must be separated in a folder name by space or underscore characters. For example, you could rename a folder containing funk bass lines from "funkbass37" to "funkbass37 funk bass". (I.e., the substrings "funk" and "bass" in "funkbass37" would not be detected as keywords, so we add "funk" and "bass", separated by spaces.)
There's no undo support in HyperTunes yet.
But in the menu on the Arrangement screen, there is a "Duplicate arrangement" item. It creates a new copy of the open arrangement, renamed with a version number suffix, and opens the copy. If you remember to use it before making changes, this provides a simple, manual way of managing arrangement versions.
Alternatively, you can make changes to a copy in a separate project, by using the "Copy arrangement from" command in the menu on the Project screen or "Copy arrangement to" in the Arrangement screen menu.
HyperTunes is designed to make it very easy for you to import your original or third-party MIDI content and get to work on your own compositions quickly. However, a small amount of very simple material is included so that you can explore the features of the app without the hurdle of locating and importing your material.
The included Demos project contains a handful of incomplete arrangements. You will probably eventually accumulate many songs separated into many different projects, but these few songs are sufficient to demonstrate the ways in which HyperTunes enables you to mix and match parts and sections from different songs, as well as the many possible manipulations of a song.
In addition, several projects are included each of which is a library of parts for a particular instrument:
In practice, your own part libraries, or libraries you obtain from third parties, would be much larger and contain much more sophisticated patterns. The included pattern library projects are only meant to illustrate the idea that a HyperTunes project can function as a repository of patterns.
The same goes for the included Parts_chords project, which demonstrates that you can build up a library of chord progressions, in the form of arrangements containing key (scale) changes but no parts.
In this guide, arranging means giving new expression to already existing musical ideas, such as melodies, chord progressions, rhythmic patterns. (By contrast, composing means creating new musical ideas at the level of individual notes.) This can mean adapting an existing song to a new context - e.g., "Baa, Baa, Black Sheep" for string quartet - but it may also mean combining fragments of music that already exist into a new song.
In arranging a musical piece, you address four main issues:
HyperTunes provides powerful features for accomplishing all of these tasks:
You can edit the form of your piece incrementally, by inserting, deleting, merging, and swapping sections.
You can completely rearrange a piece in one step by selecting a new form from a comprehensive menu of stock forms.
In addition, there is a fast and easy interface for splitting an existing piece into its constituent sections so that you can rearrange them or combine them with other elements.
You can select an entire playback ensemble for the whole piece at once.
HyperTunes will provide additional powerful orchestration features in upcoming versions.
Most musical pieces can be characterized in terms of structural patterns, or forms, that are commonly used within the style or idiom the piece belongs to.
Here is a brief listing of some forms that are common in contemporary popular music, including pop, rock, jazz, folk, country, etc. (Each of these forms occurs in endless variations, because the individual sections may vary in length or content, and the form may be embellished with other optional sections, such as intros, endings, solos, and breaks.)
HyperTunes is geared toward the above families of contemporary song forms, and includes a library of specific instances of the generic forms listed above. However, it also lets you define your own forms with no restrictions. Although no classical music forms are included in the forms library at the moment, you can certainly add such forms yourself and arrange pieces using them.
Projects are simply a way of organizing your content. You will find that HyperTunes is designed to let you share content very easily between projects.
Arrangements often contain complete song arrangements, but this is not necessarily the case. An arrangement can contain a fragmentary melody or rhythmic pattern, a single part, a single section, an incomplete song, or a fully arranged song. HyperTunes places no musical restrictions on the content of an arrangement.
A form is represented in HyperTunes as a list of alphanumeric strings each representing one section. Any string made from letters and numbers (and underscores) can be used to represent a section in a form.
However, because the verse/chorus form is so prevalent in today's popular music, HyperTunes defines conventional abbreviations for common verse/chorus section names, and automatically maps between section name abbreviations and full sections names. It interprets a form as verse/chorus form if any symbol in the form is the character v. In that case, it displays unabbreviated names according to the following mapping.
(Some of these conventional song form terms are synonyms, and some may not be familiar. rise is a synonym for pre-chorus, a transitional section leading up to the chorus. pre-verse is less often used than pre-chorus, but is, similarly, a transitional section leading up to the verse. We have seen link used as a synonym pre-verse, and also more generally for any transitional section.)
Any symbol in a form that does not match one of these symbols is left uninterpreted and will show up as is in section listings. (Abbreviated and unabbreviated symbols may be freely mixed in a form.)
Built-in forms in the Form Menu, however, follow this convention: forms from the verse/chorus family are notated using the above symbols, in lower case; other forms are notated using capital letters "A", "B", "C", etc.
Aside from expanding abbreviations to the full terms, HyperTunes does not apply any interpretation to section names. It cannot tell, and does not care, whether a section you label verse is indeed a verse, and not a chorus. Similarly, it does not know or care whether or not the contents you assign to one verse and another verse match. You should feel free to apply these labels in whatever way suits your purposes.
HyperTunes defines ten distinct instrumental parts, which are associated with the instrument classes of the General MIDI standard as shown in the following table:
An arrangement may contain any number of instances of each these instruments. Instrument instance names are made by concatenating an integer numeral to the four-letter instrument symbols above, e.g., bass2 for the second instance of a bass part in an arrangement.
This is just a concise and convenient scheme for naming parts in the user interface. It does not restrict your use of General MIDI instruments. Each part name can be associated with any General MIDI program change in one of its corresponding GM instrument classes. In particular, the naming of the lead part is simply a catch-all for instruments that often play a lead role. This doesn't mean other parts, like guit or keys, might not function as the "lead" part.
In sheet music - lead sheets, song books, and musical scores - song structure is represented using repeat signs and instructions like "Da Capo" ("D.C al fine", "D.C. al coda").
HyperTunes does not use these Standard Music Notation conventions to depict the structure of a song.
Instead, a song is always written out as a simple linear sequence of section names, with all repetitions "baked in".
For example, if the form of the song is v c v c b c repeated twice, it is shown in HyperTunes as:
v c v c b c v c v c b c
Each repetition of a section name in the form is numbered starting from 1, so in the example above we can refer to verse 1 through verse 6
When you want exact repetition of a section, HyperTune provides this automatically. It always copies the contents of the first instance (e.g., verse 1 ) to any other instances that you have not filled in. (This automatic filling in of blank sections is called fallback.)
But you can always separately fill in the contents of any section instance for which you do not want an exact repetition.
A common way of working is to get off the ground quickly by filling in only the first instance of each section, allowing other instances to repeat exactly, through fallback, but then add unique details and variations to each section instance as your work on the arrangement progresses, so that sections don't sound mechanical.
GarageBand for iPhone and iPad, like HyperTunes, lets you put together songs easily, compared to desktop music production applications. But beyond that, the comparison is like apples vs. oranges
The content in Mobile GarageBand is all audio. Content in HyperTunes is notation (e.g., MIDI or MusicXML).
In GarageBand, you arrange music by cut and paste and drag and drop on a linear timeline. In HyperTunes, you arrange by linking parts and sections together.
GarageBand is meant to be like a multi-track tape recorder. HyperTunes is meant to be like a web page editor (sort of) for music.
HyperTunes makes it very easy to add content to build up and access a large library of your imported content.
If music arranging is new to you, HyperTunes offers a great way to get your feet wet. If you are an experienced arranger, HyperTunes will allow you to work productively in a casual, mobile format.
We love music apps with cool, dynamic graphical user interfaces. But both of HyperTunes' key benefits - arranging by linking parts/sections together, and musical content management - call for a user interface in which hundreds or even thousands musical elements (songs, sections, parts) can be browsed and referenced easily. Lists of text names and labels lend themselves to this, just as they do in iTunes. We're confident that once you get to know HyperTunes, you'll appreciate the power that derives from its list-based approach.
Our goal with HyperTunes is to make it as easy as it can possibly be for you to (1) find the right elements for your arrangement; and (2) try putting them together in different ways until you discover an arrangement you love.
But all the artistic arranging choices - which parts to use, what keys and tempos, what instruments - are still yours to make.
If you feel you've made sound musical choices but the result just sounds wrong, you may have identified a bug! Please let us know about it (firstname.lastname@example.org)
HyperTunes automatically saves whenever you make a change to an arrangement, so you should never need to save manually. But a Save project command is also provided in the Project menu, just in case.
HyperTunes does not support audio recording or audio import at this time.
An arrangement in HyperTunes may contain links to parts or sections in other projects, which means it references MIDI files in those other projects. Sometimes, for example when you export a project to share with someone else, you want an arrangement to be self-contained. The Publish arrangement and Publish section operations create a new song that depends only on its own MIDI file.
The MIDI file format allows the key of a song to be specified as metadata. However, the key is not actually required and many MIDI files do not contain correct key information. In addition, the format for specifying the key in a MIDI file isn't very general -- e.g., only major and minor keys are supported -- so in some cases it isn'teven possible to save the key precisely in a MIDI file.
HyperTunes needs accurate key information in order to perform certain transpositions correctly. If you import a MIDI file and happen to know that the key HyperTunes reports, based on the MIDI data, is incorrect, you can use Rekey to specify the correct key, permanently overriding the MIDI data.
Often, you may not realize that the key specified by the MIDI file is incorrect, or you may not know what the correct key actually is. This is not a problem as long as you keep the song in its original key; it will sound correct. Transposing to certain scales, though, may give incorrect and strange sounding results.
HyperTunes does not support exporting audio at this time. But you can export a MIDI file for anything you play back. You can then use a desktop MIDI player or music workstation to convert that MIDI file to audio.
If you try to play an arrangement or section and see a message like this:
... it's likely that HyperTunes wasn't able to read a MIDI file you imported. Please send us your imported MIDI files so that we can investigate.
Setting volume and pan is not currently supported, but look for that feature in an upcoming version.
Repeat signs are not needed in HyperTunes. To repeat a section, simply repeat its symbol in the form, or duplicate it in the Arrange screen.
Similarly, to repeat a sequence of sections, duplicate the entire sequence. For example, an "a a b a" form repeated twice would be "a a b a a a b a".
These two interfaces let you accomplish the same things, so which you use is a matter of convenience and preference.
The form editing operations in the Arrangement Screen (insert, repeat, swap, delete) let you work incrementally, adding or removing one section ata time. It's a good choice when you don't know up front what you're overall form will be.
Conversely, the Form Menu makes sense when you do have an overall form in mind at the outset. If the Form Menu doesn't already contain the exact form you want, you can create a custom form using the Custom command at the top of the Form Menu.
(A note is a pickup, or an anticipation, if it begins before the first beat of the section it belongs to.)
HyperTunes handles pickups completely automatically and transparently. Listen to your section transitions and you'll see that pickup notes start before the section boundary, as they should. If a note was sounding in the same part in the preceding section, that note will be cut off in time to make room for the pickup note.
HyperTunes lets you specify changes in harmony by saying what scale a part should be built from at any beat.
As a convenience, you can specify standard chord symbols rather than scale names, but to HyperTunes a chord is just a synonym for a particular scale.
The following table shows what scale HyperTunes associates with each chord symbol. (At the moment you cannot change this mapping.)
Here are a few links to articles that introduce pop music song forms:
Here are a couple of links to articles about musical form more generally (e.g., in classical music):
There aren't many books on composing and arranging aimed at people who are not trained musicians. Here are a few I know of: