[TUHS] v6 draws and speaks and now it's available to you

Will Senn via TUHS tuhs at tuhs.org
Thu Sep 17 11:08:21 AEST 2026


Hi Jay,


Thanks!

Call me timid on suggesting SIMH changes. Yes, it does what I want it 
to, and likely what other V6 folks would want too, but the 
RSTS/TOPS/etc. folks maybe not. It isn't really general.

Both the VT01 endpoint and the Votrax endpoint are more than devices in 
my implementation. They're translators standing in for whatever 
server/device combinations Bell Labs had in operation—likely a PDP-11/20 
with a VT01 attached in one case, and something with the Votrax 
connected in the other—listening over parallel and serial interfaces 
respectively for these byte streams.

I basically black-boxed those service mechanics and translated the 
streams into the appropriate realization: XY plot commands for graphics, 
and SC-01 phonemes/inflections rendered to SDL PCM for speech. That's 
based on my reconstruction of the protocols and what the sparse source, 
manpages, and related material imply those services had to do.

The graphics side is comparatively easy to validate. Yes, the XY display 
is clearer than an actual VT01 would have been, but the conversion is 
principled: analog deflections become discrete plotted points. The 
service could have been working from the same ideal coordinates even 
though the physical realization would differ. I'm pretty happy with that 
result.

Speech is much knottier. I compared mine with the 1980 Votrax recording 
on Wikipedia and at least convinced myself that it's recognizably the 
same sort of voice. My ruleset comes from Diomidis Spinellis's 
reconstruction in speak.v/speak.c, while my output mapping targets the 
SC-01A, which is later than the Votrax hardware Bell Labs would have 
had. There is also an unavoidable mapping between different-sized 
phoneme spaces: Doug McIlroy's V6 rules on one side and the later Votrax 
inventory on the other. Any of those could account for artifacts such as 
the chopped "two."

I'm not an expert in speech synthesis. I know enough language and 
linguistics to reason about what I'm seeing, but not at the same level 
as someone who works in synthesis.

Diomidis has done work on this as well, from more of a 
reconstruction/modernization angle, and I think there's probably real 
value in comparing the two approaches and seeing where they converge. 
Mine is more naive in some respects, but independently arriving at 
similar results is useful evidence.

As for the UniBone: yes, that is exactly the sort of thought this stuff 
provokes. :)

Will


On 9/16/26 5:55 PM, Jay Logue wrote:
> This is awesome, Will.  Thanks for putting this together.  Are there 
> any plans to upstream changes to the OpenSIMH project?
>
> The speech seems a little more chopped than other Votrax output I've 
> heard (e.g. "two" sounds like "ooo").  Is that accurate for devices of 
> this era?
>
> Of course, glancing over the source tree, my mind immediately goes to 
> "How can I port the back end to run on a UniBone and drive this from 
> Mini-Unix on my 11/05?" :)
>
> Then I remind myself I have too many projects already.
>
> Jay
>
> On 9/16/26 13:19, Will Senn via TUHS wrote:
>> Hi all,
>>
>> I put up a repo on github with the full process of developing the 
>> endpoints along with a bunch or provenance and traces of the 
>> exploration. With a little bit of ingenuity and understanding and a 
>> lot of AI power directed at reverse engineering and grunt work, the 
>> result is a slight tweak to simh to provide the endpoints - one for 
>> graphics primitives over /dev/vt and the other for speech synthesis 
>> over /dev/vs. Neither is technically a device so much as an endpoint 
>> for the device byte streams interpretation (graphic commands needing 
>> to be displayed on a VT01 or speech commands - phonemes, inflections, 
>> etc needing to be "spoken" by a Votrax). OpenSIMH conveniently 
>> supplies two abstractions that make it painless - an XY plotting 
>> screen device and an SDL audio interface, both were leveraged in the 
>> work.
>>
>> My main commitment was that v6 wouldn't know or care about the 
>> implementation, it would simply run mkconf and tweak low.s (cuz vs 
>> was very special), create special devices, build speak, plot, etc. 
>> just as would have been required with the original distribution.
>>
>> Here's the summary announcement:
>>
>> https://decuser.github.io/posts/v6-basic-with-graphics-and-speak/
>>
>> And the repo:
>>
>> https://github.com/decuser/v6vtvs
>>
>>
>>
>


More information about the TUHS mailing list