ITTS (DCC text) reimplementation

We are live! One year and two months after the great presentation by @drdcc, the ITTS video box is no longer the only ITTS decoder we are sure to exist.

I changed the font to the one @Jac recommended, it fits nicely! I optimized the code for being easy to understand, as basic as possible and easy to modify via the JS console, if anyone is interested in that. That’s why I ditched adding the empty lines and do not clean up/optimizations before rendering as long as it is not visible.

Fun fact: Everything (ITTS, font, my JavaScript, the two JavaScript libraries as well as my HTML) would fit twice on a 3.5-inch floppy.

3 Likes

Great work Max!

===Jac

1 Like

Mega

1 Like

Spectacular work! I hope that you will do a fun follow up to the Kermit the Frog - “Rainbow Connection” demo! Maybe… The Muppets - “Mahna Mahna”. It has truly international lyrics. LOL

2 Likes

It will involve a few more steps but this is among the planned topics, which I will share (unsorted)

Most will require dumping and re-writing which could either be my or @Jac’s solution.

  • ITTS lyrics patcher - will make any ITTS lyrics show up on 1-line devices

  • ITTS DCC recreator - will list the song length that can be filled with wav files of the same length to be ripped from CDs that anyone can cheaply buy

How does your personal “prerecorded” copy of Violator with the audio from a cheap used CD combined with optimized ITTS (proper timing, 1-line lyrics), which I assume we can share without legal issues, sound?

  • A new ITTS dongle and video box of some kind, it could even be a Raspberry Pi based that can run a future ITTS.js version.

  • The best ITTS toolchain ever made: I believe that the tool that the process used back then caused the missing 1-line lyrics and massively limited the potential. DCC Museum albums will see proper ITTS, maybe even retroactively.

The link to the release of ITTS.js currently only shows 2 openings, thus I’ll repeat what is in it:

It contains my full first ITTS decoder that loads the demo ITTS packets from the ITTS box ROM dump into your browsers and has four buttons to select four different views. It even works on mobile devices if you zoom into it.

3 Likes

I read and thought about it some more. It is far closer to Teletext than I could imagine for the time I have been looking at it.

Most features (40 characters per line, control characters that equal spaces, the identical graphics character set) are on the level of WST Level 1.5 from 1981 (the .5 only added the different local character sets) but with only 21-lines none of which are predefined. The weird resolution is a result of that. The WST Level 2 from 1988 with apparently less commercial success than DCC introduced the redefinable characters that are optional in ITTS and to my knowledge have never been used and are likely not even supported by the ITTS box, so I can will them for now.

I will look for suitable modular FOSS Teletext tools for authoring including art and decoders to modify accordingly.

@drdcc Do you know any uses of the ITTS special characters, that would require an addition to the font. image

1 Like

Never seen any of them.
Ralf

1 Like

Those aren’t part of the Teletext chip in the ITTS decoder of the DCC museum so even though they might be part of the ITTS standard, they wouldn’t be used by anyone who used the ITTS box for testing. I wouldn’t worry about them too much until you can record your own ITTS :slight_smile:

===Jac

2 Likes

Good point :upside_down_face:. Now everything looks so obvious in retrospect, but it wasn’t so simple to me when I first started. Could be the DCC modding piece to finish the earliest.

Now more or less absurd ideas come to my mind, but I’ll skip those and will most likely never bother:

  • An ITTS box with an empty FBAS output with Teletext modulated onto it, mapping the different programs to Teletext pages.

  • Record audio from a TV program and make ITTS of the subtitles page.

1 Like

I finally noticed a significant and quite useless limitation of Teletext that ITTS does not have: Teletext has control characters for text color and one for using the current text color also as a background color as well as one for removing/black background color. This has the following consequences: It is not possible to color the first column with a background color and thus it is mostly left empty and the last column is made black for the famous black borders on it. Have you ever fancied writing with the same foreground and background color? If you don’t want that you need another control character and thus you can only write in the third column with a background color contrary to the second with ITTS.

edit.tf looks quite promising as an editor, the mosaic graphic font (used for the frog and likely all the other of the more advanced ITTS we’ve seen) can be edited very nicely using the numpad. I will fork it and modify it to work with ITTS, will be some work but it is mostly vanilla JavaScript.

I am not sure what platform I’ll use to build a timeline for an entire DCC image I imagine similar to a video editor that won’t require too much knowledge of the internals, my goal would be that @drdcc will be able to design a better than average prerecorded album including everything.

2 Likes

A quick update regarding ITTS.js 0.0.1 : I could not load it because I had hardware acceleration disabled in my Chrome and even though it is simple it uses WebGL. Just in case someone might stumble on it later,

The project is not dead, I can look back to a great challenge that once was pretty hard and in retrospect I am not really sure if it was hard or easy. It is bottlenecked by the lack of ITTS packets, so @Jac or anyone else, if you come across a mess that might be/contain ITTS packets like @Jac told me with sniffing his PC link cable just send it to me and even if I have to write the bits down manually, I am more than happy to send it into ITTS.js and improve its capabilities as necessary.

1 Like

I’ve been working on sniffing the L3 bus in my DCC730 and I’ve seen some ITTS data in the logs. I have good hope that it will be possible soon to catch ITTS data, either using a microcontroller connected to the L3 bus in a 3rd generation recorder, or using an external device connected to the SPDIF output of a 1st or 2nd generation recorder.

Unfortunately I’m having a bit of trouble with interrupt latency: My software catches incoming SPI traffic but also has to know what the status of the L3MODE line was at the beginning of each byte transferred, so I’m figuring out the best way to do that.

===Jac

3 Likes

Please send it over as soon as you have something. I’m working on getting it and more myself but it takes its time.

2 Likes

I pushed a minor update: ITTS.js 0.0.2

Changelog:

  • Fixed a bug that the black screen was not displayed after reloading, caching, or possibly with broadband combined with a slow computer
  • Removed an unused line to make it easier to understand
  • Upgraded to pixi.js - v6.0.2
1 Like

Okay… I admit… I’ve read all the 74 threads… took me an hour…

And I’m not worthy…

You guys @Max @drdcc @Jac @Jorn
You are amazing!
And I think I caught 15% of it!

1 Like

Hope you enjoyed ITTS.js so far, won’t stop until the frog can show up for everyone.

3 Likes

I will follow this thread up until you know how to boot windows 95 on a 951…

1 Like

FYI to everyone: I’ve started working on it again since @Jac is closer to the extraction from S/PDIF: Long Time No See! | Details | Hackaday.io Thanks for the mention :relaxed:.

@drdcc
The ITTS standards includes scrolling text not only for 1- and 2- but also for 21-line display, but without any mention of timing. Ever seen that?

The Supertramp album contains a runtime menu, is it the only tape you know with that rather complex feature?

BTW: For 1-line 12 character display blank spaces before the text of the respective line get removed, all text except for the user provided titles on recorded tapes is ITTS. I wasn’t sure about that in the beginning.

I started on implementing SPDIF-to-serial yesterday but I got distracted (I had to go to see my grandson’s baseball game).

I hit a bit of a snag that’s not (yet) mentioned in the article that Max links to, though: my TXX module is not fast enough to process the data: my earlier notes show a maximum throughput of about 250,000 bytes per second and it will need to do 288,000 bytes per second. I may have to change the protocol to 5 bytes instead of 6 per sample, but I’ll figure something. Stay tuned.

=== Jac

1 Like

Hi,

The ITTS standards includes scrolling text not only for 1- and 2- but also for 21-line display, but without any mention of timing. Ever seen that?

Ralf; Nope.

The Supertramp album contains a runtime menu, is it the only tape you know with that rather complex feature?

Ralf; This is the only one we have / known to exist.

1 Like