Frequently Asked Questions
Here we answer all the frequently asked questions.
What steps are necessary to import and arrange an Opus+ generated MIDI file into Apple Logic?
1. Drag n'drop the MIDI file produced by Opus+ into a new Logic project 'arrange' area.
2. Delete the extra blank 'global' track if one is created.
3. Choose preliminary MIDI instruments for each track.
4. Open the real Logic Global Tracks and insert time signature changes throughout the piece. Refer to the score PDF file generated by Opus+ to see what these are and in which bars they occur.
5. Optionally repeat for Key signature changes (not tested)
6. Split the single long green tracks into individual regions at fragment boundaries where possible.
7. Optionally colour-code fragments which are identical, so the structure of the piece is visibly apparent.
8. Either work by moving regions vertically between tracks as needed, or duplicate entire tracks for related MIDI sounds i.e. Oboe Legato and Oboe Staccato, and mute whole regions to give a broad overall structure to the piece. Either way, do this with an eye/ear to thematic development.
9. Now work within each region and mute individual fragment/phrase notes to remove chords from voices that can't play them, and/or distribute these chords evenly between different instruments. Mute notes to offset fragment/phrase onset so changes of voice do not monotonously coincide with region boundaries.
10. Move regions vertically between instruments/voices to give variety. Optionally transpose parts by octaves if, for example, a treble part is moved to be played by a bass instrument. Using only octave transpositions will not alter the harmonic content of the generated composition, and this is important to retain the status as 'found music'.
11. Select each track in turn, open the Piano Roll Editor and choose Transform/Humanize. Use the defaults and click 'operate only' between two and four times. (Bass parts usually need less it seems, as these must be more regular to keep the time properly).
12. Pan the voices across the stereo image to give consistent balanced natural sounding placement, unless of course you want something more freakish!
13. Set up an Aux channel for a global reverb environment. Use Space Designer as this is probably the best and there are a huge number of excellent pre-sets on the #default drop-down menu and these are more than adequate for 'all but the the most discerning'.
14. Open global tracks and change the tempo as needed throughout to emphasise crescendo and decrescendo.
15. Now use mix automation in the usual way to bounce. We always bounce to mp3 format with the following settings:
Start = 1 1 1 1.
End = one or two bars past the end of the piece to allow for reverb tails.
Mode = Offline.
Add Effect Tail is selected, (which adds a little extra reverb at the very end).
Normalize = On, (this automatically sets the global output level such that the very loudest transient encountered throughout the entire piece is at 0db, which guarantees maximum output level with zero unwanted distortion).
Bit Rate Mono = 80 kbps, (this is the default and is unused so far as we know).
Bit Rate Stereo = 224 kbps, (which is slightly better than CD quality of 192 kbps).
Variable Bit Rate VBR is selected, (as this uses the available dynamic range more effectively during complex passages).
Quality = Highest.
Use Best Encoding is selected.
Filter Frequencies Below 10Hz is selected, (this allows more bit-space for the audible range).
Stereo Mode = Joint Stereo, (this is the default and as yet we don't understand the differences here, they are not described properly in the Apple Logic docs (probably because the differences, if discernible, are impossible to describe adequately; nor has this been experimented with as they suggest).
Write ID3 tags is selected.
ID3 Settings... are opened where we set various mp3 meta-data such as the Song Title, Artist, Subtitle, Composer, Comment, Genre, Copyright and URL.
What are the guidelines for mixing Opus+ compositions, for example in Apple Logic, so they retain the status of 'found music'?
The idea of 'found music' is where an interesting composition is simply discovered out of the blue and is treated as a complete, finished, entity in its own right. This is important for Opus+ because the proportion of generated material that can be simply used 'as is', is a very good measure of its quality, even though as a measure it's not properly quantifiable because of the high dependence on the musical tastes and creative intuitions of the human user.
The status of 'found music' means that the generated composition must not be edited in any way, and imposes constraints on the production and mix-down process, so that a high degree of similarity or congruence is maintained between the generated composition and the final mix. The number of potential rule-sets defining this similarity relationship is enormous, but we choose to work with the one described below, which preserves the original order of musical material, so we can clearly hear its musical lineage from Opus+, but without limiting creativity at mix-down too much.
The rules we use are that, new instruments can be assigned to different voices, and the original voices can be arbitrarily shared out 'vertically' between the new instruments. This includes copying or doubling parts originally played by a single instrument as long as the few bars involved are only copied vertically. Standard studio effects such as equalization, echo, reverb, distortion, scintillation, panning, humanization and the like are allowed, and it's even permissible to change the octavation of musical phrases, for example if a treble part is moved onto a bass instrument, or even to drop voices out for a few bars. Also the volume and tempo can be changed globally, and locally for example to produce diminuendo and ritardando. These actions all concern 'production' or 'orchestration' and would commonly occur in the normal process of recording any composition, and are not regarded as part of the composition per se.
However, tampering with the actual fragments, correcting 'bum' notes, moving them horizontally through time, or writing new fragments are specifically disallowed. These actions materially affect the composition itself, and the music can no longer be said to be 'found'.
Of course, our rules are entirely arbitrary but they adhere to the general principle of 'the fewer changes the better'. If you can particularly avoid vertical part sharing, voice doubling and drop outs the 'compositional congruence' with the original will be very high.
Who owns the copyright of the music generated by Opus+ ?
All things being equal, you own the copyright of any music generated by Opus+ on your own machine, but our license agreement requires that you indicate that Opus+ was used to compose all or part of the piece, wherever it is performed or appears in a public context. Obviously if you generate a very popular piece of music, and make a lot of money, we would appreciate a contribution to our on-going research efforts!
Who owns the copyright if Opus+ by chance generates a composition already written by another person?
This is theoretically possible, but incredibly unlikely. We do not profess expertise in copyright law, but we would expect that the prior copyright takes precedence. This means that the person who first composed the piece owns it's copyright. Opus+ automatically creates a digital signature which is unique and time-stamped to the nearest millisecond, with every output file, so even if two Opus+ owners generate an identical piece of music, it's still possible to prove which was generated first (assuming any sync-differences between the clocks of the computers used is accounted for).
Why is the MIDI produced so awful?
The main effort in the first version is to produce musical scores, with a view to the music being performed by human musicians. This is simply because the effort required to generate scores is far less, than that required to create MIDI performances, because a composition contains less information than a performance. At Opus+ we are also biased in our musical tastes towards music, skilfully performed by real musicians, on real instruments, rather than synthesized music!
However, as this project has progressed we have realized there are some really interesting ideas in the area of 'impossible compositions', music which is just too difficult for humans to play themselves. Such compositions would require some form of MIDI representation in order to be heard at all, and in these cases the score is of secondary importance. Now it is also possible to import the raw MIDI produced by Opus+ directly into music studio software such as Apple Logic Studio Pro 8 or Garage Band . Simple rough mixes consisting of little more than, selecting MIDI voices for each instrument, setting the relative volume between each instrument, adding a little reverb to each track and panning the instruments across the stereo image, have a remarkable effect, and really bring the composition to life.
When the composition module of Opus+ is completed, it is our intention to continue research into the relationship between composition, performance and production and further improve the quality of the MIDI produced. In theory it should be possible to take a composition and produce a synthesized performance that can pass as a real, live rendition. But this is still in the future, and in the meantime, other researchers may advance technology in this direction, so we have less work to do.
Why was Java used as the implementation language?
Java was chosen because it is a very easy programming language, but at the same time very powerful with extensive libraries that cover every eventuality. This meant that whatever feature might be necessary for Opus+ in future, we judged that it would be possible from within the Java language, without recourse to other technologies. Also, Java is used a great deal at university under-graduate level and by schools, and we wanted to provide a useful programming library for this innovative user base. We also judged that, unlike C++, learning Java was much more likely to be something students of composition would either know, or be prepared to learn.
Java is owned by the Sun Corporation, so it's not actually a public standard, but they develop the language through a public consultation process which is as near to non-proprietary public standard as possible. At one stage Java was to be standardized but Sun decided against this because of the nefarious activities of Microsoft which aimed to sabotage the Java standard and platform in various ways, using anti-competitive strategies, in order to reassert their control over the programming language market for their own profit. Sun aborted the standardization progress to protect the Java standard from Microsoft. So its as near a public standard as possible, and it is freely available.
Other considerations are platform independence and execution speed. Java can run on nearly any platform, from Intel PCs, Macintosh and Linux through to Solaris, HP - in fact anywhere that Opus+ is likely to be installed. In terms of speed and scalability Java was ideal for a stand-alone single user application like Opus+. We test the performance of Opus+ at every stage of development and it is really fast.
How fast/scalable is Opus+?
The time it takes to generate a composition will depend on the amount of work Opus+ has to do; generally the longer the piece and the more instruments involved the greater the time. However, it also depends on the way the music is generated. Opus+ can use different algorithms at different points in the process, and these can be switched and combined in many different ways, and some algorithms are much more complex than others, and so take more time to run.
To give some idea though, a simple 'random notator' which generates each voice progressively bar-by-bar at random takes about two-and-a-half minutes to generate 250,000 bars of piano music. This gives a rate of around 100,000 bars a minute, or in excess of 1,600 bars a second! Played at a rate of 80 beats-per-minute, this gives: 80/4 = 20 bars per minute, or 1,200 bars per hour, or 28,800 bars per 24 hour day. The total duration of this musical piece would be 8 days, 16 hours and 19 minutes of continuous playing!