HAL 9000 - beyond the face plate

Don't want to see this ad? Sign up for anRPF Premium Membershiptoday. Support the community. Stop the ads.


Don't want to see this ad? Sign up for anRPF Premium Membershiptoday. Support the community. Stop the ads.

Markus

Sr Member
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.
 

wyovino

New Member
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.
 

Don't want to see this ad? Sign up for anRPF Premium Membershiptoday. Support the community. Stop the ads.

Markus

Sr Member
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
 

wyovino

New Member
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.
 

Markus

Sr Member
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).
 

wyovino

New Member
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])
 

Markus

Sr Member
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:
 

Don't want to see this ad? Sign up for anRPF Premium Membershiptoday. Support the community. Stop the ads.

wyovino

New Member
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.
 

Markus

Sr Member
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!
 

Your message may be considered spam for the following reasons:

  1. Your new thread title is very short, and likely is unhelpful.
  2. Your reply is very short and likely does not add anything to the thread.
  3. Your reply is very long and likely does not add anything to the thread.
  4. It is very likely that it does not need any further discussion and thus bumping it serves no purpose.
  5. Your message is mostly quotes or spoilers.
  6. Your reply has occurred very quickly after a previous reply and likely does not add anything to the thread.
  7. This thread is locked.

Don't want to see this ad? Sign up for anRPF Premium Membershiptoday. Support the community. Stop the ads.

Top