BeeBMIDI (Part 7)
Software writer Jay Chapman introduces us to DX7ED, a patch editing program for Yamaha's FM poly, the BBC B, and E&MM's own BeeBMIDI interface.
The first of a two-part look at DX7ED, a catchily-named editing program for owners of the Yamaha poly, a BBC Micro and E&MM's hardware interface between the two.
The Yamaha DX7 has already earnt a significant place in the musical instrument history books for itself, its manufacturers, and its mentor, John Chowning - the researcher who pioneered the principle of Frequency Modulation (FM) synthesis. Not to put too fine a point on it, the reasons for the DX7's success are that it's a versatile, precise and highly musical synthesiser that sells at a relatively low price.
But that doesn't mean to say it's not without its problems. Because as it turns out - and as any DX7 owner will testify - the synth has at least two significant disadvantages by comparison with some of the more conventional models currently available.
The first is inherent in the way FM works as a synthesis process. Put simply, keyboard players who come to an FM instrument after years working with non-FM machines are more often than not completely nonplussed by the array of panel controls they're suddenly confronted with. Analogue synth designs make the musician's job easier by grouping their various controls logically under separate sections, such as oscillator, filter, envelope and so on. Unfortunately, FM synthesis can offer no such logical equivalents, and many an 'expert' programmer has been defeated by the unfamiliar terminology the process finds it necessary to put his way.
The second disadvantage begins to take effect once the first has successfully been negotiated, as even if you know what they're all for, experimenting with the DX7's parameters can quickly become confusing, not to say extremely frustrating. If you doubt this, just try determining the pitch relationship between two Operators, or making one Envelope Generator's attack develop 'just a touch' later than another's.
Wouldn't it be nice to be able to view the amplitude/time graphs of all six Operators' envelope generators at the same time? Or to analyse the construction of the current algorithm from a large on-screen diagram rather than having to search through the 32 miniatures on the DX7 front panel? Wouldn't it be useful to be able to move and/or swap complete sets of envelope generator parameters about at will? And just for that occasion when the latest piece of voice programming is going well, and you need another modulating Operator connected just there - and there isn't one in the current algorithm - but there is in a different algorithm - but the Operators you've already used are in different positions... instead of laboriously copying each parameter of each misplaced Operator into the right place for the new algorithm, wouldn't it be good to have the option of just moving complete sets of Operator parameters about at will?
If you haven't guessed by now, DX7ED will allow you to do all these things and more. The program reads in voice parameters from the DX7 and displays them clearly in useful related sets on a BBC micro's monitor. The synth's parameters can then be varied on-screen using the minimum of different QWERTY keys. And where diagrams or the odd bit of text might conceivably be of help in the quest to understand exactly what's going on, these are displayed in addition to the DX7 parameter's numeric value.
This month's BeeBMIDI feature is a bit of a teaser, really: there are four examples of what some of the program's screen displays look like, but more of these 'pages' will appear in next month's article, so that you can get a good feel for what DX7ED has to offer. Perhaps the most striking of this month's pages is that for the Envelope Generators (Figure 4), which I'll describe in more detail in a moment.
First, though, let's look at an example of how DX7ED is used. Focus your attention, if you will, on Figure 1, the LFO page. When this page is selected, its title box and seven parameter 'graphics' are automatically drawn. The small rectangular boxes are used to show the current parameter values: they're all zero in the example shown. Where a parameter value is no more than a number in a range, such as the LFO Speed (0 to 99) or PMS (Pitch Modulation Sensitivity: 0 to 7), both the numeric value and a bar chart graphic above the value box are presented on the screen. The vertical bar gives a useful visual indication of the fraction of the parameter's range the current parameter value represents. Have a look at the 'Wheel' and 'Breath' graphics in Figure 2 for examples of this.
Now, where the parameter value is a rather more complex entity, ie. it has some other meaning than just being something within a numerical range, the software obliges by showing the additional data on-screen, so you don't miss a single slice of the action. Thus, in the case of the LFO Waveform (Figure 1) what's drawn is a representation of the actual waveform. Similarly, the Sync parameter actually shows whether Sync is On or Off, which tells you an awful lot more than the parameter values of 0 or 1 ever will.
The way the software deals with an output of data in a non-numeric form is highlighted in Figure 4, where the Level and Rate parameters for any of the six Operator Envelope Generators and the Pitch Envelope Generator (which is shown temporarily replacing Operator 1's EG curve in the diagram) can be altered whilst viewing the change in the selected EG's curve relative to all the other EGs' curves. (Sorry about the tortuous vocabulary, but that's the way things are with these synths!)
I suppose it's not uncommon for music programs to highlight the selected parameter, and that's exactly what DX7ED does in all its pages. Thus, Figure 1 shows the LFO Wave parameter being edited, while Figure 4 has the Level 1 (LI) parameter of the Pitch EG (EGO) being adjusted. The software is configured so that the selected parameter value decreases or increases by 1 (or 10 if you press the shift key) when the ',' and '.' keys are pressed respectively. Pressing the 'm' or '/' key deselects the current parameter and selects the parameter graphic to the left or right of the previous one. Shifting for either of these keypresses exits the current page. The really alert amongst you will probably have realised by now that the DX7ED command keys appear in a block on the BBC keyboard, so control of the software is certainly an ergonomically efficient process.
Well, that about wraps things up for this month's episode, boys and girls. Next month's article will include the DX7ED program listing, more details of the package's facilities and a quick run-down on the working of the central routines, including the graphic displays and data input. I'll be paying particular attention to the coding of the data describing the 32 algorithm diagrams: have a think for a moment about how you might store the details of 32 drawings in a compact and easily accessible manner...
Oh and by the way, EmmSoft will be offering a cassette version of the program for those with blisters on their typing fingers - the price will be announced at the end of next month's article. See you then!
Gear in this article:
Feature by Jay Chapman
Previous 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!