19

To improve "authenticity" of a mainframe simulator and for an additional nostalgic effect, I'd like to add sounds of a line printer to it. They should be similar enough to the original sounds for people to recognize familiar cadences of standard headers and/or footers of printouts. Before I attempt to write my own, I'd like to try and find an existing one; I'm unlikely the first person who'd want something like that.

Unfortunately, searches for "line printer sound simulator" return nothing of relevance; a few printer sound effects in the form of MP3 files at best.

Does anyone know of an open source mainframe simulator with line printer sound? I have a drum printer in mind, but a chain printer sound simulator would do as well.

Leo B.
  • 19,082
  • 5
  • 49
  • 141
  • 9
    You'll need a good amp and speakers to make it truly authentic. Chain printers were loud! Nice question, by the way. – Wayne Conrad Dec 11 '18 at 21:48
  • 1
    @WayneConrad That's granted; but first I'd like to be able to get the right frequencies and timings. – Leo B. Dec 11 '18 at 22:01
  • @WayneConrad They wheren't that loud - at least not within an anyway extreme loud base level of a machine room. – Raffzahn Dec 11 '18 at 22:09
  • @LeoB. That will be hard, as the frequencies do very much depend not only on the exact model, but also the text printed in relation to the chain fited - or more exact the sequence and number of the links used. You'll realy get quite different sounds from a printer by exchangeing the chain. – Raffzahn Dec 11 '18 at 22:13
  • @Raffzahn Naturally, the simulator will have to be configurable; that's, actually, the easiest part. – Leo B. Dec 11 '18 at 22:18
  • LOL. yeah? Did you ever have to fir a chain? I had to. There are countless variations.Good luck. – Raffzahn Dec 11 '18 at 22:20
  • Well, or thinking of it, it may as well be possible. It woudl need an exact simulation of the chain moving based on the links fited and their glyphs plus hammers fireing and all with the right timing. This would give the basic points where a sound is to be inserted. Then next to any base sound could be used and filtered. – Raffzahn Dec 11 '18 at 22:25
  • @Raffzahn That's the idea; and for a drum printer it would be similar or even simpler; I'm surprised that no one has done that before. – Leo B. Dec 11 '18 at 22:30
  • Well, drum printer also had variation, but yes, they are way more simple. – Raffzahn Dec 11 '18 at 23:01
  • 1
    @Dougie If I'm to write a simulator (which I'd like to avoid doing from scratch, hence my question), I'll need a sample of exactly one hammer firing. A generic sound of a printer printing something won't do. – Leo B. Dec 11 '18 at 23:47
  • 3
    Go and ask the folks at the Californian Computer Museum. They've got a working 1403. http://www.computerhistory.org/ – Dougie Dec 11 '18 at 23:58
  • 3
    @Raffzahn some where quite loud my NL printer had guaranteed 95dB noise from the manufactor ... It was nearly impossible to stay in the same room during printing ... – Spektre Dec 12 '18 at 09:09
  • @Dougie: If the owners of that printer were to install a chain that simply contains the same sequence of characters five times, I wonder if it would be possible to write a FORTRAN program to Rick-roll them? – supercat Dec 14 '18 at 17:05
  • @supercat you could probably do it with the carriage control punched card and a program that has skip to channel 1, skip to channel 2, skip to channel 3, etc.. The 3211 was just a 1403 with a program forms control buffer (FCB). skip to channel 12 was normally a page throw. It's more than 24 years since I've seen a 3211 printer. I did more stuff with 3800 and 3900 printers. – Dougie Dec 14 '18 at 20:47
  • @Dougie: If one figures a target of ten lines/second for audio production, and each line takes two cards, then a one-minute song would be 1200 cards. That's a pretty significant stack. More significantly, it would be essentially impossible to adjust the timing of the music without having to repunch every card. I'd guess a FORTRAN program could play a song with under 200 cards plus a card for every 25 notes or so. Much more efficient. – supercat Dec 14 '18 at 20:59
  • You can get a sample of a 1403 hammering away, with the hood up on Youtube. I guess you wuld have to capture the audio, and then synthesize or just play it back. – Walter Mitty Dec 15 '18 at 11:19
  • @WalterMitty Just playing back some fixed audio is no fun; I want the sound cadence to reflect what's being printed. For example, on a drum printer the difference between numbers and text can be heard. – Leo B. Dec 17 '18 at 01:32
  • You are right. A recorded sound is not a simulator. But it might be a place to start. – Walter Mitty Dec 17 '18 at 01:49
  • Btw, there's an ancient tech legend about a guy who discovered a character stream that would cause all the hammers of a chain printer to bang simultaneously. It sounded like a malfunction. – Walter Mitty Dec 17 '18 at 01:52
  • 1
    @WalterMitty I've learned that the hammers and the chain of a chain printer formed a "vernier", so there was no way to make all of them bang really simultaneously; however, a character sequence triggering hammers at several consecutive alignment events could exist. What a mess! Simulating a drum printer should be much simpler. – Leo B. Jan 13 '19 at 07:48
  • Maybe the hacker defeated the vernier. Maybe it's just a myth. – Walter Mitty Jan 13 '19 at 13:54
  • So your intent is to simulate the printing of specific text sequences? It's not at all clear from the question. It seems like a generic recording of a printer, as suggested by at least one answer, would provide the ambiance you're looking for. – Mark Ransom Apr 22 '23 at 12:55
  • @MarkRansom The ideawas to synthesize the sound based on the text being printed, so that for example, the sound of printing job titles in large letters, or of page separator lines, would be close enough to the corresponding original sounds. – Leo B. Apr 25 '23 at 21:26

4 Answers4

6

Not a line printer, but there's an interactive Teletype ASR33 terminal simulator that I have extended to include sound.

https://github.com/hughpyle/ttyemu

The strategy for reproducing a realistic sound here was: to record four sets of audio, and crossfade between them depending on the characters being printed. The four sets are: A full line of spaces, with the lid up; spaces, lid down; printing characters, lid up; printing characters, lid down. (There are several additional sounds for effects such as keypress, lifting or dropping the lid and turning the machine on and off). This seems to work pretty well both for typing input and for printed output.

The software packaging isn't very user-friendly (sorry!) but I think the results are quite realistic and a lot of fun.

Hugh Pyle
  • 69
  • 1
  • 1
6

Well, having a separate sound file will be a challenge. beside the fact, that you'll always get the way louder base level of a computer room with it, it also depends a lot on the type and model of line printer. Equally important, the sound isn't much impressive as long as the cover is closed - yes, it did make a huge difference.

Maybe try this video The IBM 1401 mainframe runs "Edith".

Beside several printouts (sorry, always covered) including two very similar spaced but with different amount of characters printed, which is relevant for the specific noise, it also gives impression of basic sound level as well as card readers and keypunch in 'DUP' mode

Here are more, this time showing the printer without cover, but different cameras and different loudness setting. Not the basic noise the chain i making when the printer is in ready to print.

I think it would be a good idea to take a look at the 1403 printer manuals as they not only provide basic estimations about printing time for a line, but also take form advance according to form control into account - plus describing the allowed processing time for the CPU to feed the next line. A perfect line printer emulation would also have to include this part. This includes as well the I/O load on a given channel - don't we all remember printers having hiccups on machines with too many devices on a channel, just because the owner didn't want to buy more?

Raffzahn
  • 222,541
  • 22
  • 631
  • 918
  • That'll be hard as the souds aren't that simple. Frequency mix changes a lot between cover closed and open, even depending on the side you stand. Also hammer cadence is not only different depending on the text printed, but more so on the chain used and within that the sequence of links on the chain - keep in mind, companies rarely used standard chains. They Chains where fited to support the main documents printed. Like having only a single set of lettrs anall the rest filled with repeated numbers when they usually printed more numbers than letters and so on. – Raffzahn Dec 11 '18 at 22:18
  • @manassehkatz LINE PRINTERS? The real ones, chain or drum or bar? Serious? – Raffzahn Dec 11 '18 at 23:02
  • There were terminal rooms scattered around campus. 1/2 were from the CS department in the hard sciences (CS, Math, Physics, Chemistry, etc.) and the other 1/2 were under jurisdiction of the Behavioral and Social Sciences division. I was a first aider for that group (even though I was a CS major - they were happy to have me and it was convenient to other parts of campus where I spent the rest of my time (except for CS classes)). I definitely remember two rooms (one was Architecture, the other I can't remember) with line printers. It was a big deal when they got an IBM continuous feed laser... – manassehkatz-Moving 2 Codidact Dec 11 '18 at 23:16
  • Well, then I'm not sure what they were. But they were not dot-matrix (I used a Printronix dot-matrix-line-printer in a summer internship - another interesting story - but these were definitely fully formed characters). Probably 2 - 3 feet on a side, 3 - 4 feet tall. Big but not huge. – manassehkatz-Moving 2 Codidact Dec 12 '18 at 01:35
  • Hmm, during the 80s several companies offered band printers. They are muh like chain printers, but instead of a chain a flexible metal band with types moved along and like with chain printers hammer did push paper against the band. They where usually slower than chain printers and thus comparably quiet - smaler ones would quite well fit your size description - like the Dataproducts B600 (also sold under many names as OEM). – Raffzahn Dec 12 '18 at 02:10
  • Agreed. Band printer it is (or was). But that is still, IMHO, in the "line printer" category. – manassehkatz-Moving 2 Codidact Dec 12 '18 at 02:37
  • @manassehkatz you're right. I was too much focused on the chain based line printers the question was about - also, as one operating the mainframe, these riny remote printers never realy made it high on my personal scale - please excuse my arrogance:))) – Raffzahn Dec 12 '18 at 03:54
  • Well, to me those were the mainframe printers. Probably not as fast, but if I wasn't at the CS end of campus, they were a lot more convenient. – manassehkatz-Moving 2 Codidact Dec 12 '18 at 04:01
  • @Raffzahn: Not all chain printers were that size. I would expect that older printers would have required rather complicated and bulky electronics to effectively handle the logic for dozens of hammers in parallel), but chain printers would have remained the best high-volume devices available for quite awhile after the required electronics became much smaller. If the hammer drive transistors were mounted near the hammers, the rest of the control electronics could have fit on an Apple ][ expansion card if the main CPU were devoted to controlling printer functions. – supercat Dec 12 '18 at 23:49
  • @supercat It would be great, if you just not 'suspect' but deliver references. Part of my first job during apprenticeship was printer maintenance. And even back in the 70s and for mainframe printers of the described size power transistors handling he hammer coils where already mounted below and along the hammer bank it's just the most logical location. And while they did shrink a bit over the years, it wasn't much - they always kept the upper end in performance. Band printers instead where a small low cost alternative - heck, there where even some with moveable hammer banks to save on hardware – Raffzahn Dec 13 '18 at 00:15
  • @Raffzahn: In the days before integrated circuits, I would expect the circuitry required to determine when hammers should fire would have been rather large and complicated. I can think of a variety of approaches, but all would have been rather complicated and bulky. If the chain has 256 characters on it, using 256 bits for each column to keep track of when each hammer should fire would be fairly simple in 1980s technology, but I would guess that in 1950s or 1960s technology it would have been easier to use an 8-bit latch and comparator for each column. – supercat Dec 13 '18 at 03:25
  • @Raffzahn: Perhaps the units I saw that seemed a bit smaller were band printers rather than chain printers, but they were still pretty zippy. I'm genuinely curious about how the controllers on things were designed. If operators were customizing chains, there must have been some procedure for configuring the electronics to fire things at the right time. Could chains be sequenced arbitrarily, or did placement have to follow certain rules (e.g. if a chain has 256 links, have a character-mapping table which can regard the top 1, 2, or 3 bits of the chain position as 'don't care' for symbols... – supercat Dec 13 '18 at 03:28
  • ...which appear 2, 4, or 8 times equally spaced on the chain)? – supercat Dec 13 '18 at 03:29
  • @supercat on a 1403 Model N1 (the fastest - up to 1500 lpm - that's >25 fully printed pages per minute, more if feedsare used - take that small printer) the chain (more correct train, as it was a train printer) was made up of 80 slugs with 3 glyphs each. They could be aranged in any fashion and sequence. Their value was to be loaded into a similar sized core memory with its content advanced as the train moved along. each position was then in turn compared to the 136 byte line storage (they are line printers thus block devices) and all hammers with equal codes at their position fired. – Raffzahn Dec 13 '18 at 09:30
  • @LeoB. Added link to 1403 manuals - might be helpful with their timing diagrams. – Raffzahn Dec 13 '18 at 09:37
  • @Raffzahn: Were there 136 separate comparison units that checked data as it cycled through stages of a core-based shift register? I didn't see any electrical schematics at those links, but that would seem like it could have been a good way to do things in a tolerable amount of space. BTW, I hadn't realized that the paper feed was controlled hydraulically. Was hydraulic switching considered more reliable than high-power electrical switching? – supercat Dec 13 '18 at 16:30
  • @supercat No, it was kind of a 'program' that looped over the data. Kinda as it wasn't realy a programm, more of a sequential logic. And hydraulic was just faster and more powerful than an electro motor would have. Other (later) manufacturers had electro motors to do so, engaged by an electric controlled clutch. With all thefun of replaceing the clutch every now and then due wear. – Raffzahn Dec 13 '18 at 18:46
  • Comments are not for extended discussion; this conversation has been moved to chat. – Chenmunka Dec 13 '18 at 21:39
5

Not a simulator as such, but the BBC has just released an archive of its sound effects library which contains a couple of "line printer" recordings.

Explore http://bbcsfx.acropolis.org.uk/?q=printer

Try the two tracks labeled "General computer room atmosphere with printer in foreground" - one on the first page of the list, the other on the second.

To quote from the web page, "The Sound Effects are BBC copyright, but they may be used for personal, educational or research purposes..."

alephzero
  • 6,646
  • 3
  • 29
  • 34
  • Generic recorded sound effects are definitely NOT what I'm looking for. If you think that it is not obvious from the wording of the question, please suggest an edit. – Leo B. Dec 13 '18 at 00:12
  • 3
    When you have failed to find one and need to write your own, some professional quality recordings would be a better place to start than the average crappy mp3 file. But feel free to ignore it if you think I'm not functionally literate enough to understand your questions. – alephzero Dec 13 '18 at 02:02
  • @LeoB. I guess for a reasonably close sound experience, you will need at least some real samples to start from. – tofro Dec 13 '18 at 08:07
  • @tofro Real samples would be needed not to start from, but close to the end of the project; and only very specific ones, like one hammer striking, a few hammers striking, a dozen hammers striking, etc. so that I'll be able to create waveforms by combining them. The sound of some arbitrary printer printing arbitrary something would be of no use. – Leo B. Dec 14 '18 at 01:41
  • @LeoB. With today's sound editing software, it's pretty easy to extract "one hammer striking" from "arbitrary printer sound". – tofro Dec 14 '18 at 07:25
  • @tofro How would you know when exactly one hammer is striking if you don't know what was being printed? – Leo B. Dec 14 '18 at 17:29
  • You should see that in, e.g. Audacity as two (or more) close peaks. The hammers never strike absolutely synchronous. Just pick the parts of the sample you need. – tofro Dec 14 '18 at 17:44
  • @LeoB.: If one prints 132 lines, each of which is blank except for a + in the carriage-control position and a single @ character which is in column 132 on the first line, 131 of the second, etc. , the result should be a slow sequence of hammer strikes--either two or five for each revolution of the chain depending upon how characters are arranged thereon, with no sounds of paper movement. – supercat Dec 18 '18 at 22:23
1

The dominant sound from a line printer is likely to be that of hammers firing. If one has something close to the sound of a single hammer firing, and plays that sound with the proper timing, that would probably give a pretty good overall impression of the printer's sound. To determine when hammers fire, identify the spacing of characters around the chain, figure out where the chain will be when the paper arrives in position to print a line, figure out which character on the chain will be the next one eligible for printing each column, and then figure out how far that character will have to move to get into position. Once one determines the maximum time required for a character to get into position, that will indicate when the carriage mechanism can start advancing to the next line. Based upon the character control character (distance to advance) one can figure out how much further the chain will move while the paper is advancing and where the chain will be when it gets there.

Getting a clean recording of a hammer-strike sounds might be a little tough, but perhaps not too bad if it would be possible to temporarily disconnect a hammer from its associated electronics and operate it directly from a charged capacitor while everything else was switched off. Alternatively, one may be able to find something that sounds close and tweak the sound suitably. Depending upon what the simulator is for, the cadence of the hammers may be more important than the exact impulse response of each hammer strike.

supercat
  • 35,993
  • 3
  • 63
  • 159