Recently I finished my most recent project, a video player for the Ti-83/84+ capable of playing simultaneous audio and video. There have been several programs written to play either high-quality video or audio on the 84+, but to my knowledge this is the first program which can do both at the same time.


Example:



A command-line program is used to convert a given video into an application file to place on your calculator. Videos play at 20 fps, with 4-level greyscale plus dithering, combined with mono audio playback at 10.24 KHz from the link port.

Generated videos can be played on the 83+SE or the 84+(SE), no current support for the base 83+ or the color 84+’s. Video playback has been tested on a physical 84+ and 84+SE as well as an emulated 83+SE.
Video and Audio data is compressed so that as much can fit on a calculator as possible: The 83+SE and 84+SE can hold about one minute of video, the 84+ can hold a bit less than 20 seconds.

Like my previous video project, image compression uses a combination of RLE and LZSS. Audio compression is achieved by storing the differences between audio samples and storing 2 samples per byte whenever possible.
All playback code is written in z80 assembly. This time around the video conversion program is written in Rust, so applications should be generated in a reasonable time frame.


Windows Download: https://drive.google.com/file/d/1-vgQM2Q0RK1TjDjbLJHn0rfo96AfF1Ax/view?usp=share_link
GitHub Project: https://github.com/AdamG-13791/TI-Calc-Video-Generator


There is currently no well-defined name for this project because the one thing I’m worse at than finishing my projects is naming my projects. If anyone has good ideas, I would enjoy hearing them. And of course if there are any issues I’d like to hear those too.
Exciting! Time for me to do another “Scott the Woz on a calculator” video like I did with your old converter.
Oxiti8 wrote:
Exciting! Time for me to do another “Scott the Woz on a calculator” video like I did with your old converter.


lоl, looking forward to it!
Do you have specifications for how you are getting the audio to come across the port? (e.g. How did you get the protocol to work?)
This looks awesome! I believe I've followed the readme but I've run into an error converting a video.

OS: Windows 10 21H2
ffmpeg:
Quote:
ffmpeg version 2023-01-01-git-62da0b4a74-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)

Video: vid.mp4 ( https://1drv.ms/v/s!Al_ZukYl7Xyyr_BiDmJjjkpcUnEDSw )
Powershell output:
Quote:
PS C:\Users\Brian\Downloads\Executable\Calc-Video-Generator-Win64> ./tiVidConvert.exe -v vid.mp4 -o VID.8xk -n VIDEO
Extracting audio stream
Extracting frame rate: 30
Extracting video frames
Frames:0371/0372 Pages:16/?? Will fit on: (X) 84+ (X) 83/84+SE
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src\video\video.rs:79:38
stack backtrace:
0: 0x7ff6eab4728f - <unknown>
1: 0x7ff6eab684aa - <unknown>
2: 0x7ff6eab41dc9 - <unknown>
3: 0x7ff6eab49d7b - <unknown>
4: 0x7ff6eab499f5 - <unknown>
5: 0x7ff6eab4a329 - <unknown>
6: 0x7ff6eab4a1f2 - <unknown>
7: 0x7ff6eab47ec7 - <unknown>
8: 0x7ff6eab49f09 - <unknown>
9: 0x7ff6eab788a5 - <unknown>
10: 0x7ff6eab7874c - <unknown>
11: 0x7ff6ea995456 - <unknown>
12: 0x7ff6ea9a692a - <unknown>
13: 0x7ff6ea99b6c6 - <unknown>
14: 0x7ff6ea9aa8cc - <unknown>
15: 0x7ff6eab3ab4b - <unknown>
16: 0x7ff6ea9a6ba7 - <unknown>
17: 0x7ff6eab6fb90 - <unknown>
18: 0x7ffd361d7614 - BaseThreadInitThunk
19: 0x7ffd379826a1 - RtlUserThreadStart


Looking forward to getting this working!
Thanks for reporting! Seems the error occurred because the audio stream had finished but there was still a tiny bit of video left. The bug should be fixed now, the google drive download has been updated and I'll be getting the git-hub updated in a jiffy!

https://drive.google.com/file/d/1-vgQM2Q0RK1TjDjbLJHn0rfo96AfF1Ax/view?usp=share_link
sJRw wrote:
Do you have specifications for how you are getting the audio to come across the port? (e.g. How did you get the protocol to work?)


To my knowledge, It works essentially the same way normal headphones or speakers work, the voltage running through the wire at any given time describes the amplitude of the waveform at that specific time, and the voltage changes as the waveform needs it to. The only wrinkle is that since the I/O port is meant for... well... I/O, it can only output full high or full low. To make it able to play arbitrary audio, the port is pulled high & low really quickly, quicker than the port can fully switch between the two voltages, and thus you can fake having these in-between values. The amount of time you have it pulled high vs low determines the overall amplitude. It's kinda similar to how the greyscale is achieved on a black+white screen.
This is really cool! Great job, I'll have to give it a try myself. I loved the choice of the demo Razz
TIny_Hacker wrote:
This is really cool! Great job, I'll have to give it a try myself. I loved the choice of the demo :P


Thanks!! : )
This is quite amazing I cant wait to try this out! Very Happy
That bugfix worked! The video is quite impressive. The audio is much more clear than I expected even if it's not HiFi. I can hear my own voice and distinguish the background music so good work!

On a side note, the only music players I'm aware of for the TI-84 Plus handle midi files only. Would it be feasible to use just your audio converter to basically make an mp3 player? Without video, you might be able to fit an entire song! Laughing
I think I'm most impressed by the audio here!

Awesome stuff!
tr1p1ea wrote:
I think I'm most impressed by the audio here!


I'm glad everyone likes the audio so much, I'm quite proud of it myself. It's only sampled at ~10 KHz but the I/O port needs to be oscillated faster than that to sound convincing. Instead of oscillating for a sample twice, I interpolate between samples which might be why it seems to sound better than expected.

TheLastMillennial wrote:
On a side note, the only music players I'm aware of for the TI-84 Plus handle midi files only. Would it be feasible to use just your audio converter to basically make an mp3 player? Without video, you might be able to fit an entire song! 0x5


I know there's TruSound and Real Sound, but I don't think those use any compression. With the compression used here an entire song could probably fit, or since it would only need to keep up with audio the compression could be dialed up even more! though I'm not entirely sure how one would do that. I guess expect that project sometime in the next one to three years Smile
Where do we put rabbitsign? I keep getting "Could not find rabbitsign program" when running the windows version. I can get past that error by putting the rabbitsign folder on the root of the C:/ Drive, but it then complains that it can't find
"0104.key".

Edit: fixed it by putting the key and the rabbitsign.exe file in the same folder as the video converter executable.
Here's that sequel to the Scott the Woz on a calculator video I promised:
Wow this is amazing but can I convert just audio so I can have longer songs? Very Happy once again amazing Very Happy Smile
Invalid_Jake wrote:
Wow this is amazing but can I convert just audio so I can have longer songs?

Not at the moment. Perhaps if you made a video that was just audio with a blank screen the image portion would compress enough to fit maybe 2 minutes of audio? But no support for just inputting an audio file right now.
Sorry for wrong topic post!
I have tried the following command and got the following error:

Quote:

C:\CalcVidsGen>tiVidConvert.exe -v djocalc.mp4 -o DJO32BR -n DJO32Bit
Extracting audio stream
Extracting frame rate: Error: Error extracting framerate: program not found
I tried putting the Rabbitsign folder content in the same folder as tiVidConvert.exe with the key and video file, and still got the same error.
DJ Omnimaga wrote:
Sorry for wrong topic post!
I have tried the following command and got the following error:

Quote:

C:\CalcVidsGen>tiVidConvert.exe -v djocalc.mp4 -o DJO32BR -n DJO32Bit
Extracting audio stream
Extracting frame rate: Error: Error extracting framerate: program not found
I tried putting the Rabbitsign folder content in the same folder as tiVidConvert.exe with the key and video file, and still got the same error.


That's not an issue with Rabbitsign, it's trying and failing to run ffprobe to get the video's framerate. That comes after extracting the audio stream so ffmpeg itself is correctly installed, it's purely an issue with ffprobe. My bad with the misleading error message, I guess I expected ffprobe to always be installed alongside ffmpeg. Make sure ffprobe is present in the same folder as ffmpeg and if you can't find it try reinstalling ffmpeg.
I think the copy of ffmpeg and ffprobe I downloaded (from Audacity's web page) is a dud, then, because I did the above and I still get the same error.

Is there a web link in particular where I can download a functional version of ffmpeg that was not tampered with?


EDIT I took the risk of trying a different mirror and I think I am getting somewhere, but still getting an error despite rabbitsign being present:

Quote:
C:\CalcVidsGen>tiVidConvert.exe -v djocalc.mp4 -s 600 -d 600 -o DEST -n Dest
Extracting audio stream
Extracting frame rate: 25
Extracting video frames
Frames:0600/0600 Pages:36/36 Will fit on: ( ) 84+ (X) 83/84+SE

Finished converting app
Avg. Img Frame Size: 605
Avg. Aud Frame Size: 325
Avg. Frame Cycles: 97457
Error: The system cannot find the file specified. (os error 2): Could not find rabbitsign program, double-check installation instructions


EDIT: I moved the files back to where they were when I downloaded the calc vid converter and still got an error. However, I decided afterward to just put two copies of the key, Rabbitsign and other files in both CalcVidsGen and CalcVidsGen/rabbitsign and it finally worked! Do you know why I need two copies of everything?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement