Joreth Music Composer System
MIDI Software and Hardware for Commodore 64
An extensive new MIDI software package from Worcestershire could well be the answer to many a Commodore owner's dream. Simon Trask has the details.
Music software packages for the CBM64 aren't exactly thin on the ground, but this new British offering has a claim to being the most comprehensive.
To begin in a conventional manner, the Joreth Music Composer System (henceforth referred to as the JMCS) is a disk-based software package for the Commodore 64, which offers eight-track polyphonic recording in both real and step time, and a stated capacity of 6000 notes. You'd be justified in fearing the arrival of yet another tedious MIDI sequencing package, but bear with me. The last word in sequencers has not yet been spoken, and whilst I'm not claiming that this package is the last word, it's nonetheless a quality product that merits a good deal of attention.
The package has a projected price of around £250, and for this you get not only the software, but also Joreth's own MIDI interface (the AL25 MIDI-LINK) into the bargain, along with a comprehensive manual, a handy Quick Reference Guide card, a ribbon cable connector, a registration card plus disk voucher (in case of legitimate damage to your disk), and a further piece of software called STYLE, complete with a manual of its own.
Concentrating first on the hardware, the AL25 has one MIDI In and three MIDI Outs, together with a Line Sync In and Line Sync Out for use with various non-MIDI equipment; use of a suitable signal processor such as the MPC Sync Track makes syncing to tape a possibility, too. An External Sync switch enables the interface to handle both one-shot and continuous sync signals, and other features include a Mixdown switch that facilitates bouncing down of one or more parts onto a vacant track, a MIDI Mix-down Override jack footswitch socket which enables drop-ins to be made whilst mixing down, and a Panic button (!), which allows the system (together with all your data) to be recovered in the event of a system crash. Thoughtful lot, these Joreth people.
The software can be neatly divided into two main units, the Real Time System & Performer and the Step Time System. Both are resident in the computer at the same time, and you can move freely from one to the other. Adjuncts to the Real Time System are the Real Time Trimmer (not the latest in steel-edged garden hardware, but a utility for, among other things, 'trimming off' lead-in beats) and the Real Time Editor (meaty stuff, this, giving access to the actual MIDI codes generated by your latest attack on the keyboard - handle with care).
The Step Time System features a low-level Music Composition Language called, reasonably enough, 'Composer', along with a very useful facility for step-time entry of notes and durations via a MIDI keyboard. Another invaluable aid is the 'Composer Syntax Checker', which reads through a completed Composer file and duly informs you of all your mistakes, but unfortunately, the system prohibits the Real Time Editor and Composer Syntax Checker from residing in memory at the same time, no doubt in the interests of conserving precious memory space. It would have been useful if either program could have been loaded from within the system instead of at the very outset - I found in practice that once I'd syntax-checked a Composer file and transported it across to the Real Time System for performance, I wanted to discard the Checker and work with the Real Time Editor. Having to reload the entire system, this time with the Editor selected, becomes a mighty laborious procedure.
The JMCS starts off in Real Time mode, though you can move straight to Step Time mode by keying
There are one or two gripes on the user interface side of things, like the fact that the display redraws itself every time you undertake some sort of action, a process that takes a full three seconds and rapidly becomes an unwanted irritation. I also found it annoying to have to step through each option from a fixed starting point every time (why not assign a key letter to each option?) and to be forced through the settings for all eight Parts during Transposition, Quantisation and MIDI Channel selection, when all I wanted to change was one value. Then there's the thorny topic of MIDI channel numbering. The MIDI 1.0 spec allows the 16 channels to be numbered either 0-15 or 1 -16, each system having its own logic. It's perhaps symptomatic of the ensuing confusion that the JMCS requires Channel selection input to be in the range 1-16, but then displays any input in the 0-15 range - ridiculous, really.
Those points aside, the Real Time System is extremely easy to use, and it doesn't take long to get something up and going. The only thing you've really got to avoid is forgetting that just because you've got a whole load of wondrous multi-channel facilities at your disposal, doesn't mean they'll turn a poorly-equipped synth into a megastudio.
To begin recording in Real Time, all you need to do is select a Part number and a 'beats in' value - the latter can be as high as 255 beats, though you'd have to be pretty patient to want to select a count-in of that sort of length. In fact, the number of beats has no relevance to your first track, as recording won't begin until you start playing (a nice touch, this). However, subsequent tracks conform to the value you selected initially. The metronome rate on Record and Play is selectable between 20 and 999 (!) beats per minute (default value is 100), and comes in the form of a click-track generated by the 64's SID chip. There's no need to worry about trailing rests on any of the Parts, as these are automatically deleted from the note file when Record mode is exited. Memory is dynamically assigned, too, which means that no fixed amount of space is allocated to each Part.
Parts can only be erased individually, and a track that's been recorded on once can't be used again until its current contents have been erased - a sensible precaution. There's no facility for overdubbing onto a track already in existence, but as I've already mentioned, it is possible to bounce down one or more Parts onto a vacant track.
When it comes to turning groups of Parts into Tunes, there are another couple of mild disappointments, the first of which is that Parts aren't Tune-specific - and neither are MIDI channel, transposition and quantisation parameters. I'd also like to have seen Part-assignable looping: at present, there's only one overall loop governed by the length of the longest Part, which is a mite inflexible, if you ask me.
On the credit side, velocity information can be filtered out of the input on individual Parts, even when they've already been recorded - useful if you decide to transmit a Part to a synth not equipped with velocity sensing: why transmit unnecessary data, after all? The program is capable of storing both pitch wheel and patch-change data but not, apparently, mod wheel information, though the potential offered by the Real Time Editor section is big enough to offset this disadvantage in practice.
The other side of JMCS is its Step Time mode, represented primarily by the Composer MCL. And unlike some other software houses who seem to think a step-time section can be as complex as it needs to be, Joreth have done a great deal in the quest for easing the input of note and duration values. As with the Real Time System, you can input notes polyphonically for each Part, but you can also assign a different duration to each step in each Part. It's easy to see what's going on, too, thanks to a custom-designed music character set that gives everything from a hemi-demi-semi-quaver to a semi-breve. And you can add qualifiers to the basic durations to give triplets, dotted and double-dotted notes, pauses, accents, staccato, and tied notes. A pretty comprehensive range of options, all in all.
If you're entering notes from a MIDI keyboard, pitch and duration are displayed on the VDU as if they had been typed in, but while full Commodore editing facilities are available during input from the QWERTY characters, editing a file created via MIDI necessitates entering Edit mode and working from the QWERTY keyboard. Still, Edit mode does give you full cursor control for inserting and deleting, and allows you to send your file out to a printer, while a further facility produces an expanded, clarified version of your Composer file, which can also be printed out.
It's worth mentioning at this point that all step-time input must be preceded by line numbers, and be entered in the form of strings (ie. enclosed within quotation marks). MIDI mode confines line-numbering to an automatic process, but working from the QWERTY keyboard lets you number the lines yourself, the idea being that you don't have to work on your composition sequentially - though you have to use the Tidy function to order the lines before you can do anything really useful with your file.
Once you've come up with something you think you might actually want to hear, it's advisable to call up the Composer Syntax Checker, as this is the only way you're going to discover any errors (other than playing back in Real Time and finding nothing but silence, of course). Watch out, though. Once you're in the Checker's control, there's no escape until every error has been flagged - a very humbling experience! Having studiously removed all your mistakes, you save your Composer file to disk, whence it can be picked up by the Create option and translated into data comprehensible to the Real Time System. Pressing 'P' takes you into that System, where your Part or Parts are assigned to a Tune, and then played back in all their technicolor glory.
The manual contains a reassurance that Step Time mode can be re-entered without penalty, but I found repeatedly that my Composer file had vanished on re-entry. I guess it's at this point that you begin to appreciate the value of having to save your file to disk before the Create option can be brought into use. Incidentally, the only way to load or save a Composer file is to enter the Edit function, something that proves decidedly difficult when there's no file around to edit. It is possible to get into Edit by selecting either Clear or New File (and immediately typing 'end'), but the manual, alas, doesn't tell you that. Another annoying feature of the Real Time/Step Time interface comes to the surface when you re-enter Real Time mode after modifying a previously Created file: the Part assignments you set up first time around aren't retained, so you have to set them up again. Very silly.
"Just because you've got a whole load of multi-channel facilities at your disposal, doesn't mean they'll turn a poorly-equipped synth into a mega-studio."
Difficult to believe though this may seem, the JMCS offers a score-printing facility in addition to all the other Composer functions - it's a remarkably simple system, but it does the job. A maximum of two parts can be printed/displayed at any one time, the only limitations being that they must be in different clefs and share the same key and time signature. The music notation is clear and sensibly organised - a worthwhile feature.
If ail the Composer did was accept note and duration values, it could hardly lay any claim to being a Music Composition Language. As it is, it lacks any degree of higher-level structuring beyond the simple Part/Tune/Song structure of the Real Time System. However, it does offer no fewer than 21 commands that can be used throughout the music. Some of these, such as key signature (KY) and metronome rate (ME) affect all Parts in any given Tune, whilst others like Tone-bank change (TN) and MIDI channel assignment (MD) are Part-specific. And amongst other things, there are commands to toggle a Hold pedal on and off, to define key velocity and quantisation, to control drum machines (see below), and to allow a stream of MIDI bytes to be embedded in yourfile. This latter facility is a useful entry point into the very depths of MIDI, as it should allow both the novice and the experienced user to increase the program's flexibility through the handling of, say, System Exclusive control parameters.
For those not in the know, System Exclusive is the area of MIDI where individual manufacturers implement their own particular features, and these can be specific to both machines and manufacturers. Now, whilst this open-endedness is necessary for MIDI's survival, it does pose certain problems for software writers, because no single package can hope to support every MIDI implementation on the market. Such a package probably isn't desirable anyway, but one way to incorporate built-in flexibility is to allow the user to work with his or her specific MIDI gear using some sort of harness. Which is exactly what Joreth have done with the JMCS.
The Deep End
You may have noticed a gradual move into deeper and deeper MIDI waters during the course of this review, and truth to tell, it's a move that's indicative of the sheer scope offered by the Joreth system.
Of all the more involved MIDI-based options offered by the JMCS, the Real Time Editor is one of the most intriguing. This can be called up at any time (assuming you selected it initially) from the Real Time System by keying
The Editor works on Parts that have been entered via the Real Time sequencer (and, presumably, any Parts that have been faithfully transferred from the Composer), so once you've recorded a Part, you can flip across to the Editor and get a MIDI representation of your music-in the aforementioned mnemonic form - up onscreen, with each command and each item of data assigned its own line number. You can then change any line by overwriting it, and it's possible to insert and delete lines, even though the full range of BASIC editing facilities isn't available here.
Moving between Sequencer and the Editor is usefully quick, and any altered Real Time file is immediately available for replay. And quite apart from offering some pretty powerful control possibilities, the Editor is a relatively painless introduction for anyone interested in finding out just how MIDI handles all those lightning-speed runs and whacky pitchbends.
As I've already noted, it's possible to sync the JMCS to both MIDI and non-MIDI drum machines and sequencers, and to choose either the software or an external source as the controller. At least, that's the theory; the practice was nearly as good. Both a Yamaha RX11 and a Roland TR707 responded admirably on the MIDI front, while on the non-MIDI side of things, the 707 worked well on its Sync channel in both directions, though a Korg DDM110 refused to control anything via the AL25's Line In. And just in case you get confused, the top row of the Real Time display gives the necessary details in the what-controls-what department.
Problems? Well, synchronisation parameters have to be set up outside of Play mode, and I found myself regretting (a) that drum machine start/stop commands couldn't be sent manually from the Joreth whilst a sequence was playing, and (b) that sequencer and drum machine couldn't be triggered or 'released' simultaneously.
It's possible, using the Real Time Editor, to insert the appropriate control codes at any point in your sequence, whilst the Composer section includes control facilities as part of its instruction set, though it would be nice to have 'high-level' control as well. One particularly welcome inclusion is a MIDI Reset facility which can be used for cutting off notes that are left hanging when a Real Time sequence is terminated (and it does happen). This worked during the test with a Siel DK80, but failed with a DX7 - maybe that's more a reflection of that machine's MIDI implementation than on the Joreth system itself.
The JMCS can also handle any of four different values for MIDI clock and Sync rate, the available options taking the form of quaver, crotchet, minim or semibreve metronome beat selections. The system uses 24 clocks per metronome beat as its default value, but selecting a different timebase makes connection with drum machines of different clock standards a realistic possibility.
Well, I guess that just about wraps the Joreth system up. It's a package that impresses both with the breadth of its coverage and the depth with which that coverage has been implemented. The software is robust as well as thoughtfully planned, and it's nice to see a program that never lets its user get stuck with an option that's been selected in error.
The system's configuration is clever enough to satisfy both the seasoned programmer wanting to get into the guts of the MIDI standard, and the MIDI/computer newcomer who wants an easily and instantly usable real-time sequencer. That said, if the JMCS has a weakness, it's that it doesn't offer enough in the way of high-level real-time facilities, something that could tempt musicians back towards dedicated MIDI sequencers and away from micro-based packages such as this one.
There are a couple of minor additional quibbles and, on the pre-production review sample, a couple of unsorted bugs as well. But they don't come close to discolouring what is, on the whole, a very favourable picture of a comprehensive and versatile piece of music software.
Commodore owners, this is the one.
Further information on the JMCS on (Contact Details).
Gear in this article:
Review by Simon Trask
Previous article in this issue:
Next article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!