One dither you could try would be a simple error propagation You start a line probably with something like 50%. If the first pixel is brighter than that 50%, you set white (100) otherwise black (0). Now subtract what you used from what you were seeking and that is the next value to compare against. Continue this across the line.This makes text illegible but grayscale pictures translate quite well. By removing randomness, you'll keep the same output for (some) static parts of the screen. I found that random combined with error propagation gave the most "accurate" representation of the original image but simple error propagation gave a more "clean" looking image at the loss of a little fidelity. (this was for printing images to a black and white thermal printer).
The whole intro from 0:00 to 0:25 is an absolutely AMAZING joke/reference that I feel almost nobody got. _I just wish it wasn't true..._ EDIT: As of [May 17th, 2022 9:04 PM PST] 0 to 2 out of 466 comments have gotten the joke, excluding me. Yes, I checked *_all_* of them.
i really really really liked this, great idea man, wish i could buy it, id use it for a league of legends timer, most likely:P anyhow i loved the music box that you had made!!! wow!!
love how in the middle of the project I thought "I wonder if it can run DOOM" and then you did it. I've never been so satisfied by such an awful thing lol.
I've worked on optimizing serial displays, and I think I see your problem. I think you are sending a lot of overhead with each write. i2c works by sending and address, a command, and data for that command. If you are only writing a single byte at a time, 2/3s of the transmission is completely unrelated to what you actually want to display. Instead of only changing the bits that change per frame, store a frame buffer on the computer's side, and write to the entire display at once. That would change it so that only 2/1027 bytes are overhead, and that should give a decent speed increase.
@@gorgpflug6087 I'm not talking about changing the i2c transmission speed, I'm talking about increasing the goodput(ratio of relevant data to irrelevant data) of the bus.
@@andreameparishvili5468 the i2c frequency isn't just an arbitrary limit, it's the maximum that mixtela's computer can output through the HDMI connection.
This is beautiful: the presentation, mesmerising machining, minimal and quirky narration, and the level of effort to create something totally and wonderfully useless.
Not gonna lie, I actually got emotional hearing and seeing bad apple show up here. Its such a cultural touchstone for so many people and touhou music became such a big part of my life for so many years. Overall it just fills me with joy seeing it used for demonstration purposes. I'm sure the music being in a music box rendition didn't help with the emotions I was feeling either, feeling like the perfect allegory for plunging deep into memory.
Try blue noise comparison (static) instead of Floyd Steinberg to dither. You can also try 3D blue noise or Nvidia precomputed spatiotemporal blue noise, but given low frame rate, I think static would work better. The problem is that the movement in the dither is obscuring the movement in the picture. With a static dither, maybe you'll be more successful with partial screen updates.
this seems like a good idea, but would probably need something more, to be worth making a new video about, and given how at first this was like april fools video, and then he made a cool case for it, then now what, fix the dither and...what, use another of those screens, to make a micro model computer with functional screen?
@@jan_harald Oh I do believe mitxela could figure this out! You're right that it doesn't look easy to build a video about, at a glance. However, I didn't expect this one, either =D What I would do personally is "here how the code was massively improved" - there's def some things that can be added, including partial refreshes (look up micropython SH1106 driver for simple page-based example) to increase FPS. In addition to that... 128x128 could be done with two displays, I suppose! But, AFAIU, mitxela's videos aren't software-focused typically? so I'd understand if this were to be left as exercise to the reader.
@@AryaFairywren didn't he just specifically talk about how he made it only send the updates to the screen? both at one point, and then demoing it at the end, how if only the mouse moved, it worked just fine? and rather than bigger resolution, I'd rather take lower resolution over bigger screen size, to make it more legible, lol, right now it's basically just tiny noise, even at a terminal prompt
This and the MIDI synth plug he might wind up with the smallest fully functional recording studio in the world Sometimes I forget that he's a musician.
im neither a musician or an engineer but i could convince you i was both given a few minutes of time, my skill set is veeeeeeeeeeery diverse and i am the guy people call to repair THEIR setups
I dont know if you can change that, but if the dithering is slowing down the performance, maybe switching to indexed dithering would help. Floyd-Steinberg dithering is acumulating data in an iterative way, while indexed or lookup dithering is done per pixel and way faster. as a bonus you would get a nice retro pixel art vibe
Also if you need it for any future projects feel free to use my video edit of bad apple specifically designed for these displays: ruclips.net/video/7XijCqWb5TI/видео.html
I think it would have been better if you use a 128x128 display. In any case, I wonder what would happen if you made a game that runs on a native 128x64 resolution. I want to see that.
For the next generation, you can just do what nVidia did, add frame interpolation to the driver, claim it now runs at "twice the FPS", and double the price. Or get one step ahead of them and do what I'm sure they will for the _next_ generation: add _three_ interpolated frames between real ones and claim it runs at four times the FPS.
Dunno what the hell I just watched, but it's earned you a sub. That's a work of art. It might not be much use for playing DOOM, but it works quite nicely for the video of Bad Apple.
What would make this even cooler is if the screen was amber, like a few old school monitors are, but I'm not sure if anyone manufactures small screens in this color...
The proper way to use that style knurling tool is to pinch your part between rollers, using the screw to apply pressure. Doing so puts almost no load on the lathe itself, and therefore won't damage it. A lathe is not really meant to take heavy loads in the direction that a pressed knurling tool generates.
You should start selling those milled brass connectors to audiophool cable companies. Of course they'd use epoxy to discourage disassembly and reverse engineering of a cable that isn't anything special.
I have not seen a music box mech like that before. With the rotating strikers it looks as though you can actually adjust the sustain of each note by varying the rotation speed. Wicked!
I was so happy when you played bad apple on it. Even more when you busted out the midi music box. 11/10 mate.
Another amazing Bad Apple rendering
OMG YESSSS 15:45 you have no idea how psyched I am to see Bad Apple on this
One dither you could try would be a simple error propagation You start a line probably with something like 50%. If the first pixel is brighter than that 50%, you set white (100) otherwise black (0). Now subtract what you used from what you were seeking and that is the next value to compare against. Continue this across the line.This makes text illegible but grayscale pictures translate quite well. By removing randomness, you'll keep the same output for (some) static parts of the screen. I found that random combined with error propagation gave the most "accurate" representation of the original image but simple error propagation gave a more "clean" looking image at the loss of a little fidelity. (this was for printing images to a black and white thermal printer).
I absolutely love the music at ~7 minutes in
The whole intro from 0:00 to 0:25 is an absolutely AMAZING joke/reference that I feel almost nobody got. _I just wish it wasn't true..._
EDIT: As of [May 17th, 2022 9:04 PM PST] 0 to 2 out of 466 comments have gotten the joke, excluding me.
Yes, I checked *_all_* of them.
Atrocious rendering of Doom aside this is another most precious beautiful little thing you built there. Thank you for showing us!
Best video out there!! Love the music box !
Don't know quite why youtube decided I need to see this, but it's fecking brilliant! 😁
its like the screen from that playing doom on a pregnancy test video
i really really really liked this, great idea man, wish i could buy it, id use it for a league of legends timer, most likely:P anyhow i loved the music box that you had made!!! wow!!
People werent kidding when they said yall can play bad apple on ANYTHING with a screen
Never have I seen something so beautiful yet so unnecessary
so much work for something so useless i can appreciate it thumbs up and subbed
Very jealous of that mill!
I can't wait to play doom on this
When you are trying to tell them just how much of a nerd you really are then you figure out how to nail it.
Now do a speedrun of Doom on your display
love how in the middle of the project I thought "I wonder if it can run DOOM" and then you did it. I've never been so satisfied by such an awful thing lol.
I’m still trying to find the music from the build and the song at the end displaying the screen
It was very cool.
I've worked on optimizing serial displays, and I think I see your problem. I think you are sending a lot of overhead with each write. i2c works by sending and address, a command, and data for that command. If you are only writing a single byte at a time, 2/3s of the transmission is completely unrelated to what you actually want to display. Instead of only changing the bits that change per frame, store a frame buffer on the computer's side, and write to the entire display at once. That would change it so that only 2/1027 bytes are overhead, and that should give a decent speed increase.
the ssd1306 has no problem with i2c running at about 1mhz....
@@gorgpflug6087 I'm not talking about changing the i2c transmission speed, I'm talking about increasing the goodput(ratio of relevant data to irrelevant data) of the bus.
I like your funny words, magic man.
well yeah but as @Görg Pflug mensiond 1darn mhz sooo what u writen there was unneeded
@@andreameparishvili5468 the i2c frequency isn't just an arbitrary limit, it's the maximum that mixtela's computer can output through the HDMI connection.
From the department of “but why would you do this?” comes another amazing creation.
Thanks.
Could not have said it better!
This is beautiful: the presentation, mesmerising machining, minimal and quirky narration, and the level of effort to create something totally and wonderfully useless.
But hey... It runs doom
Art is never useless.
The only thing you can make is s - h - i - t
don't forget about the hot glue
I really enjoyed the obligatory Doom on a tiny screen as demo of it's capabilities.
Kudos using every single bit of tools you have.
That i2c abuse is one of the best backwards uses of a technology I've ever seen. Kudos.
that's DDC
@@nneeerrrd For what it's worth, DDC2B uses the I2C protocol.
would have used SPI, might actually have a decent bandwith and the controllers supports it natively
@@Flowxing I don't think the video card can speak SPI but you're right if this were microcontroller driven
@@big0bad0brad oh I didnt know this was directly driven by the gpu, I thought there was a controller inbetween
this brings a whole new territory to those tiny oleds people use to display stats or animations on their pcs
Not gonna lie, I actually got emotional hearing and seeing bad apple show up here. Its such a cultural touchstone for so many people and touhou music became such a big part of my life for so many years.
Overall it just fills me with joy seeing it used for demonstration purposes. I'm sure the music being in a music box rendition didn't help with the emotions I was feeling either, feeling like the perfect allegory for plunging deep into memory.
Bad Apple is one of the "testing" videos, just like doom. So it shows up everywhere in tech.
what song is this?
@@NotAMachinist1024 bad apple on a music box
Try blue noise comparison (static) instead of Floyd Steinberg to dither. You can also try 3D blue noise or Nvidia precomputed spatiotemporal blue noise, but given low frame rate, I think static would work better. The problem is that the movement in the dither is obscuring the movement in the picture. With a static dither, maybe you'll be more successful with partial screen updates.
Seconded, do look into that!
this seems like a good idea, but would probably need something more, to be worth making a new video about, and given how at first this was like april fools video, and then he made a cool case for it, then now what, fix the dither and...what, use another of those screens, to make a micro model computer with functional screen?
@@jan_harald Oh I do believe mitxela could figure this out! You're right that it doesn't look easy to build a video about, at a glance. However, I didn't expect this one, either =D What I would do personally is "here how the code was massively improved" - there's def some things that can be added, including partial refreshes (look up micropython SH1106 driver for simple page-based example) to increase FPS. In addition to that... 128x128 could be done with two displays, I suppose! But, AFAIU, mitxela's videos aren't software-focused typically? so I'd understand if this were to be left as exercise to the reader.
Thank you. I was bothered that I couldn't remember the name the dither.
@@AryaFairywren didn't he just specifically talk about how he made it only send the updates to the screen? both at one point, and then demoing it at the end, how if only the mouse moved, it worked just fine?
and rather than bigger resolution, I'd rather take lower resolution over bigger screen size, to make it more legible, lol, right now it's basically just tiny noise, even at a terminal prompt
That Bad Apple bit at the end was perfect. The most useless display has a use!
If a display exists, bad apple will be played on it eventually
If M1.4 are the smallest threads you have ever tapped by hand what was the smallest you did not tapped by hand?
This and the MIDI synth plug he might wind up with the smallest fully functional recording studio in the world
Sometimes I forget that he's a musician.
I don't, but then again, Stylobend is essentially the soundtrack to my life.
Wait he was musician?
I though he was engineer
@@legarishere I have hope of leaving software engineering and becoming a musician. Music is way harder than software.
im neither a musician or an engineer but i could convince you i was both given a few minutes of time, my skill set is veeeeeeeeeeery diverse and i am the guy people call to repair THEIR setups
@@frogz ok
I swear this channel is amazing, you always learn something you didn’t know you want
I subscribed today.
Below the chrome should be a copper layer, which - when exposed - would look even more steampunk.
Have you watched junferno recently by any chance?
This man is going to end up making an hdmi LED
That's... Kinda awesome, in a terrible way. 1x1px resolution "OLED".
@@4.0.4 OLED being abbreviation of One Light Emitting Diode
wtf,..gay lol led
Its perfect.
It's
@@waldolemmer Is"t
@@a51mj12 Is'''t''n't
That's the nicest HDMI connector I've ever seen and I want one.
When that music box started playing I about fell out of my chair. Marvelous dedication to a bit, really lovely work.
What a coincidence! I was just on a binge of your old content. Great as always, keep up the good work!
What a cool project! Loved the bad apple part, keep on doing what youre doing!
I dont know if you can change that, but if the dithering is slowing down the performance, maybe switching to indexed dithering would help. Floyd-Steinberg dithering is acumulating data in an iterative way, while indexed or lookup dithering is done per pixel and way faster. as a bonus you would get a nice retro pixel art vibe
Indexed can also be readily performed on a pixel shader due to its nature.
When This Old Tony meets Marco Reps meets Wintergatan = mitxela! Excellent!!!
Someone bought a mill! Congrats! Btw, I am sure, you know how the "pinch" knurling holder should be used.
I was wondering the same thing and I figured someone would point it out
Oh my gosh. That is the most adorable display I've ever seen.
You should put a ridiculous fresnel lens in front and make it look like the screens in the movie Brazil
Legendary stuff as usual, bad apple just made this perfect
Yes, i use PoH (Power over HDMI) on my monitor.
What size? Does the hdmi have enough current?
@@309electronics5 It's just a joke about he is not connected anything except HDMI.
Well, HDMI does pass 5v so...
@@NaddlyCOnly at a measly 55mA though. Difficult to power anything much bigger than this 😅
@@oliverer3 wow, I didn't know it was that low
I can't even imagine what it's like to have so much command over software and electronics and physical items. You must feel like an absolute god.
This is absolutely stellar. This is my kinda ridiculous! It does make me want a more real gooseneck display for showing chat while I'm streaming...
Is this the start of ThisOldAlex? and well done, you made me laugh a lot with that punchline
I would add a ink-stained microscope slide in front of the screen to protect it and change it away from B/W
of all the videos to end with a touhou meme.....
Looks awesome! Though I'm surprised you didn't countersink the screws on the front.
I think this works better for the looks
@@Nate-bd8fg If steampunk is the look, the screws should be slotted
Beautiful! Lovely music and mezmerizing work. Why does this remind me of Bad Robot?
That MIDI music box rendition of Bad Apple!! was absolutely beautiful and perfectly complements the beauty of the display itself.
Also if you need it for any future projects feel free to use my video edit of bad apple specifically designed for these displays: ruclips.net/video/7XijCqWb5TI/видео.html
Bad Apple music box actually sounds good? Like it has a nostalgic feel to it.
I think it would have been better if you use a 128x128 display.
In any case, I wonder what would happen if you made a game that runs on a native 128x64 resolution. I want to see that.
in case anyone was wondering- the drums in the background track are the default club samples in FL studio
It always horrifies me how much material lathes and mills are wasting.
How is it waste ?
It's still brass, you just have to re melt it
@@bastienpabiot3678 It's probably just going in the bin, though
What a missed opportunity at the end to Rick roll us 😂😂😂
We leave you alone for five minutes and you become ClickSpring.
Seriously tho this is legendary
Nothing bad with that!
i never expected to see "steampunk" and "HDMI" in the same sentence
Always happy to see another version of Bad Apple, and always happy to see the Midi music box.
So useless and beautiful. Thank you very much, you never fail to amaze me.
You make pretty good content for someone with a default profile picture.
EDIT: YOU DID ALL THIS JUST TO RUN BAD APPLE!?!?!?!?!
AWESOME! The Bad Apple Demo at the end - That's what i wanted to see on this display from the very beginning of the movie.
For the next generation, you can just do what nVidia did, add frame interpolation to the driver, claim it now runs at "twice the FPS", and double the price.
Or get one step ahead of them and do what I'm sure they will for the _next_ generation: add _three_ interpolated frames between real ones and claim it runs at four times the FPS.
Dunno what the hell I just watched, but it's earned you a sub.
That's a work of art. It might not be much use for playing DOOM, but it works quite nicely for the video of Bad Apple.
What would make this even cooler is if the screen was amber, like a few old school monitors are, but I'm not sure if anyone manufactures small screens in this color...
When I saw doom I was like "OMG he can play bad apple on it!" then you have read this comment from the future and did it I think
The proper way to use that style knurling tool is to pinch your part between rollers, using the screw to apply pressure. Doing so puts almost no load on the lathe itself, and therefore won't damage it. A lathe is not really meant to take heavy loads in the direction that a pressed knurling tool generates.
new videos by both you and suckerpinch?! In the same month!! a mighty boon to us all. :)
This proves the internet absolut rule.
If exists, it players Doom and Bad apple.
What is the song being played by the music box at the end? It's soooo beautiful...
I love how the first thing you did with it was try to play DOOM. Subscribed!
You should start selling those milled brass connectors to audiophool cable companies. Of course they'd use epoxy to discourage disassembly and reverse engineering of a cable that isn't anything special.
Milled from solid brass! Keeps all the sound IN!
Its like the quirky animations on early pioneer car cd players of the 90’s
Can someone tell me anything about that music player? Love to make one.
Scotch brite in one direction, looks lovely on brass.
Not that it isn't now 😅
Beautiful! Although I'd say the white version of these OLEDs would've fit the aesthetic better than blue.
Looks like white to me. The colour on those things isn't that great to begin with. I didn't know there was a blue version.
That ending made me think I was watching a video by Junferno.
This appears to be an overly complicated and nearly useless device, made of materials no one today would use. In short, I love everything about it!
Orange LCD filter. More steampunk
Bad Apple and DOOM... incredible, what a legend
amazing like a subscribe I hope some real success awaits you ♡
13:01
> hiding your sins
Adam Savage would be proud
13:24: cheese n rice - that's a rubbish soldering job
Bravo :) That screen would make a great little CPU activity monitor on the side of your laptop!
I really do admire this esoteric RUclips channel, absolutely stunning!
is this the smallest monitor _that game_ has been played on?
I was not expecting the Bad Apple ending hahahaha
every maker on youtube has a level of detailing beyond which they consider it a waste of work. yours is the highest I've seen.
The vid is great, the first piano piece fit really well. Is this an original or a recording? I’d like to learn this if it’s available for practice 😊
Sounded quite like Canon by Pachelbel to me, at least in it's chord
progression.
beginning montage song name? super familiar melody
edit 11/7/22: pls
Among all those things that never should have been done in the first place... No one has EVER done it better. Congrats.
It's cool and all, but can it play Doo--
Oh neat!
“I don’t know what he’s doing, but he’s doing it good”
Honestly this is pretty close to the sorta shit I'd be coming up with if I had my own workshop. Living vicariously through you right now.
I have not seen a music box mech like that before. With the rotating strikers it looks as though you can actually adjust the sustain of each note by varying the rotation speed. Wicked!