Thursday, 15 December 2022

HP Elite Display and 50Hz


So I broke my primary display. For a while I suffered an old Benq display with 1920x1080 resolution, but then replaced it with this used cheap-ish 24" HP EliteDisplay E243i with a 1920x1200 resolution.

I was not initially too impressed with it. It is not completely flicker-free technology although the flickering is not nearly as obvious as the one used in the Benq. (And I barely noticed it there until it was pointed out to me.)

On the positive side, it is pleasing as an object, the frames are thin, doesn't shake excessively, pivoting is extremely easy and goes both directions. Connections are Displayport, HDMI and VGA.

But I probably wouldn't write about this without a happy accident: the display has 50Hz refresh rates. 

These only work for the 1920x1080, 1280x720 and 720x576 resolutions. In practice the 1280x720 is used if a 50Hz HDMI is plugged in.

This is desirable for various more or less "fake" retro applications and emulation, as the old computers tended to use 50Hz refresh rate in Europe. I had been actively searching for such a possibility, but gave up as apparently only TV displays have such rates.

For modern displays, having 50Hz input does not always mean the frame rate is 50Hz, as it could be simply some kind of auto-conversion to 60Hz. Also, horizontal frequencies matter. For example, the ZX Evolution computer VGA is quite picky and the display couldn't catch the signal.


Converted image

I first tried an old Composite-to-VGA box and got a very cruddy Commodore 64 image on the display. Despite the poor quality, the frame rate is rock solid, with no indication of stuttering or 50-60 conversion.


Changing to S-video, the image improved marginally.

The box also takes in Y-U-V, which likely would be the best option for this video converter, but the C64 signal doesn't split that way.

Sticking C64 Composite and Luma outputs into these inputs produced a rather stable and crisp, but wrongly colored, striped image. Don't try at home.


Emulators and other boxes

Even with 50Hz, this display will never be on par with a CRT. The most egregious difference is of course the screen shape. Yes, the monitor can be told to do 4:3, which is a bonus, but it won't take the physical dimensions away.

I tried some emulators and the various HDMI-outputting retro gear I have around. This isn't a review of these platforms, just my experiences with the display and while I'm at it, notes on the Arduino joystick adapter.


UAE

Amiga emulator on Linux. The emulator is surprisingly smooth, and tearless after checking on the vsync tick box. But for some software, the frame rate is not endlessly rock solid. Already looking at the Giana Sisters intro screen I could on occasion see the scroll hiccup a frame. 

But during games and the few demos I tested, I could not really see any problems at all. I guess it partly depends on how the sync is achieved at the "Amiga" end too.

The interlaced Giana Sisters intro screen does not "interlace", and on occasions the lines are displayed in the wrong order.

Using the Arduino adapter, I can play games with the Tac-2 joystick, which is a bonus.


Amiga Mini

Yes, this commercial game console works rather fine and can be set to 50Hz mode. 

The interlaced Giana Sisters intro screen is displayed correctly. The screen scaling options are not very sophisticated, so the screen can end up either small-ish in the center or a big screen with scaling artefacts when scrolling.

The Arduino adapter doesn't work here, so I have to use either the supplied gamepad or the Joystick from The C64. Neither are especially good.


Vice

Commodore 64 Emulator on Linux. Vice adapts to 50Hz but on my Linux/compositor the emulator doesn't quite achieve smooth sync. No clue why and there are really no further options in the GUI at least.

C64 is not pure 50Hz so there might be a systematic hiccup here and there, but at times I felt Vice hiccuping a little more than I'd expect. I am also wondering if the emulator creators really bothered to enforce the slight difference, but perhaps cycle exact is cycle exact.

The Arduino joystick adapter works here nicely, though.


C64 BMC

A Raspberry Pi -based "bare metal" emulator with HDMI out. It needed some fiddling with parameters before I could get an integer-based display scaling, fortunately these can be done from the BMC menu itself.

This was not altogether satisfying, as to get a huge screen with integer scaling, the borders had to be sacrificed. If borders are included, then the usable screen area becomes rather small. In many games it matters little as the borders are often black.

I have to say I'm not exactly sure why the rest of the screen can't be used, there may be still something to explore.

Aahh...

As I've modded the BMC to have original C64C keyboard and a 9-pin joystick port, the experience is quite good and I can directly use my Tac-2.


The C64 Maxi

The commercial hardware emulator. With only HDMI out, no doubt it can do the job. There's also a selection between 50 and 60Hz modes, but as I recall this had to be done at the boot.

Selecting the "pixel perfect" mode I get a pleasant enough, unnaturally crisp HDMI C64 image with borders, something that was a little tricky to get out of BMC.

What is less pleasant is that I'm apparently stuck with the joystick that came with The C64, the Arduino Joystick adapter could not be used here.

Apparently to have more HID devices accepted by The C64, there's a workaround but I'm not yet prepared to go there. Still, it's promising that this problem has a solution too.

I get a good image more easily than with the BMC, but the BMC has better joystick options and is possibly a little less laggy.


The Outcome

So, all in all I think the Linux can do UAE rather well, and for more frame-accurate C64 emulation I have two choices with this display.

Monday, 12 December 2022

Another time, another Fostex


Yes, the "red one".

I did once discuss a broken Fostex 4-track tape recorder, which I never really properly repaired. I got a good impression of the Fostex brand and when this striking-looking MR-8 digital recorder was available on a net auction, I blindly hurried to get it. This already some 5 years ago I think.

After the initial excitement of having a multi-tracker strongly influenced by the 4-tracker tape workflow, I felt it was too slow and limited and the box mostly spent time at the back of a shelf. Besides, calling it an 8-tracker is really a stretch. You can only record two inputs at a time, and only four of the tracks behave individually. The 4 other tracks are stereo "bounce" pairs 5/6 and 7/8.

The MR-8 is from around 2003-2004 after all, at a time when a cheap digital recorder became a possibility but the concept was still somewhat marred by tiny memory space, slow USB and card speeds.

Now, for one reason or another I felt it might find at least a temporary place on my desk. There's something fun about listening a recording without even turning on the computer, and on occasions learning to be slower with your methods might even be helpful.


Upgrades

One motive to dig this out was that I found out there are firmware updates. I did the 1.21 upgrade and saw this would allow me to use a 2GB compact flash card instead of the 512MB one installed. Fostex had also supplied a list of cards proven to work, which was pretty nice of them. I ordered one from eBay, a Sandisk brand 2GB card. This would bump the 48 minutes of 4-track recording into a maximum of 188 minutes.

A repeat of the firmware update instructions:

After finding the MR8V121.zip from Fostex website, unzip the file within, and use the USB function of the MR-8 to copy it over to the compact flash. (The MR-8 appears as a sort of memory stick, if the USB mode is on) After this has been done, shut down the MR-8. Then hold STOP and turn the MR-8 on again. Now the Fostex should prompt you with something like "version up", and as usual, you have to confirm it with RECORD+YES. Wait for a while, and after the upgrade is done the Fostex should be again shut down. After turning it on, you should see the version is now 1.21.

A Fostex document suggests turning the "EXTEND" mode on in the Fostex before doing the upgrade, but this might be required if the card has seen some use. My card was nearly empty, and I guess there were no problems even if I didn't turn the mode on.

After upgrading there is an option for auto-delete of undo space, but I left this off for now.

After inserting a new 2.0 Gigabyte Compact Flash card and turning the power on, the Fostex offers to format the card. After this procedure there is more than 6 hours of mono recording time in the normal mode. 

The space use depends on the amount of tracks and how much undo buffer is in use. As should be, the recorder does not waste extra space when not needed. So, if you first record a few minutes to tracks 1 and 2, and then record a few snippets in the middle of track 3, these will only take a tiny amount of memory and not a full track.


Learning to fly

I became motivated to study the device and the manuals a little more, finding some neat functions I had been so far unaware of. The manual, despite having some typos and tiny language problems, is extremely clear and well illustrated.

As an example, I was originally unimpressed with the slow export procedure. You can't simply copy your work in progress using the USB connection. The tracks 7/8 are exported into a specific WAV stereo file, which in turn can be copied over the USB. Creating the 7/8 track seemed to require the re-recording of the tracks using "bounce" function.

But now I learned I don't really need to re-record to 7/8 in real time in order to export them to WAV, as I can simply "copy" tracks 1-2 to 7-8 internally, which is much faster. Assuming all the material is in tracks 1-2, that is! Then again, if I'm using all tracks I could choose to export tracks 3 and 4 to 7/8 too and combine the audio at the PC end.

Anyway, this track-copy function helped me try out different recording parameters and seeing the results rapidly on the Linux side. I also found out that most of the track functions work not only on single track, but on the 1/2, 3/4, 5/6 and 7/8 pairs which makes these tools more useful.

Also, the part copy and erase functions made more sense once I used the internal clock to synchronize a sequenced recording. This way, the recording can be revisited in Bar/Beat timing and not in seconds. I'll tell more about this below.

The sync also could help record tracks separately with accurate timing. For example, record one song element to tracks 1/2 first, then another to 3/4. An optional audible metronome click helps live play.

Using the inertial rewind and forward buttons together with the unresponsive STOP is still quirky. I could have used the good honest cursor keys to step between bars.

Things like the on-board effects processor and mic/amp simulations are perhaps better ignored, as they are not very functional and some of them are simply on-off without any parameters. It looks like everything in the device is geared towards making a simple demo for a performance that might include a guitarist and a vocalist.

For the hell of it, I also tried XLR cables for inputting balanced audio from the mixer, although with the distance of 1 meter it should matter very little what kind of cables I'm using. The XLRs ought to be used for microphones really. But in contrast with instrument cables, I seemed to need less TRIM for Input A and B to get the same volume level, which kind of sounds promising? My ears could not really discern any difference in results, though.

Opening the box

I also felt an urge to look inside the box, as some of the buttons were a little unresponsive. The STOP button and the STORE button have to be pressed hard to make them work. Yet it was clear the switch below the button "clicks" in a tactile way.

Some sawdust particles had got between the LCD and the plastic cover, and this irritated me as the screen's not that big anyway.

Pull out the faders first. The knobs do not need to be removed.

Do not remove the "foot" screws and the "battery compartment" screws. Screws near "Digital Out" and possibly MIDI, do not need to be removed either, but I did take out the latter. (Edit: These do not need to be removed.)

There are screws at the bottom and back that need to be taken out. The three bottom screws near to the back connect to a metal plate that needs to be detached later. These screws are somewhat longer than the other. (When putting these three back, put them loosely in before tightening them fully, otherwise one of the holes may be mismatched and it will be difficult to fit.)

Then the red cover should pull out together with the LCD and the fader/button unit. After disconnecting the mic leads and the two ribbons, the parts can be pulled out entirely. I found it easier to unscrew the mic rather than try to disconnect it from the circuit board.

Then, more screws need to be taken out to detach the LCD/fader unit from the plastic cover. There's also a protective "silver cardboard" which probably does little or nothing to remove interference.

After cleaning any visible dirt and putting it all back together, the STOP and STORE button did not become markedly more responsive. Possibly the switches have become worn out. I did manage to clean the space between the LCD and the transparent cover, so there are no longer any particles there.

Possibly, to repair the buttons I'd need to replace the microswitches on the circuit board. They did not appear in any way loose, and the one-piece plastic contraption containing all buttons didn't look damaged.

5.2.2023 Edit: I took a closer look, and re-soldered the tactile switch connections while pushing the switches closer to the board from the topside. This improved the connection and the STOP/STORE buttons now work with lighter touch. The switches are 6.2x6.2mm with top measured varying at 4-4.5mm because of the way they had been soldered in. With only two pins as the poles it would not be surprising they might come loose easily.

MIDI clock-based recording

The Fostex has a MIDI out port, a feature I had not previously used. I recall this caused some initial confusion in me, why does a recorder have a MIDI out port? But it's actually rather obvious. The port transmits the MIDI clock to a sequencer and it is possible to make timed recordings this way.

A song can have a tempo and time signature map, so the Fostex is not limited to one overall speed or time signature. After making these selections and recording a synced track, it's possible to switch over to the Bar/Beats notation instead of the hours/minutes/seconds timing.

There are even two kinds of sync methods, the simpler MIDI clock and the SMPTE/MTC. I used the simple clock, and it looks like to me for recording a complete song it should be sufficient and uses far less MIDI bandwidth.

The simple MIDI clock sends start/stop/continue signals and a continuous "click", all using single-byte signals. 0xFA for start, 0xF8 click, 0xFB is continue and 0xFC is for stop. Other MIDI message contents are always seven-bit, so even if a click arrived mid-message, it shouldn't be difficult to parse. 

For a 4/4 time signature, the click byte is sent 24 times for each quarter note, giving a resolution of 96 for one beat. 

Frankly, the alternative MTC format looked rather complex, as it sends portions of the time stamp little by little. The sequencer may even need to interpolate these and "lock on" to the signal. The plus side is that it becomes possible to start the playback from any location. In the simple clock mode the Fostex doesn't send the SysEx for song position. On the topic of MIDI timings I used Francis Rumsey's book Midi Systems & Control, 2nd edition, from 1994.

When the START signal is sent (by pressing Play on Fostex), Fostex can be told to wait for a couple of empty bars before the click signal begins to roll. For my sequencer, this handily means the MIDI data can be rendered and linearized for playback, which can take a tiny moment. As the sequencer receives the click, the virtual playhead is advanced and MIDI out signals are sent to instruments.

After pressing STOP on the Fostex, the click is no longer sent and the Stop byte is send via MIDI. This can tell the sequencer to stop worrying about the incoming clock, or something.

One obvious use for this when importing the Fostex-exported WAV to a Sequencer/DAW, here for example Qtractor. After setting the tempo I have the track laid out according to plan.

Working with the bar/beat model, it's also possible to make better use of the Fostex Part erase/copy/paste functions. Usually the A and B positions are meant for working on a song position, such as re-recording a portion with multiple takes. Here the A->B positions signifies an area to be operated on a single track, and they can "snap" to beat resolution. This way I could remove a few bars out from a track, or even extend the song further by copying more material to the end.

Also, I recorded separately a bassline to tracks 1/2 and percussion/other stuff to 3/4, from the same song, and the result sounded pretty accurate to me.

So in theory, a song can be constructed using already recorded short elements. This might be silly in this time and age, but as a zen exercise in patience, it might just spur someone's creativity.