User Interface

One of the main objectives of this project was to provide flexibility. For example, I missed being able to make a recording while listening to another source, which one of my previous amplifiers allowed.But at the same time, I had to remember that I would not be the only person to operate it... It was essential to make normal day-to-day operations as easy as possible, and hide the complexity as far as possible. This of course starts with the very simple control layout, but was considered at all times during software development.

Picture of preamp front panel - click to enlarge..

Basic operations

When switching on from standby, the display shows the selected input and the volume level. There is a simple push-button for each input on the left of the unit, each of which has an integral (blue!) LED to show the selection. The rotary control defaults to volume, and turning it adjusts the sound level, exactly as you might expect.

If it seems like I'm stating the obvious, then please spare a thought for those who are less technically-aware then yourself! It is easy to forget about others when designing equipment, and while this might not matter if you are the only person to use the product, through the eyes of another your design might appear confusing at best, or downright useless at worse!

Menu options

Menu structure diagram - click for a large version (84KB)The options are shown in the diagram opposite - click to enlarge. It's a high-res image, and looks quite good when printed full-page...

The advanced features are accessed by pressing 'View'. It's worth saying that I would have prefered to call this button 'Menu', but I'm limited by the remote control I'm using. Actually, that's not entirely true; the remote does have a 'Menu' button, but its code is an extended RC-5 command and my code doesn't understand extended RC-5.

Anyhow, the 'View' button will step through several screens displaying different options. While you are using the menus, the View button lights up. At this point, turning the encoder will change the current value for that option instead of adjusting the volume.

Some options require the user to press 'Store' to apply the changes - the Store button illuminates to prompt the user. In this state, if nothing is pressed for 3 seconds, a prompt will scroll across the screen... This important logic has been carefully planned - the Store button illumination and scrolling text will only happen if the user has actually altered the option.

The menus will time-out after a delay - this is useful to someone who isn't really sure what is going on! The most commonly used options are displayed in turn when View is pressed, but there is a further setup menu that can be entered if desired. As that's yet another level of complexity, I thought it would be best to separate them.

There are many different ways to approach menu design, as a quick 'market-survey' at your local hi-fi emporium will reveal. While the staff may quickly identify you as a 'tyre-kicker', it should be considered an essential part of your product development. You will quickly find that some products are easy and intuitive to operate, and others will just confuse you! The trick is to identify what it is that makes the good ones good - possibly easier said than done...

For example, I got a chance to play with an Arcam FMJ A32. While the basic menu structure was simple enough, the 'Customise' menu confused me. I subsequently downloaded a PDF manual from the Arcam website, and discovered the source of the confusion. Like my design, there is a button that steps through the different option screens (called 'Select') and turning the encoder allows you to change the value shown. Then, you get to a 'Customise' prompt, just like my 'Setup' screen. Here's where it gets confusing - turning the encoder lets you choose the option rather than the parameter! So, you repeatedly press Select to get to the Customise prompt, then turn the encoder to choose from Volume Resolution, Volume Display, Input Trims, Tone Control, etc. Once you've got the one you want to adjust, you press select to actually enter the adjustment phase. OK so far - it's not bad, just different...

Once you've made the adjustment, you have to press the Enter key to return back to the customise option-select screen. But, pressing Select appears to step you on to the next option without having to press Enter - in other words it does what my View button does! The whole thing seems to lack consistency, and is confusing. I know you'd get used to it, but...

Another thing - you are expected to press Enter once you've made an adjustment - this returns you to the default display in the case of the first adjustments (not the customise screen). It is the only way to escape the menu - I assume there is a timeout, but while stood in the shop I ran out of patience! This lack of (or long) timeout period is liable to confuse most people. Mine will timeout after 10 seconds - admittedly, there are times when this could be longer, but I can easily change this in the future...

I have provided a key on the remote that switches between the volume display mode (bargraph or large-character alphanumeric - see later) to save wading through the menus. As the effect of this would be invisible while you are in a menu display, it becomes an 'Escape' key. It is a key that is adjacent to the View key on the remote, so that works well.

Menu options details

An important point is that some menu options are input-specific. While using the menu system, you can change input source in the normal way. This ensures that per-input adjustments such as Input Trim are very easy to make in practice.

"Normal" Menu Options

  • Record Out:

    You can select a source to send to the tape outputs, enabling you to record one source while listening to another. The "Off" option is the preferred default option, as it avoids any negative influence caused by the recording equipment or cabling.

    The "Listen Source" option is useful for those who prefer the conventional "input selector plus tape monitor switches" arrangement. In this mode, the MiniDisc and Tape buttons become 'monitor' switches that toggle on or off. Logic ensures that both cannot be on at the same time.

    Once the desired selection has been made, you must press "Store".

  • Dubbing Mode:

    To enable dubbing from MiniDisc to Tape, or vice-versa. Once the desired selection has been made, you must press "Store" for the changes to take effect.

  • Balance:

    The relative sound levels of the main stereo channels can be varied to compensate for deficiencies in the layout or acoustics of the listening room. Turning the balance to the left will cause the right channel to be attenuated, and vice-versa (as it normal with domestic hi-fi, it's not a "Constant Power" pan control). The attenuation is in 0.5dB steps to a maximum value of 8dB.

  • Centre:

    The gain of the centre channel can be offset from the main stereo channels to compensate for different sensitivity and position of the centre loudspeaker. The gain is varied in 0.5dB steps with ±8dB limits.

  • Rear:

    The gain of the rear channels can be offset from the main stereo channels to compensate for different sensitivity and position of the rear loudspeakers. The gain is varied in 0.5dB steps with ±8dB limits.

  • Rear Balance:

    The relative sound levels of the rear channels can be varied to compensate for deficiencies in the layout or acoustics of the listening room. Turning the balance to the left will cause the right rear channel to be attenuated, and vice-versa. The attenuation is in 0.5dB steps to a maximum value of 8dB.

    NB: The Centre, Rear and Rear Balance adjustments are only shown when you are using the 6-channel input.

  • LFE:

    The gain of the LFE (low frequencies effects) channel can be offset from the main stereo channels to correctly integrate the LFE loudspeaker system. The gain is varied in 0.5dB steps with ±8dB limits.

    This adjustment is displayed when using the 6-channel input, or when the Left+Right LFE Mix option is enabled for the current input. The level is varied separately for each input, enabling fine-tuning of the system. As an example, you might require a lower setting for the phono input to avoid rumble problems.

    As you can change the listen source while using the menus, you can set up each source without having to reselect this screen from the menus. For the inputs that don't use the LFE channel, the bargraph is "blank" and no adjustment occurs.

"Setup" Menu Options

  • LFE Source:

    This enables you to choose what source is sent to the LFE output - "Normal" means the LFE input connection when the current listen source is the 6-channel input, or nothing (muted) when a 2-channel input is selected.

    This is a per-input setting, and you can change listen-source while at the menu display to simplify the setting-up procedure.

  • Input Trim:

    To compensate for the difference in level between the different input sources, this adjustment can be used to add up to 14.5dB of extra gain in 0.5dB steps. Note that this will not affect the output level on the buffered listen-source output or the tape outputs.

    This is (obviously!) a per-input setting, and you can change listen-source while at the menu display to simplify the setting-up procedure.

  • Mute level:

    When selecting the Mute function, you can adjust the effect of this on the sound level. While "Normal" will mute the audio fully, you can choose to attenuate the level by 20, 30 or 40dB

  • Volume Display:

    There is a choice of viewing the volume level with a bargraph, or with large characters which are more easily read from a distance.

  • 6-Channel Input:

    Depending on system components and requirements, the input that 6-channel operation is assigned to can be TV/AV or DVD.

  • Trigger Outputs:

    The state of the 3 general-purpose 12V triggers can be customised with each input selection. Turn the rotary control until the required combination is found. As the new settings take effect when the input is next changed, you can press "Store" to force an update. As with all per-input settings, the current listen-source can be changed at this point to simplify the adjustment.

Other functions

  • Standby:

    Press this button to switch the unit on, or place it into standby. Any power amplifiers that have 12V trigger input controls will be turned on and off appropriately. Note that there is a delay of approx 25 seconds before the power amplifiers are turned off - this is to help reduce unnecessary power-cycling which might affect the reliability of the amplifiers. This delayed action also applies to surround and bass (LFE) amplifier trigger signals - these are only turned on when the current listen source requires them.

  • Mute:

    This button mutes the sound by the amount set in the Mute Level menu. When muted, the Mute switch is illuminated. To cancel the mute condition and restore the sound to the previous level, press Mute again. Adjusting the volume while muted will also cancel the mute condition - if you adjust the volume upwards, the sound is restored to the previous level. Alternatively, pressing the "Volume -" key or turning the rotary control in an anti-clockwise direction will cancel mute and set the current volume level to equal the effective level during mute.

    For example, suppose the volume was set to -30dB when mute was pressed, and the Mute Level menu option is set to "-20dB". The display will continue to display "-30dB" and the mute LED will light. If the "Volume -" key is pressed, the mute LED will go out, and the display will now display "-50dB". The sound level will remain the same. This sounds complicated, but works well in practice.

    The Mute state is retained during Standby.

  • Display-Off:

    This button on the remote selects between normal, auto-off and dim display operation. Press it once to enable auto-off. This means that the display will be turned off until the next command is received. It remains on for 3 seconds before blanking again. If you enter the menu display, the display stays illuminated until the menu system times-out.

    Press the button a second time to bring the display back on at a reduced brightness. Finally, a third press will restore normal operation.

    During Standby, the auto-off mode is cancelled, but dimmed operation is retained.

  • Volume Display/Menu Escape:

    When in the normal display mode, this button changes between bargraph or large character volume display. When the display shows a menu display, pressing this button will 'escape' from the menu system and return the unit to the normal display mode.

  • Left and right arrow keys:

    These are linked to two 12V triggers - pressing each button will activate the appropriate trigger output until the button is released. These may be used for any purpose - I plan to use them to change channel on my tuner.

  • Soft-Muting:

    A feature not previously mentioned - when selecting Mute or Standby, the volume is deliberately "faded" instead of being instantaneously muted, with a much more pleasant result. The same applies when the Mute or Standby functions are cancelled.

  • Engineering test modes:

    Every product needs one these days! At the moment mine is limited to a simple RC-5 test page that I have used to find out what codes are given out by Philips remote controls. I planned to add a local keyboard test/calibration facility, but I haven't needed it yet...

Display Screenshots

Just to prove that all this works, here are some images of the display...

Record Out Selection

Record-out selection

Balance Slider

Balance slider control. When moved from the centre position, a "L" or "R" appears before the level.

Trigger Outputs

Trigger outputs. The combinations are basically binary...

Hidden Screen

The 'hidden screen', showing the results of any RC-5 remote control signals. The Timer value is the measured timebase used by the decoder routine.

Large character display

You might be wondering how I managed to make large characters on a standard text-only display module. Well, it started out as an experiment - right from the outset I thought that it was a slightly dodgy idea. However, it works reasonably well, and is the display mode that I use most often.

It's done using the eight user-definable characters available on the VFD display. If you messed about with home computers back in the 1980's, you might have used similar techniques to draw large text, graphics or sprites... But, there is one problem with these alpha-numeric VFD (and LCD) displays that you didn't have with your BBC Micro - the space between characters. On a computer, the character fonts include whitespace around them to separate the characters. The display modules have nothing!

Large Font DisplaySo, you have to create the alternating-dot pattern shown here. It might look a bit odd, but take a look from a distance - it actually works quite well...

I originally thought that I might provide a choice of fonts, but after experimenting for some time, I hadn't really improved on this one, which is just a scaled-up version of the normal font.

I don't think that a commercial manufacturer could get away with this approach, but given the cost of graphic VFD modules, I'm happy to compromise!

Update - 17/11/2002: Graphic VFD Module

Just as soon as I finish the preamp, Noritake-Itron decided to bring out a new range of Graphic VFD modules that are extremely affordable. Typical! For details of the module, check out the Control Hardware page...

Default Screen

Large-character volume control using the built in 10-by-14 size character font. It is nice and readable from a large distance, and still looks good close-up. The "dB" is a simple bitmap image that I devised.

Volume Bargraph

The volume bargraph is drawn using graphical commands, which looks better than using the discrete character blocks.

Startup Screen

My bitmap drawing routine works with any size image - this is my first attempt at a start-up screen...

Large Font

When changing input using the remote control, it's an easy matter to use the large font to confirm the operation. The normal display is redrawn after a couple of seconds...

Once I'd learnt how to drive the display, I ended up writing routines that write proportionally-spaced fonts on the screen. Clearly had far too much spare time back then :-)