HAL 9000 - beyond the face plate

It's been a while...
Quite some progress has been made on the programming - but this takes time, and the single steps can not easily be captured.
My pod bay HAL is supposed to display the iconic computer screens from the movie, the static ones and the animated ones. There are basically two ways how this could be achieved: either by playing movie files, or by rendering them in real-time.
Such video files already exist in fantastic quality, published by "the HAL project" on youtube. These videos have exceptional quality, and they are incredibly close to the movie and just recently they have been updated to 4k quality. The HAL project also provides a playlist with videos of all individual screens. These could be used to play them in random order (which I find necessary to keep my prop unpredictable). The only technical problem might be that the Raspberry Pi may have trouble to play the videos without noticeable transitions.
On the other hand, I really like to customize things. My pod bay HAL (like all my other SciFi computers) will get a tea timer. It will also feature an alarm clock and connect to my Google calendar to display upcoming events. And at some point, I may use the camera for face recognition. And I want to display the output for all of these things as additional HAL-inspired screens. Therefore, I decided to go the second path, writing computer code to render the screens from scratch, and in real time.
The inspiration for this came from user Zapwizard and his Pipboy project. He uses the pygame module for python to produce beautiful graphics and animations with plenty of functions (like internet radio - which, at some point, could also become a nice add-on for my HAL).
With this in mind, I started my pygame-based python code which I call "hal9000lib".
I started with a first attempt which displayed the static three-letter screens. Then I thought of Karl Tate's beautiful work: If my code can display the screens once, it could also display them multiple times. This way, one could use a larger computer monitor to display the six or eight screens of the larger HAL consoles - eventually this could be used for a multi-monitor setup, like Karl's.
While I am currently restructuring my code for this to become possible, I want to share here a first image with one of the iconic three-letter screens.
20210905_173332ed.jpg

It looks a little better in real life, where the black background of the screen blends better into the black color of the case.
 
I forgot which Raspberry Pi you said you were using. I'm using a 3B+ and found that mp3 audio files play noticeably slower when using Pygame. I switched to Omxplayer for both audio and video and everything is playing as it should.
 
I forgot which Raspberry Pi you said you were using. I'm using a 3B+ and found that mp3 audio files play noticeably slower when using Pygame. I switched to Omxplayer for both audio and video and everything is playing as it should.
I am also using a 3B+. I have not yet connected the sound yet, but I read that pygame works with .ogg and .wav (.mp3 is not mentioned): pygame.mixer — pygame v2.0.1.dev1 documentation
Here it states explicitly that mp3 support is limited: pygame.mixer.music — pygame v2.0.1.dev1 documentation
 
I am also using a 3B+. I have not yet connected the sound yet, but I read that pygame works with .ogg and .wav (.mp3 is not mentioned): pygame.mixer — pygame v2.0.1.dev1 documentation
Here it states explicitly that mp3 support is limited: pygame.mixer.music — pygame v2.0.1.dev1 documentation
Omxplayer works great with the mp3 files that someone from here posted on Github. HAL9000/sounds at master · mawob/HAL9000

It also plays mp4 videos flawlessly. Pygame played the mp3 files without problem on my Windows machine that I used for development, but when used on the Rpi 3B+ the sound was slowed down a bit and sounded draggy. I'm not sure why you would want to use Pygame which has a much higher memory/cpu cost than Omxplayer. Also, the mp3 files on that GitHub link are of great quality and well documented. You would have to convert them to wav files if you can't get them to play properly with Pygame. Just my two cents.
 
Omxplayer works great with the mp3 files that someone from here posted on Github. HAL9000/sounds at master · mawob/HAL9000

It also plays mp4 videos flawlessly. Pygame played the mp3 files without problem on my Windows machine that I used for development, but when used on the Rpi 3B+ the sound was slowed down a bit and sounded draggy. I'm not sure why you would want to use Pygame which has a much higher memory/cpu cost than Omxplayer. Also, the mp3 files on that GitHub link are of great quality and well documented. You would have to convert them to wav files if you can't get them to play properly with Pygame. Just my two cents.
That "someone" on github was me :D
Thank you for the compliment regarding the quality. It was quite some effort, to cut, normalize, and fade-in&out all of the 96 files, so it's good to hear that others can use these too.
Of course, I still have the original .wav files, so I can use these to produce .ogg files, if needed - or just use the .wav files in the project.
I am using Pygame to create all the screens for my HAL unit. Therefore, it would be natural also to play the sounds from inside Pygame. If this does not work or if it is not efficient, I could use "subprocess.Popen()" to call an external player.
That's what I did with my GERTY 3000 replica (which is also controlled by a RPi3B+). There, I called "aplay" for sound files (also in .wav format) and omxplayer to play .mp4 video files. But when I built GERTY, I was still new to Python programming, and the overall structure of my code is rather poor (but it works - so, I don't touch it).
 
That "someone" on github was me :D
Thank you for the compliment regarding the quality. It was quite some effort, to cut, normalize, and fade-in&out all of the 96 files, so it's good to hear that others can use these too.
Of course, I still have the original .wav files, so I can use these to produce .ogg files, if needed - or just use the .wav files in the project.
I am using Pygame to create all the screens for my HAL unit. Therefore, it would be natural also to play the sounds from inside Pygame. If this does not work or if it is not efficient, I could use "subprocess.Popen()" to call an external player.
That's what I did with my GERTY 3000 replica (which is also controlled by a RPi3B+). There, I called "aplay" for sound files (also in .wav format) and omxplayer to play .mp4 video files. But when I built GERTY, I was still new to Python programming, and the overall structure of my code is rather poor (but it works - so, I don't touch it).
The sound files you posted are fantastic! Many thanks and I'm definitely red-faced at the moment. I'm using OpenShot video editor (on Windows) to combine the screens and audio. If you want to give Omxplayer a try:

sudo apt-get install omxplayer

to use from the command line:
omxplayer -o local <filename> (for output to the 3.5mm jack)
or
omxplayer -o hdmi <filename> (for output to the monitor)

From within a python script:
from subprocess import Popen
omxp = Popen(['omxplayer', '-o', 'local', filename])
 
Someone did it! They built the whole bench from the pod bay room around the HAL console. This is incredible.
It's three years old, but I have not seen it before.

.

They also show screen captures from therpf.com that they used for the faceplate.
There is just one detail that I can't ignore...
What a huge effort this was. They even got the original Nikkor lens. They added the big speakers on the side of the bench. But then, they got the screen wrong. They have it in portrait mode - instead of just cutting a rectangular opening into the front plate.
So close to perfection :confused:
 
Someone did it! They built the whole bench from the pod bay room around the HAL console. This is incredible.
It's three years old, but I have not seen it before.


They also show screen captures from therpf.com that they used for the faceplate.
There is just one detail that I can't ignore...
What a huge effort this was. They even got the original Nikkor lens. They added the big speakers on the side of the bench. But then, they got the screen wrong. They have it in portrait mode - instead of just cutting a rectangular opening into the front plate.
So close to perfection :confused:
I'm planning on a similar panel (not the whole bench) and will be using a recycled 13 inch laptop screen. It will be in portrait mode but I'm editing video so that the screen will appear to be two monitors, one above the other.
 
I'm planning on a similar panel (not the whole bench) and will be using a recycled 13 inch laptop screen. It will be in portrait mode but I'm editing video so that the screen will appear to be two monitors, one above the other.
I'm looking forward to seeing that!
 
While the RaspberryPi programming is in progress (...slowly), I just remembered that I still need to finish the back side.
The original has a huge sticker, with a white boundary and a blue vertical column.
hal-podbay-back.jpg

From the BluRay capture, it is impossible to see what it says, so I make something up.
my-final-hal-logo-ed.jpg
20211002_125443.jpg

Since I need plenty of space for the vents, mine is simply printed on 4"x6" glossy photo paper and it will sit in the center.
Then I add the slits to the back plates, paint these, and add the label.
20211003_164059.jpg

The opening in the bottom left corner is for the volume control - I totally forgot that during my planning.
 
Sometimes, the topic comes up, how to obtain new voice samples in HAL's/Douglas Rain's voice.
This here would do the job:
VALL-E
It requires only three seconds of a reference sample, based on which it can synthesize arbitrary text into spoken voice.
... although using this for other people's voice would violate their ethics statement at the bottom.
 

Your message may be considered spam for the following reasons:

If you wish to reply despite these issues, check the box below before replying.
Be aware that malicious compliance may result in more severe penalties.
Back
Top