JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

off-topic

Quackdoc
2024-06-13 10:16:02
one of the things im looking forward to is just not using a libc
lonjil
2024-06-13 10:16:20
then you can never ever do GUI stuff ๐Ÿ˜”
Quackdoc
2024-06-13 10:16:58
im not sure this is true, if we had a all native rust stuff it could work
lonjil
2024-06-13 10:17:29
graphics drivers must be loaded dynamically, since you don't know what drivers will be needed
2024-06-13 10:18:05
and modern GUI practice is to use vulkan/opengl directly, rather than sending drawing commands to Xorg
2024-06-13 10:19:45
but hey maybe we could do the stupid zig trick
2024-06-13 10:19:59
get rid of libc as the method used by rust to talk to the kernel
2024-06-13 10:20:07
add some startup code that checks which libc is in use
2024-06-13 10:20:10
reload with it
2024-06-13 10:20:22
bam you can now dlopen system libraries if you want to
Quackdoc
lonjil and modern GUI practice is to use vulkan/opengl directly, rather than sending drawing commands to Xorg
2024-06-13 10:21:12
there was a really neat thing I read about potentially getting around this a long time ago, ill try and find it again
lonjil add some startup code that checks which libc is in use
2024-06-13 10:21:28
this can be done with some effort and eyra probably
2024-06-13 10:21:35
https://github.com/sunfishcode/eyra
2024-06-13 10:21:55
C-gull is more or less a partial libc
2024-06-13 10:22:46
oh wait, maybe im thinking of mustang, cant remeber https://github.com/sunfishcode/mustang#readme
lonjil
2024-06-13 10:28:25
> c-gull has two main cargo features: "take-charge" and "coexist-with-libc". One of these must be enabled. Now THAT is what is needed, excellent. Still needs a way to dynamically choosing which libc to use at runtime, tho.
Crite Spranberry
2024-06-15 04:15:40
jxl on ๐Ÿ…ฑ๏ธista https://github.com/Eclipse-Community/r3dfox/releases/tag/v126.0.2v
2024-06-15 07:59:45
https://github.com/Eclipse-Community/r3dfox/releases/tag/v127.0
lonjil
2024-06-19 09:47:35
TIL that RISC-V only has an approximate reciprocal square root instruction for vectors, not for the regular FP registers. So if you're using the regular FP regs, or simply don't have a CPU for the V extension, the old Quake trick may be useful again...
veluca
2024-06-20 09:56:55
isn't that true also of x86/arm?
lonjil
veluca isn't that true also of x86/arm?
2024-06-20 10:15:48
x86 and Arm uses the same registers for 128 bit vectors and for scalar FP, and have instruction variants for doing scalar or vector stuff. There are no separate scalar FP registers. RISC-V otoh does have separate FP registers for non-vectors, with completely separate instructions. If you're using floats and doubles in your code, it will almost certainly use these registers and not the vector ones, other than when the compiler figures it can auto-vectorize your code.
veluca
2024-06-20 10:29:01
ah, fair
2024-06-20 10:29:11
seems like an odd choice tbh
DZgas ะ–
2024-06-20 11:58:27
The full of "news page" on Samsung's original website is a JPEG picture <:monkaMega:809252622900789269> https://www.samsung.com/sec/event/GalaxyBook4Edge/comp/
yoochan
2024-06-20 12:01:50
Japaneses do that very often too... perhaps they are used to have strange behavior for CJK page layout in software written by English speaking people ๐Ÿ˜„
w
2024-06-20 12:36:11
it's more of it's designed in microsoft word and just exported from that
lonjil
2024-06-20 08:04:21
Fun Arm fact: in addition to an instruction to compute an approximate reciprocal square root, it has an instruction that computes `(3.0 - in1*in2)/2.0`, which is about half of the steps needed for a Newton-Raphson iteration to improve an rsqrt guess. *Extremely* RISC!
Oleksii Matiash
2024-06-21 11:23:53
Mozilla managed to break video demuxer ๐Ÿคฆโ€โ™‚๏ธ Just curious how do they perform tests if it was not noticed in "stable" branch
Quackdoc
2024-06-21 11:29:02
Mozilla moment
cutename
2024-06-21 02:09:41
not that hard to break
DZgas ะ–
2024-06-22 09:37:16
finally, I wrote my image board completely from scratch. no css, no js, no cookies, no connect sessions, no user agent or any any other. pure post/get.
2024-06-23 12:43:57
2024-06-24 12:21:19
``` #####*,`*|~~*|*~~*######## ####*###|,#####,*``#*#~*## ##****#|**#-**~*,+-****~_# ##.#|*#\*****#*\#+**,^}### ##,~,_##*``-*~,*#`*##*##** #####|#|##\,~~*~,+-*###*~# ####*|#**~,###\,.#+*+##### ###,*##-#*_,~~~,**#^*##### ##,/####*^#####*#**``##### #*_###,***---,*~+#**~*#### #####/####*`,~+~*~####~*## #####|###*`*#####~`#####*# ##`~*~**~#########,*####*# #(-**************,-****-##` ```
2024-06-24 05:36:45
2024-06-24 05:43:10
I had to invent my own function for finding the percentage of distortion. I did it through the pixel difference. For some reason, all the standard algorithms that I found, including those that the neural network recommended to me, are worse. I make a mask with all the letters and make a bruteforce of each character ```py def image_difference(img1, img2): diff = sum(map(lambda x, y: abs(x - y), img1.getdata(), img2.getdata())) return diff ``` for some reason, parallelizing this function makes execution 2-3 times worse. It's funny. It's also funny that I manually wrote it without NUMPY, although it would seem impossible for numpy to be slower. But it's true. My option is faster than numpy at ~20% ```py import numpy as np def image_difference(img1, img2): img1_gray = np.array(img1.convert("L")) img2_gray = np.array(img2.convert("L")) diff = np.sum(np.abs(img1_gray - img2_gray)) return diff ```
jonnyawsom3
2024-06-25 05:28:11
Completely random, but Elon makes a comparison to progressive image loading... Now if only most images actually used it https://youtu.be/aFqjoCbZ4ik?t=246
lonjil
2024-06-25 05:51:08
most images do use it
2024-06-25 05:51:22
progressive jpeg is the most popular image format on the web
Oleksii Matiash
lonjil most images do use it
2024-06-25 06:32:48
FB does not use progressive, while Instagram does
spider-mario
2024-06-26 09:34:27
https://youtu.be/50jkO2s4Sp0
Oleksii Matiash
2024-06-26 09:49:07
Saw somewhere (maybe even here?) video, when non native English asks native how many tenses there are in English, and native says - 3 ๐Ÿ˜… And is very surprised by the correct answer
zamfofex
2024-06-27 10:04:35
Well, there are few inflections, but there are various tenses, Iโ€™d say. They just happen to be composed of auxiliary verbs instead of having a dedicated inflection.
spider-mario
2024-06-27 11:54:57
yeah, the most irregular verb is โ€œbeโ€, which still has only 3 forms in the present simple
2024-06-27 11:55:18
I am, I will be, I was, I have been, I had been, I would be, I would have been, I am being, I was being
2024-06-27 11:56:16
(โ€œI would be beingโ€ / โ€œI will be beingโ€ seem more rare)
2024-06-27 11:57:04
ah, Iโ€™m conflating with aspect and mood
2024-06-27 11:57:24
https://en.wikipedia.org/wiki/Tense%E2%80%93aspect%E2%80%93mood#Tense-mood-aspect_conflation
2024-06-27 11:58:00
> In the traditional grammatical description of some languages, including English, many Romance languages, and Greek and Latin, "tense" or the equivalent term in that language refers to a set of inflected or periphrastic verb forms that express a combination of tense, aspect, and mood.
CrushedAsian255
2024-06-27 12:14:34
lol steam is trying to send me a windows executable on my phone
2024-06-27 12:14:40
2024-06-27 12:14:57
The top starts with MZ and contains the dos mode thing
Oleksii Matiash
spider-mario I am, I will be, I was, I have been, I had been, I would be, I would have been, I am being, I was being
2024-06-27 12:58:53
Slavonic are much "easier", no these "be" at all ๐Ÿ˜…
spider-mario
2024-06-27 12:59:37
so, no question of to be or not to be?
2024-06-27 01:00:29
hamlet, translated: โ€œor not, that the questionโ€
Oleksii Matiash
2024-06-27 01:00:53
I meant no usage of be as helper word. Surely it is possible to say I am\was\will, but only in such case as Hamlet
2024-06-27 01:01:12
Verbs are changed according to tense, with no helpers
2024-06-27 01:04:24
That's why complex English tenses are a pitfall for most slavonic people, it is just against the way of tenses are constructed in slavonic languages. And I'm not the exclusion, sadly
2024-06-27 01:12:51
Well, I tried to imagine where we can say "I am", but it is not used. Only to translate "I am Groot", or something similar. I was\will is used, of course
lonjil
2024-06-27 01:30:58
there is no verb of being?
2024-06-27 01:32:20
no cogito, ergo sum in Slavonic languages? ๐Ÿ˜ฎ
Oleksii Matiash
2024-06-27 01:48:28
There is, but it is not used as verb helper. I mean like "I stand" -> "I stood", but for all verbs and for all tenses. It is impossible to say "I was standing", only "I was <somewhere>"
lonjil
2024-06-27 01:49:14
oh, I see what you meant
Oleksii Matiash
2024-06-27 01:50:38
Well, maybe it is true only for eastern slavonic, probably central and western are closer to Romance languages in this. But for eastern - it is so
2024-06-27 02:06:08
And also no differentiation between simple and continuous, only one form
2024-06-27 02:07:33
Somewhere Slavonic languages are easier than Romance, somewhere much more complex
Traneptora
2024-06-28 01:27:39
I find it funny that "to be" in Hebrew has no present tense
2024-06-28 01:27:47
it has future and past
2024-06-28 01:27:55
but in present you leave it out
spider-mario
2024-06-28 02:03:17
โ€œwhat else would you do than be?โ€
Oleksii Matiash
Traneptora but in present you leave it out
2024-06-28 04:44:38
The same
CrushedAsian255
2024-06-30 08:34:10
i just spent 30 minutes debugging before realising the bug is I am returning a `uint16_t` instead of a `uint32_t`
2024-06-30 08:34:14
yaaay
2024-06-30 08:34:23
i love programming
2024-06-30 01:49:32
oops
diskorduser
CrushedAsian255
2024-06-30 04:16:46
Steam installer?
spider-mario
2024-07-01 08:53:18
https://x.com/summer__heidi/status/1807554013048799340
lonjil
2024-07-03 12:46:24
yoooo https://scottaaronson.blog/?p=8088
MR.boring
2024-07-04 12:46:40
can someone help, I want to make my own image format
CrushedAsian255
MR.boring can someone help, I want to make my own image format
2024-07-04 01:27:39
Compressed or uncompressed?
TheBigBadBoy - ๐™ธ๐š›
MR.boring can someone help, I want to make my own image format
2024-07-04 10:30:19
useless use <:JXL:805850130203934781>
2024-07-04 10:30:36
https://cdn.discordapp.com/emojis/862625638238257183.webp?size=48&quality=lossless&name=av1_chad
Meow
MR.boring can someone help, I want to make my own image format
2024-07-04 10:31:45
You can simply fork QOI
MR.boring
2024-07-04 07:10:18
my own image format would have file extention .rgb, be stored in 8 bit rgb values so for example pure whit 2x2 pixels would be 255,255,255-255,255,255;255,255,255 as you can notice each pixel is seperated by a - and each row of pixels seperated by a ; originaly it was going to have saturation and brightness, but those aren't realy needed
2024-07-04 07:13:24
I use chatgpt because I cannot code
Oleksii Matiash
2024-07-04 08:16:32
Conglaturations, you've just invented your image format. Fantastically inefficient, but the task is done
JendaLinda
2024-07-04 09:42:14
I think we can go even more inefficient and store each pixel in a separate file and each row of pixel in a folder.
jonnyawsom3
2024-07-04 10:44:49
We display the image using the Windows thumbnail system
CrushedAsian255
Oleksii Matiash Conglaturations, you've just invented your image format. Fantastically inefficient, but the task is done
2024-07-05 01:35:34
Sounds a lot like a weird version of ppm
_wb_
2024-07-05 01:13:28
Reminds me of XBM/XPM
CrushedAsian255
2024-07-05 01:15:08
https://en.m.wikipedia.org/wiki/X_PixMap
2024-07-05 01:15:10
This?
JendaLinda
2024-07-05 06:08:39
I independently invented XPM when I was playing with graphics in Turbo Pascal.
CrushedAsian255
2024-07-07 01:41:53
help
2024-07-07 01:41:57
2024-07-07 01:41:58
lmao
TheBigBadBoy - ๐™ธ๐š›
2024-07-07 01:49:33
[โ €](https://cdn.discordapp.com/emojis/922856164834828358.gif?size=48&quality=lossless&name=hellowtf)
Posi832
2024-07-07 04:31:40
How do you have so much space
_wb_
2024-07-07 06:23:29
Hundreds of petabytes? That is quite a lot...
Quackdoc
2024-07-07 06:25:10
~~storing videos in raw YUV~~
CrushedAsian255
2024-07-07 10:19:23
I think macOSโ€™s implementation of SMBv3 is buggy
TheBigBadBoy - ๐™ธ๐š›
2024-07-08 11:04:05
https://reddit.com/r/ffmpeg/comments/1dy49bz/i_built_ffmpeg_online_inbrowser_terminal_with
2024-07-08 11:04:12
[โ €](https://cdn.discordapp.com/emojis/853492103145324554.webp?size=48&quality=lossless&name=woag)
jonnyawsom3
2024-07-08 11:20:00
Ooh
MR.boring
2024-07-08 07:19:06
''
Meow
2024-07-09 01:20:16
The free trial is expanded to 6 months https://affinity.serif.com/en-us/trial/
2024-07-09 01:20:26
The suite supports JPEG XL as well
CrushedAsian255
Meow The free trial is expanded to 6 months https://affinity.serif.com/en-us/trial/
2024-07-09 01:22:16
i use this
2024-07-09 01:22:21
it's good
Meow
2024-07-09 01:22:55
I've spent much on Clip Studio Paint Ex so I haven't upgraded my Affinity suite
SwollowChewingGum
2024-07-15 10:24:34
Broken lol
2024-07-15 10:24:38
DZgas ะ–
2024-07-16 08:22:44
This is what music looks like. Ultra-large spectrogram. 40,000,000 calls of processing the Discrete Fourier Transform. The pitch was calculated in increments of 4 hertz, the duration in increments of 25 hertz. That is, each pixel next to the right is the signal power at a frequency of 25 hertz from the previous pixel. The "window width" is 500 hertz. There are only 4 seconds of sound here. I wrote the code in python from scratch using the DFT forums from wikipedia and gemini 1.5 for keep being dumb. STRESS normalization has been performed on the image (Spatial-Temporal Retinex-Inspired Envelope with Stochastic Sampling)
SwollowChewingGum
2024-07-16 11:07:23
For some reason, OPUS sounds SO MUCH better at 5.6kbps vs 6.0kbps when using CBR
2024-07-16 11:09:13
yoochan
2024-07-17 08:48:44
Cbr with opus is always worse. Let him work without constraints! ๐Ÿ˜
SwollowChewingGum
yoochan Cbr with opus is always worse. Let him work without constraints! ๐Ÿ˜
2024-07-17 08:54:45
Iโ€™m specifically doing nonsense stuff with the encoder lol
2024-07-17 08:54:59
Also 5.6kbps will suck no matter what rate control
DZgas ะ–
DZgas ะ– This is what music looks like. Ultra-large spectrogram. 40,000,000 calls of processing the Discrete Fourier Transform. The pitch was calculated in increments of 4 hertz, the duration in increments of 25 hertz. That is, each pixel next to the right is the signal power at a frequency of 25 hertz from the previous pixel. The "window width" is 500 hertz. There are only 4 seconds of sound here. I wrote the code in python from scratch using the DFT forums from wikipedia and gemini 1.5 for keep being dumb. STRESS normalization has been performed on the image (Spatial-Temporal Retinex-Inspired Envelope with Stochastic Sampling)
2024-07-17 01:45:44
jonnyawsom3
2024-07-17 03:17:11
Wondered why my computer was making extra noise... Turns out the No Man's Sky update page doesn't unload any assets when you scroll past, so my GPU decode was at 90% while I was reading the text changelog at the bottom https://www.nomanssky.com/worlds-part-i-update/
username
2024-07-17 04:16:35
speaking of No Man's Sky, do they still artificially limit themselves to Vulkan **1.0**?
2024-07-17 04:18:03
last I checked the game ships with a old 2016 compile of the Vulkan API dll meant to fix an issue with some old Intel iGPUs, an issue that's been fixed in the Vulkan dlls since like 2016
2024-07-17 04:19:32
don't know if it's placebo or not but I usually recommend people to delete `vulkan-1.dll` from their install of the game so it uses the newer one provided by the installed GPU drivers
jonnyawsom3
2024-07-17 04:27:21
There's a licence file dated 14-08-2019 which says this > vulkan-1.dll (Vulkan-Loader) is distributed under the terms of the Apache License. > > The version of Vulkan-Loader distributed with No Man's Sky contains a workaround for a crash. > A discussion of this issue (and the workaround included in this binary) is available at > https://github.com/KhronosGroup/Vulkan-Loader/issues/182
2024-07-17 04:29:05
The DLL itself is dated 01-03-2023 `Vulkan Loader - Dev Build` File version `1.0.1111.2222`
username
2024-07-17 04:47:04
hmm my dates where off although that DLL version is for Vulkan 1.0 which means they are still limiting themselves to Vulkan 1.0 also I was off about the bug being Intel related however I think my misremembering of both comes from me thinking of possible reasons why they wouldn't update to Vulkan 1.1 or newer and the only reason I could think of was because of old Intel iGPUs around 2016 which only got support for Vulkan 1.0 and then stopped getting updates which is probably where the mixup in my brain happened
2024-07-17 04:49:20
tbh if I would to pick a baseline version of Vulkan to use for good compat across older GPUs in a modern'ish targeted engine I would just pick 1.1 since like mentioned the only real GPUs stuck on 1.0 are Intel iGPUs from a certain time
2024-07-17 04:55:48
semi-offtopic but I still find the native Apple silicon version/port of the game to be intriguing https://www.nomanssky.com/2023/06/no-mans-sky-on-mac/
jonnyawsom3
2024-07-17 04:57:08
Vulkan 1.2 made a point of not needing any new hardware, so that would be the ideal if you're already cutting off those intel chips. Although I can't actually find any benefits to upgrading, it's mostly just extensions added and hardware features implemented like ray tracing and variable rate shading. I imagine they'll change if they actually want or need those features
DZgas ะ–
DZgas ะ–
2024-07-18 01:14:00
Because Heisenberg's uncertainty principle imposes a fundamental limitation (fucking physics) on the simultaneous measurement of time and frequency. โ€” The more precisely you want to determine the moment in time, the less accurately you will be able to determine the frequency, and vice versa. It is impossible to obtain perfectly accurate information about the frequency and time of the signal at the same time. A large window size (increasing the time resolution) reduces the frequency resolution, and vice versa. There are three different ways to create a spectrogram as accurately as possible. (Window size 400 Hertz) 1. https://en.wikipedia.org/wiki/Discrete_Fourier_transform 2. https://en.wikipedia.org/wiki/Wigner_quasiprobability_distribution 3. https://en.wikipedia.org/wiki/Chirplet_transform
lonjil
2024-07-18 01:17:13
You don't even need to invoke Heisenberg for that. The uncertainty principle applies to all waves, even non-physical ones.
DZgas ะ–
lonjil You don't even need to invoke Heisenberg for that. The uncertainty principle applies to all waves, even non-physical ones.
2024-07-18 01:17:42
<:PepeHands:808829977608323112>
2024-07-20 07:51:30
finally! db
spider-mario
2024-07-20 09:08:05
https://youtu.be/9wk4ApHloHM
DZgas ะ–
2024-07-21 01:01:06
my favorite joke is when people ask me about ffmpeg: Oh yes, just look at the hint, everything is clear there: ffmpeg -h full
Demiurge
2024-07-21 10:16:42
I love ffmpeg
TheBigBadBoy - ๐™ธ๐š›
2024-07-21 10:53:47
how dare you
2024-07-21 10:54:01
[โ €](https://cdn.discordapp.com/emojis/659513552033415188.webp?size=48&quality=lossless&name=av1_pepegun)
Traneptora
2024-07-22 05:26:32
Plz the ffmpeg UI is very easy to use if you've been using it for over a decade
Quackdoc
2024-07-22 06:39:26
xD
DZgas ะ–
DZgas ะ– finally! db
2024-07-22 09:42:59
Logarithmic spectrogram of small size, logarithmic window size (from 10000 to 10) Power in decibels Output sound The actual amount of information per sound duration is equal to a bitrate of 84 kbit
2024-07-22 11:04:16
2024-07-23 12:53:10
So, as far as I understand, I have now advanced in the topic of decoding spectrograms, to the top 10 in the world. On an equal footing with people who make neural networks to generate a voice from a spectrogram What are the current problems that need to be solved so that the generated sound sounds better 1. The size of the window, for different frequency ranges. Mostly for the lower ones, because this is the most problematic part. The lowest from 20 to 200 hertz is the most problematic part, because of the very small amount of very important information, the waves. But it sounds solvable. 2. The phase. Perhaps the most important problem at the moment. The signals have a random initial phase, I set it up. Due to the zero phase, all phases resonated. But because of the random phases, the signal sounds fake. Having absolutely zero harmonics <:FeelsReadingMan:808827102278451241>
SwollowChewingGum
DZgas ะ– So, as far as I understand, I have now advanced in the topic of decoding spectrograms, to the top 10 in the world. On an equal footing with people who make neural networks to generate a voice from a spectrogram What are the current problems that need to be solved so that the generated sound sounds better 1. The size of the window, for different frequency ranges. Mostly for the lower ones, because this is the most problematic part. The lowest from 20 to 200 hertz is the most problematic part, because of the very small amount of very important information, the waves. But it sounds solvable. 2. The phase. Perhaps the most important problem at the moment. The signals have a random initial phase, I set it up. Due to the zero phase, all phases resonated. But because of the random phases, the signal sounds fake. Having absolutely zero harmonics <:FeelsReadingMan:808827102278451241>
2024-07-23 01:21:50
I have an idea, you could possibly encode info about the phase in colors?
2024-07-23 01:22:15
Like HSB
DZgas ะ–
SwollowChewingGum I have an idea, you could possibly encode info about the phase in colors?
2024-07-23 07:32:54
the idea sounds good.... but I would like that at the end of the story it could be printed on a powder black and white printer
SwollowChewingGum
DZgas ะ– the idea sounds good.... but I would like that at the end of the story it could be printed on a powder black and white printer
2024-07-23 07:33:21
Two spectrograms interleaved?
2024-07-23 07:33:31
Whatโ€™s the project exactly?
DZgas ะ–
2024-07-23 07:35:46
can make 2 spectrograms, sine and cosine. When they are ideally superimposed, the spectrograms will interfere in the desired phase. But The degree of overlap should be ideal
SwollowChewingGum Whatโ€™s the project exactly?
2024-07-23 07:37:03
python pure math code use wikipedia formulas
2024-07-23 07:37:52
I know that there are no such projects, that's enough. the closest thing that exists is "phonopaper"
2024-07-23 07:39:38
The problem is very obvious โ€” generating an ultra-accurate spectrogram using formulas is a very, very slow. I have parallelized ryzen 5 zen 4 into 16 threads Most likely no one has ever done project like this in 2000-2015
2024-07-23 07:41:00
many documentt about waves were written during these times: 1980-2010
2024-07-23 07:44:53
linear mel bark erb log
SwollowChewingGum Like HSB
2024-07-23 08:00:17
okay, I'll try to do the inverse Fourier transform on 2 spectrograms. I am concerned about the inaccuracy of reading 2 spectrogramms of paper. but apparently this is the best way, I'll start doing it soon HSB for color is a good thing in its own way. although initially I thought to put the information in RgB โ€” 255, 0, 255 sine power and cosine power. but hsv sounds even better.
2024-07-23 02:21:24
yeah
yoochan
2024-07-23 03:02:20
could you recall me what's the goal here ?
DZgas ะ–
yoochan could you recall me what's the goal here ?
2024-07-23 03:10:34
sound on paper (HIFI)
2024-07-23 03:10:43
๐Ÿ’ช
yoochan
2024-07-23 03:11:04
paper ? like printed spectrogramms to be scanned and transformed to audio again ?
DZgas ะ–
2024-07-23 03:13:04
I'm already very close to the correct phase interpolation, I just need to figure out where the error is
yoochan
2024-07-23 03:13:36
do you print ? or do you use only the digital picture file ?
DZgas ะ–
2024-07-23 03:14:08
https://discord.com/channels/794206087879852103/806898911091753051/1265082013266743328 you can listen to the generation result without taking into account the phase
yoochan
2024-07-23 03:15:03
did you tried to filter out the final result you get with an anti aliasing (low pass) filter ? with a cut frequency at 44.1 Hz (if it's your initial signal freq)
DZgas ะ–
yoochan do you print ? or do you use only the digital picture file ?
2024-07-23 03:15:04
print later. now I'm only doing tests with very low-resolution digital versions to understand that I'm not wasting time, so far I'm happy with everything
yoochan did you tried to filter out the final result you get with an anti aliasing (low pass) filter ? with a cut frequency at 44.1 Hz (if it's your initial signal freq)
2024-07-23 03:15:39
this is not necessary, I am using the BARK scale now.
2024-07-23 03:15:55
https://en.wikipedia.org/wiki/Bark_scale#/media/File:Bark_scale.png
DZgas ะ–
2024-07-23 03:17:09
but this sound uses Logarithmic scale
2024-07-23 07:54:09
heh
2024-07-24 07:35:33
phase is absolutely real bruh
SwollowChewingGum Two spectrograms interleaved?
2024-07-24 09:15:04
I decided to use another method. After generating the spectrogram, using the same Fourier DFT algorithm, I generate the total phase of each frequency (the sum of all phases on each herz of the entire sound, frequency which is in the spectrogram) - and record it as separate values. It's working well at the moment. The signal does sound better, not perfect, but better!
2024-07-24 09:39:05
Information about the phase shift of the signal for each frequency separately (the average) The number / 100 * 2 * 3.141 93 43 49 74 27 98 98 86 82 56 85 21 18 92 16 76 03 05 88 27 95 83 28 91 44 38 12 95 13 85 42 73 12 64 25 15 49 74 41 83 52 76 14 15 48 67 05 47 74 93 13 98 68 15 03 29 90 55 19 53 71 00 75 88 47 55 36 04 76 99 88 49 24 82 33 99 61 19 76 81 64 54 76 81 56 91 23 97 73 73 98 04 58 58 13 86 43 87 71 80 20 17 07 96 13 68 75 28 56 02 50 03 51 80 88 33 16 62 89 52 30 92 69 14 78 17 31 86 04 84 13 94 88 13 70 98 78 92 88 66 27 07 09 33 97 56 77 46 98 59 85 07 90 75 59 75 79 59 31 45 54 54 56 92 75 11 10 15 89 99 91 30 24 11 17 26 43 46 73 54 43 59 76 71 30 80 51 78 97 36 74 56 79 66 02 15 86 88 37 49 66 03 96 64 77 27 69 18 04 90 79 64 77 15 33 33 54 89 64 28 28 36 87 09 07 39 61 89 80 97 34 31 93 68 29 35 92 85 10 55
DZgas ะ– Logarithmic spectrogram of small size, logarithmic window size (from 10000 to 10) Power in decibels Output sound The actual amount of information per sound duration is equal to a bitrate of 84 kbit
2024-07-24 09:39:21
2024-07-25 01:00:51
bottom line the method doesn't suit me, so I'm search for other ways.
2024-07-25 01:01:45
These are all beautiful pictures, of course, it's a pity.
2024-07-25 01:58:46
oh yeah I invented Movietone track with variable density in 2024 <:Opus:805856410235437068>
2024-07-25 02:46:29
2024-07-25 11:25:54
in general. Everything analog is shit. Compress OPUS using "PAPERBACK" to print on paper. Analog is shit
2024-07-25 11:26:05
โค๏ธโ€๐Ÿ”ฅ<:Opus:805856410235437068> ๐Ÿ’ช
DZgas ะ– oh yeah I invented Movietone track with variable density in 2024 <:Opus:805856410235437068>
2024-07-26 12:02:02
the only thing that I was able to use normally was encoding the sound in the image. That this sound is quite noise-proof from compression. Compression will increase the signal noise, but will not spoil the signal.
2024-07-26 12:04:08
Wave samples stored in the range from 0 to 255 png. and then shifted by 128, to -128 to 128 in the wave - so technically it is an 8 bit wav file in the image
2024-07-26 12:05:10
analog-digital file... any scale of the image will ruin everything.
2024-07-26 12:08:33
it also clearly demonstrates how compression methods, without any psychoacoustics algorithms at all, can compress sound. For example WEBP q5
2024-07-26 12:13:23
jpeg q10 (the same size as webp) a very good way to literally hear: although there is no psychoacoustics, the complexity of the algorithms and more efficient compression are much better in WEBP than in JPEG. And you can listen to it as the difference of artifacts.
SwollowChewingGum
DZgas ะ– the only thing that I was able to use normally was encoding the sound in the image. That this sound is quite noise-proof from compression. Compression will increase the signal noise, but will not spoil the signal.
2024-07-26 12:36:56
i've done something similar before, it's really fun
DZgas ะ– jpeg q10 (the same size as webp) a very good way to literally hear: although there is no psychoacoustics, the complexity of the algorithms and more efficient compression are much better in WEBP than in JPEG. And you can listen to it as the difference of artifacts.
2024-07-26 12:37:13
you can quite literally hear the 8x8 dct blocks
2024-07-26 12:37:32
what program are you using to make them? I just use ffmpeg
2024-07-26 12:40:44
I like doing the other way around as well, convert image to audio then back to image
DZgas ะ–
2024-07-26 12:43:55
write pure python math, wave
2024-07-26 12:44:31
<:ReeCat:806087208678588437> use neural network to wrote
SwollowChewingGum what program are you using to make them? I just use ffmpeg
2024-07-26 12:47:00
Wav file get samples in list[] รท 32768 ร— 256 +128 put in pixel, (use python pillow)
SwollowChewingGum
2024-07-26 12:48:29
DZgas ะ–
2024-07-26 12:48:34
decode: get pixel data -128 รท256ร—32768 put in wave sample
SwollowChewingGum
SwollowChewingGum
2024-07-26 12:48:54
this is what happens when you encode rgb24 data as Opus u8 data
2024-07-26 12:49:22
looks kinda like old analog video
DZgas ะ–
SwollowChewingGum this is what happens when you encode rgb24 data as Opus u8 data
2024-07-26 12:50:03
MDCT <:Stonks:806137886726553651> & Round
SwollowChewingGum looks kinda like old analog video
2024-07-26 12:50:29
wave is wave
SwollowChewingGum
2024-07-26 12:50:39
the colors drop because color is represented as high frequency data
2024-07-26 12:50:47
and sometime the high frequency data is dropped
DZgas ะ– wave is wave
2024-07-26 12:51:49
fair
DZgas ะ–
2024-07-26 12:54:12
my face when I realized that the frequency of 20,000 hertz contains 20,000 times more information than 1 hertz ๐Ÿฅด
VcSaJen
2024-07-26 02:00:18
Is it possible to use JPEG directly to store those audio files, without converting to pixels?
2024-07-26 02:01:37
AFAIR it stores frequencies, not pixels, so might be advantageous for audio.
jonnyawsom3
SwollowChewingGum you can quite literally hear the 8x8 dct blocks
2024-07-26 02:32:13
<@129256926088396800> take a listen tomorrow
SwollowChewingGum
VcSaJen AFAIR it stores frequencies, not pixels, so might be advantageous for audio.
2024-07-26 03:47:41
I guess if you have 8 channel audio?
2024-07-26 03:48:09
Cross talk is terrible though
LMP88959
VcSaJen AFAIR it stores frequencies, not pixels, so might be advantageous for audio.
2024-07-26 03:53:53
a good idea, but block based DCT as used in jpeg will not work well with audio
2024-07-26 03:54:22
MDCT is used instead which has overlapping between adjacent blocks
2024-07-26 03:55:00
Non overlapped DCT will cause very severe clicks and pops at block boundaries
2024-07-26 03:55:12
Wherever there are discontinuities
2024-07-26 03:57:56
Also, not really useful for digital compression
2024-07-26 03:58:01
https://en.m.wikipedia.org/wiki/Slow-scan_television
2024-07-26 03:58:13
But SSTV converts an image into audio
SwollowChewingGum
2024-07-26 03:58:16
When I did this with low jpeg quality it almost sounded like bitcrusher
LMP88959
2024-07-26 03:58:24
And then the receiver decodes the audio into an image
SwollowChewingGum
LMP88959 But SSTV converts an image into audio
2024-07-26 03:58:26
But without compression artifacting
DZgas ะ–
DZgas ะ–
2024-07-27 11:36:42
2024-07-28 12:05:49
paper print. paper scan. paper decode, paper analog music <:PepeOK:805388754545934396> closed this topic
2024-07-28 01:26:34
Music saved digitally using PaperBack ( https://github.com/Wikinaut/paperback-cli ) to create a block code for printing. The sound is encoded by the neuro-codec EnCodec ( https://github.com/facebookresearch/encodec ) ~9 Kbit/s
jonnyawsom3
2024-07-28 04:13:02
After listening to the others, that one has shocking quality
JendaLinda
2024-07-28 06:29:03
This is nothing new actually. Optical sound recording, both analog and digital, is used in film.
CrushedAsian255
After listening to the others, that one has shocking quality
2024-07-28 06:31:25
like shockingly good or bad?
2024-07-28 06:31:35
imo the Encodec version sounds significantly better
jonnyawsom3
CrushedAsian255 like shockingly good or bad?
2024-07-28 06:33:33
Well after listening to
DZgas ะ– paper print. paper scan. paper decode, paper analog music <:PepeOK:805388754545934396> closed this topic
2024-07-28 06:33:37
That
DZgas ะ– Music saved digitally using PaperBack ( https://github.com/Wikinaut/paperback-cli ) to create a block code for printing. The sound is encoded by the neuro-codec EnCodec ( https://github.com/facebookresearch/encodec ) ~9 Kbit/s
2024-07-28 06:34:09
And suddenly having full stereo at good quality, I forgot how good having hearing is
CrushedAsian255
2024-07-28 06:34:39
im not surprised the digital route sounds better, it allows for more resilience when it comes to alignment and such
jonnyawsom3
2024-07-28 06:34:58
Yeah
CrushedAsian255
2024-07-28 06:35:10
also how dare they send a jpeg instead of a jxl
jonnyawsom3
2024-07-28 06:40:32
CrushedAsian255
2024-07-28 06:41:11
im guessing just lossless jpeg->jxl?
2024-07-28 06:41:28
yep ``` JPEG bitstream reconstruction data available ```
jonnyawsom3
2024-07-28 06:43:08
Yeah, tried a d1 lossy but the artefacts and being greyscale meant it was the same as the original
2024-07-28 06:44:26
3 GB of RAM to do the transcode though, I do wonder if we could do chunked encoding on that too
JendaLinda
2024-07-28 06:47:24
https://en.wikipedia.org/wiki/Sound-on-film
CrushedAsian255
3 GB of RAM to do the transcode though, I do wonder if we could do chunked encoding on that too
2024-07-28 06:52:17
lossy modular could work?
DZgas ะ– Music saved digitally using PaperBack ( https://github.com/Wikinaut/paperback-cli ) to create a block code for printing. The sound is encoded by the neuro-codec EnCodec ( https://github.com/facebookresearch/encodec ) ~9 Kbit/s
2024-07-28 06:57:29
just wondering what's the source file?
jonnyawsom3
JendaLinda https://en.wikipedia.org/wiki/Sound-on-film
2024-07-28 07:06:11
https://www.youtube.com/watch?v=tg--L9TKL0I
2024-07-28 07:06:18
It was a good video as always
CrushedAsian255
https://www.youtube.com/watch?v=tg--L9TKL0I
2024-07-28 07:06:58
agreed
DZgas ะ– Music saved digitally using PaperBack ( https://github.com/Wikinaut/paperback-cli ) to create a block code for printing. The sound is encoded by the neuro-codec EnCodec ( https://github.com/facebookresearch/encodec ) ~9 Kbit/s
2024-07-28 07:24:21
nah use mp2 compression lmao
DZgas ะ–
CrushedAsian255 just wondering what's the source file?
2024-07-28 07:26:22
CrushedAsian255 nah use mp2 compression lmao
2024-07-28 07:26:39
I have already conducted my testing, the best codec for music, for bitrates lower than 8 kbit. this (by a huge margin in quality) is Vorbis
CrushedAsian255
2024-07-28 07:27:20
vorbis at 8kbps??
DZgas ะ–
2024-07-28 07:27:29
๐Ÿ’ช best
CrushedAsian255
2024-07-28 07:27:37
don't even know if that's possible
2024-07-28 07:27:38
hang on
2024-07-28 07:27:41
lemme check
2024-07-28 07:29:02
ffmpeg doesn't even let me encode below 48kbps for opus
DZgas ะ–
2024-07-28 07:29:14
4000 hz 8 kbps
CrushedAsian255
DZgas ะ– 4000 hz 8 kbps
2024-07-28 07:29:23
oh you lowered the sample rate
DZgas ะ–
CrushedAsian255 oh you lowered the sample rate
2024-07-28 07:30:28
that no codec can be higher ..... except for the Encodec neural network - which is ahead of everyone else
jonnyawsom3
DZgas ะ–
2024-07-28 07:30:56
For some reason that doesn't play with the embed
CrushedAsian255
2024-07-28 07:31:38
opus @ 5.6 kbps
For some reason that doesn't play with the embed
2024-07-28 07:31:51
opus embed is a bit funny sometimes
2024-07-28 07:31:53
idk why
DZgas ะ–
2024-07-28 07:32:08
opus is not interesting at such bitrates. use vorbis
For some reason that doesn't play with the embed
2024-07-28 07:32:25
discord moment
CrushedAsian255
DZgas ะ– opus is not interesting at such bitrates. use vorbis
2024-07-28 07:32:31
how do you get vorbis to encode at less than 48kbps
jonnyawsom3
CrushedAsian255 opus embed is a bit funny sometimes
2024-07-28 07:32:34
That's FLAC but yeah, annoyingly Discord doesn't embed formats it already supports
CrushedAsian255
2024-07-28 07:32:37
it just doesn't let me
DZgas ะ–
CrushedAsian255 how do you get vorbis to encode at less than 48kbps
2024-07-28 07:32:59
for what
jonnyawsom3
2024-07-28 07:33:12
Probably use the reference tools instead of ffmpeg
CrushedAsian255
2024-07-28 07:33:26
2024-07-28 07:33:35
huh using .ogg instead of .opus works
2024-07-28 07:34:06
double weird because `.opus` is basically just `.ogg`
DZgas ะ–
CrushedAsian255 how do you get vorbis to encode at less than 48kbps
2024-07-28 07:34:38
I'm serious, it's a waste of time. All you have to do is download the original vorbis encoder and lower the frequency. But this makes no sense, Vorbis as a codec, in principle, remained necessary only in games - because so far no one has created a codec that would be decoded so fast so instantaneous.
CrushedAsian255
2024-07-28 07:50:34
For some reason, encodec doesn't launch on my computer ``` Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.12/bin/encodec", line 8, in <module> sys.exit(main()) ^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/encodec/__main__.py", line 109, in main wav, sr = torchaudio.load(args.input) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/torchaudio/_backend/utils.py", line 204, in load backend = dispatcher(uri, format, backend) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/torchaudio/_backend/utils.py", line 116, in dispatcher raise RuntimeError(f"Couldn't find appropriate backend to handle uri {uri} and format {format}.") RuntimeError: Couldn't find appropriate backend to handle uri input.wav and format None. ```
JendaLinda
2024-07-28 08:41:06
It's curious that FLAC can losslessly compress any low res PCM like 8 bit 11025Hz for example.
2024-07-28 08:46:21
I come across some WAV files that FLAC couldn't compress, then I discovered those are Microsoft ADPCM ๐Ÿ˜„
DZgas ะ–
CrushedAsian255 For some reason, encodec doesn't launch on my computer ``` Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.12/bin/encodec", line 8, in <module> sys.exit(main()) ^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/encodec/__main__.py", line 109, in main wav, sr = torchaudio.load(args.input) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/torchaudio/_backend/utils.py", line 204, in load backend = dispatcher(uri, format, backend) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/torchaudio/_backend/utils.py", line 116, in dispatcher raise RuntimeError(f"Couldn't find appropriate backend to handle uri {uri} and format {format}.") RuntimeError: Couldn't find appropriate backend to handle uri input.wav and format None. ```
2024-07-28 01:52:56
> required python 3.8
CrushedAsian255
2024-07-30 08:26:51
i've just fallen in love with midi files again
2024-07-30 08:27:00
they're just so well compressed
2024-07-30 08:27:12
entire song in 78kb (excluding soundfont)
2024-07-30 08:34:09
an entire song that is xz compressable into 4.5KiB
2024-07-30 08:35:48
194.3 bits per second
JendaLinda
2024-07-30 09:03:14
No wonder games were using midi based soundtracks. You could fit lots of music on floppies. Also music playback was completely hardware accelerated.
jonnyawsom3
2024-07-30 09:05:51
A few hours ago I was playing Space Cadet pinball with a friend, noticed the MIDI file so opened it in VLC, turns out it's 9 minutes long in 110 KB... Unfortunately it doesn't play any audio because VLC is missing a soundfont
JendaLinda
2024-07-30 09:07:21
In Windows, you can use Windows Media Player. Windows has a basic soundfont builtin.
2024-07-30 09:08:46
Or any player that can play though a midi device.
Oleksii Matiash
JendaLinda Or any player that can play though a midi device.
2024-07-30 09:11:51
FooBar2000 with proper plugin does great job
JendaLinda
2024-07-30 09:31:45
Webpages used to be able to play background midi music using <bgsound> element.
jonnyawsom3
JendaLinda In Windows, you can use Windows Media Player. Windows has a basic soundfont builtin.
2024-07-30 09:32:49
I had to manually re-install it, since apparently it was disabled on this install by default, but it does work. Interestingly, my friend and I noticed my MIDI playback is very out of tune compared to others when playing OpenTTD, sounding more like a drunken band than background music
JendaLinda
2024-07-30 09:34:05
Interesting. Perhaps some software re-enabled it for me.
2024-07-30 09:36:21
But yeah, the Microsoft midi synth is not the best. There are better options if you want to experiment.
username
2024-07-30 09:37:36
this is a good option: https://coolsoft.altervista.org/en/virtualmidisynth https://coolsoft.altervista.org/en/midimapper
JendaLinda
2024-07-30 09:38:02
For music from DOS games, the most fitting option would be OPL2 emulation as that's the way the music was supposed to sound.
Quackdoc
CrushedAsian255 they're just so well compressed
2024-07-30 11:36:18
Im not sure compressed is the right word [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&quality=lossless&name=av1_dogelol)
CrushedAsian255
Quackdoc Im not sure compressed is the right word [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&quality=lossless&name=av1_dogelol)
2024-07-30 11:37:40
I guess theyโ€™re more like SVGs
2024-07-30 11:38:06
Fundamentally different, defining the data through instructions rather than the final output
JendaLinda
2024-07-30 11:41:55
I would say midi file is more like macro recording.
Quackdoc
2024-07-30 11:44:51
I need to download some soundfonts again
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 entire song in 78kb (excluding soundfont)
2024-07-30 02:23:52
soundfont isn't equivalent to MIDI, just saying
2024-07-30 02:30:42
MIDI files are kinda like executables, targeting different equipments or standards with different sets of instructions
JendaLinda
2024-07-30 03:22:29
Another interesting format is tracker/module music. Itยจs similar idea like midi but it also includes the "sound font"
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-30 03:25:08
depends some trackers are PCM-based, thus using the samples some utilize the OPL FM chips (2/3/4), so they get FM params instead
JendaLinda
2024-07-30 03:29:51
I would consider OPL tracks to be a separate category.
2024-07-30 03:31:20
Music modules are PCM based , they evolved from Amiga MOD format.
_wb_
2024-07-30 06:00:36
I used to make tracks
2024-07-30 06:01:34
I uploaded some of them here: https://modarchive.org/index.php?request=view_artist_modules&query=92535
2024-07-30 06:02:57
It's mostly garbage but I had fun making those. 20-30 years ago now, wow time flies...
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  soundfont isn't equivalent to MIDI, just saying
2024-07-30 08:46:33
I know, I was just saying that if you include a sound font with the midi then it is way bigger
JendaLinda
2024-07-31 09:50:41
Even module tracks using low fidelity samples can take advantage of current technology. Rendering tracks in 48+ KHz, 24 bits allows higher playback quality. You can still hear the crunchy samples but the player won't add any more distortion.
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:30:31
just seeing if anyone recognize this
CrushedAsian255
2024-07-31 12:32:00
Flipper Zero MIDI?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:32:43
wrong
CrushedAsian255
2024-07-31 12:34:56
Some electric keyboard
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:35:07
also wrong
2024-07-31 12:35:11
related
CrushedAsian255
2024-07-31 12:36:05
IDK a hardware JPEG XL encoding ASIC
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:36:14
MIDI related
CrushedAsian255
2024-07-31 12:36:33
Some kind of synth?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:36:56
mmhmm, you're heading towards the correct direction
CrushedAsian255
2024-07-31 12:37:06
DAW?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:37:10
nope
2024-07-31 12:38:01
either has no relation to audio plugins
CrushedAsian255
2024-07-31 12:38:45
One of those hardware midi synthesisers
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:39:30
correct
2024-07-31 12:39:57
this should be among one of the most well-known ones
CrushedAsian255
2024-07-31 12:40:22
I just use fluidsynth lol
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:41:19
FluidSynth lacks a lot of features hardware synths have to offer, of most considering bread-and-butter
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  just seeing if anyone recognize this
2024-07-31 12:41:38
Roland SC-8850 (emulated screen)
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  related
2024-07-31 12:41:51
Yamaha MU128/1000/2000 (emulated screen)
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  this should be among one of the most well-known ones
2024-07-31 12:42:08
Roland SC-88/88 Pro (emulated screen)
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  FluidSynth lacks a lot of features hardware synths have to offer, of most considering bread-and-butter
2024-07-31 12:44:48
Any other good CLI midi synths that run on MacOS?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:45:45
TiMidity++ with a proper voice bank, should get you some level of proper MIDI support near SC-55 or MU50
CrushedAsian255
2024-07-31 12:46:09
Voice bank?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:46:34
or Nuked SC-55 with SC-55 ROMs, almost perfectly emulating SC-55
CrushedAsian255 Voice bank?
2024-07-31 12:47:37
voice banks defined via text configurations, or soundfont(SF2) files
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  voice banks defined via text configurations, or soundfont(SF2) files
2024-07-31 12:47:56
Oh, sounfonts
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 Oh, sounfonts
2024-07-31 12:48:12
not exactly the same
CrushedAsian255
2024-07-31 12:48:29
Soundfonts are a subclass of voice banks?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:48:35
yup
CrushedAsian255
2024-07-31 12:48:51
But so are PSGs and FM synths?
2024-07-31 12:49:47
Text configurations like SFZs?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 12:50:14
you can say that, since there are a lot of synthesis methods.... sampling (PCM), FM, digital waveguide, analog (or virtual analog), moorer...
2024-07-31 12:51:03
sound banks are just collections of definitions of instruments
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  or Nuked SC-55 with SC-55 ROMs, almost perfectly emulating SC-55
2024-07-31 12:51:53
https://github.com/nukeykt/Nuked-SC55
CrushedAsian255
2024-07-31 01:07:33
how do i pass a .sf2 file into timidity?
2024-07-31 01:09:31
do i have to convert it to a patch directory?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:09:53
specify the `soundfont` directive in its config file e.g. `soundfont '/home/user/test.sf2'`
CrushedAsian255
2024-07-31 01:10:07
also i don't quite get how drums work in MIDI?
2024-07-31 01:10:15
like normal instruments have a bank and program
2024-07-31 01:10:27
is there a seperate bank:program for drums?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:10:33
depends on implementation
CrushedAsian255
2024-07-31 01:10:53
one program I use treats drums as 'bank 128'
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:10:57
GM only allows you to have a single drum kit on channel 10, and that channel cannot be anything else
2024-07-31 01:11:15
GM2 sets drums via cc0 120
2024-07-31 01:11:37
XG cc0 127/126, and part setup SysEx exists
2024-07-31 01:11:45
GS only allows SysEx
2024-07-31 01:11:55
then select the drum kit via PC
CrushedAsian255
2024-07-31 01:12:20
in timidity++ logs it gives lines such as ``` Drumset 0 73(C#): Drum_000/073_Guiro_1_Short.pat ``` Does the `0` mean bank 0 or program 0?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:12:37
e.g.
CrushedAsian255 in timidity++ logs it gives lines such as ``` Drumset 0 73(C#): Drum_000/073_Guiro_1_Short.pat ``` Does the `0` mean bank 0 or program 0?
2024-07-31 01:12:56
program (0-indexed) set to 0
CrushedAsian255
2024-07-31 01:13:14
and does timidity++ just not have the concept of drumkit banks?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:13:50
I think it does, it supports XG/GS/GM2 drum kit selection after all
CrushedAsian255
2024-07-31 01:14:25
huh, so why is it only giving 2 numbers (program, key) instaed of 3 (bank, program, key)?
2024-07-31 01:14:30
this is weird
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  e.g.
2024-07-31 01:14:37
what are each of the columns?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 huh, so why is it only giving 2 numbers (program, key) instaed of 3 (bank, program, key)?
2024-07-31 01:15:39
with standardized implementations, drums have their "bank" already set to "drums"
CrushedAsian255 what are each of the columns?
2024-07-31 01:16:38
from the XG bank map file MSB (cc0), PRG (pc), LSB (cc32), NME (name or ID), ELC (element count), LVL (support level)
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  with standardized implementations, drums have their "bank" already set to "drums"
2024-07-31 01:16:40
So drums are kind of their own special bank? Thatโ€™s probably why that other program I was talking about treated drums as โ€œ128โ€
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 So drums are kind of their own special bank? Thatโ€™s probably why that other program I was talking about treated drums as โ€œ128โ€
2024-07-31 01:16:46
yup
CrushedAsian255
2024-07-31 01:17:00
I guess bit 7 is saying whether itโ€™s a drum
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:17:31
standard MIDI 1.0 doesn't permit values exceeding 127 though
2024-07-31 01:17:47
internal-use extension perhaps
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  internal-use extension perhaps
2024-07-31 01:19:17
Yeah, probably internal implementation details
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  from the XG bank map file MSB (cc0), PRG (pc), LSB (cc32), NME (name or ID), ELC (element count), LVL (support level)
2024-07-31 01:19:45
Why 3 bytes for programs? Do they really need 2^21 different instruments?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 Why 3 bytes for programs? Do they really need 2^21 different instruments?
2024-07-31 01:22:02
extensibility XG and GM2 use cc0 to set category (XG melodic, MU exclusive, SFX drum kits, normal drum kits), and cc32 to set variations GS uses cc32 to select support level, and cc0 to set variations
2024-07-31 01:23:02
e.g. in XG: cc0=0 (XG melodic), pc=0 (acoustic grand piano), cc32=66 โ†’ Double Concert Grand Piano
CrushedAsian255
2024-07-31 01:23:16
Basically the 15 competing formats xkcd?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:23:40
XD yup
2024-07-31 01:23:50
though only a few popped out
2024-07-31 01:24:25
... well, a few dozen
CrushedAsian255
2024-07-31 01:24:27
So are the โ€œbanksโ€ from gm2 actually variations?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  ... well, a few dozen
2024-07-31 01:24:34
Arghโ€ฆ
2024-07-31 01:24:47
Iโ€™m sticking to GM1 until I understand this mess
2024-07-31 01:25:02
Also what standard do SMF (.MID) files use by default?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 So are the โ€œbanksโ€ from gm2 actually variations?
2024-07-31 01:25:10
cc32 selects variations, cc0 selects type
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  cc32 selects variations, cc0 selects type
2024-07-31 01:26:16
So from most to least significant, itโ€™s โ€œtype.program,variationโ€?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 Also what standard do SMF (.MID) files use by default?
2024-07-31 01:26:26
most just assume GM1 if a MIDI file uses any from most of the standards listed above, they will contain SysEx strings (if not for god's sake, you must infer from cc0 and cc32 messages...)
CrushedAsian255 So from most to least significant, itโ€™s โ€œtype.program,variationโ€?
2024-07-31 01:26:48
yes, most standards model like this
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  most just assume GM1 if a MIDI file uses any from most of the standards listed above, they will contain SysEx strings (if not for god's sake, you must infer from cc0 and cc32 messages...)
2024-07-31 01:28:12
So for just listening to MIDI files, I can ignore most of this conversation, and it will only come back to bite me if I start using MIDI for music composition with hardware and what-not
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 So for just listening to MIDI files, I can ignore most of this conversation, and it will only come back to bite me if I start using MIDI for music composition with hardware and what-not
2024-07-31 01:28:46
only if those MIDI files aren't conforming to a standard newer than GM1
2024-07-31 01:29:34
an example in XG ~~any extension to GM will sound richer than GM due to having more features tbh~~
CrushedAsian255
2024-07-31 01:31:47
What program is that?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:31:59
Octavia Cambiare
CrushedAsian255
2024-07-31 01:32:20
Iโ€™m gonna go memorise the entire midi spec with all the extensions now, cya and thanks for the discussion
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-07-31 01:32:29
XD yw
2024-07-31 01:33:15
though keep yourself to GM2 at first before you begin to lose your mind
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  extensibility XG and GM2 use cc0 to set category (XG melodic, MU exclusive, SFX drum kits, normal drum kits), and cc32 to set variations GS uses cc32 to select support level, and cc0 to set variations
2024-07-31 01:34:42
One last thing, what the heck is support level?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
CrushedAsian255 One last thing, what the heck is support level?
2024-07-31 01:36:38
unrelated to GM1 and GM2, but some of the other standards have released multiple revisions, so some instruments may not be available if you're below a certain support level/revision
2024-07-31 01:37:29
enormous rabbit hole
CrushedAsian255
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด  enormous rabbit hole
2024-07-31 01:37:39
Too lateโ€ฆ.
2024-07-31 01:37:49
I ainโ€™t getting sleep tonight
spider-mario
2024-08-01 09:45:49
needs more jpeg
CrushedAsian255
spider-mario needs more jpeg
2024-08-01 11:30:21
Is that on someoneโ€™s actual website?
spider-mario
2024-08-01 11:31:16
itโ€™s in a PDF I found on libgen
2024-08-01 11:31:21
but I have found a higher-quality version
2024-08-01 11:31:34
2024-08-01 11:31:42
I can at least read the text now
2024-08-01 11:32:05
well, not in that discord preview
CrushedAsian255
2024-08-01 11:35:19
Bro donโ€™t use JPG for a pdf lol
spider-mario
2024-08-01 11:39:40
this could be a vector drawing, for sure
jonnyawsom3
2024-08-01 12:18:54
It could just be test on a PNG background (Probably, I've not actually made a PDF since 2016)
A homosapien
CrushedAsian255 Bro donโ€™t use JPG for a pdf lol
2024-08-01 04:06:31
Unfortunately, most people simply believe that jpeg is always smaller than PNG. So when it comes to compressing PDFs, I've seen a lot of textbooks with 4:2:0 jpegs at quality 30-50. Text is barely legible. ๐Ÿ˜”
2024-08-01 04:16:06
I would use pngquant+oxipng to keep *text* in *text*books readable. Then take all the photographic images and compress them properly with jpegli.
2024-08-01 04:20:18
I mean it would be best to keep icons/graphs/text in its original vector format, but people seem to be allergic to best practices and do dumb things like rasterize SVGs for no reason.
jonnyawsom3
2024-08-01 06:04:12
Again, couldn't you just use text itself instead of embedding the text into an image? Or have I been misunderstanding PDF all my life
A homosapien
2024-08-01 06:45:23
That's up to the publishers to distribute a good quality PDF
2024-08-01 06:48:54
It's honestly a coin flip depending on the source. I've seen both kinds when obtaining college textbooks online.
spider-mario
2024-08-01 10:56:10
to be clear, the image above was just the cover page
2024-08-01 10:56:16
the rest of the book is proper text
CrushedAsian255
spider-mario the rest of the book is proper text
2024-08-01 11:02:02
good
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-08-04 04:22:01
https://pt.thishorsie.rocks/w/uv6TXopveRk8mmq3TxPDk3 the MIDI rabbit hole, no plugins involved
Meow
A homosapien Unfortunately, most people simply believe that jpeg is always smaller than PNG. So when it comes to compressing PDFs, I've seen a lot of textbooks with 4:2:0 jpegs at quality 30-50. Text is barely legible. ๐Ÿ˜”
2024-08-05 06:29:20
Recent tutorials on YouTube do tell that PNG is more efficient for shapes and texts
A homosapien
Meow Recent tutorials on YouTube do tell that PNG is more efficient for shapes and texts
2024-08-05 06:31:57
the world is healing ๐Ÿฅฒ
CrushedAsian255
Meow Recent tutorials on YouTube do tell that PNG is more efficient for shapes and texts
2024-08-05 07:06:35
Maybe JXL should have a feature where it detects these kind of images and automatically switches to lossless
2024-08-05 10:03:05
like if it detects a lot of flat colours and be like "hmm, this seems like something Modular would want"
_wb_
2024-08-05 10:08:33
One complication is that in the libjxl API the choice between XYB and no-XYB is made in advance and by the application, so it's not something that can be decided when the actual image data is available to the encoder.
2024-08-05 10:11:18
(and if you're going to do lossless, you should stay in RGB, going to XYB will compress worse, unless you quantize the XYB more than what is needed to avoid losing information)
JendaLinda
2024-08-05 10:14:53
It's amusing to see jpeg used for flat colored manufacturer logo on the BIOS boot screen. The jpeg artifacts are amplified by the crappy washed-out laptop screen.
CrushedAsian255
_wb_ (and if you're going to do lossless, you should stay in RGB, going to XYB will compress worse, unless you quantize the XYB more than what is needed to avoid losing information)
2024-08-05 10:42:04
Is RGB<->XYZ not reversible ?
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
JendaLinda It's amusing to see jpeg used for flat colored manufacturer logo on the BIOS boot screen. The jpeg artifacts are amplified by the crappy washed-out laptop screen.
2024-08-05 10:42:10
JPEG for logos... wow...
JendaLinda
2024-08-05 10:56:19
Another manufacturer used jpeg for all graphics in the BIOS Setup. They used very low quality because jpeg is too inefficient for those sharp shapes. The're trying to do fancy graphics but the result looks all ugly and lame.
CrushedAsian255
JendaLinda Another manufacturer used jpeg for all graphics in the BIOS Setup. They used very low quality because jpeg is too inefficient for those sharp shapes. The're trying to do fancy graphics but the result looks all ugly and lame.
2024-08-05 10:59:57
Someone inform them of the existence of PNG
JendaLinda
2024-08-05 11:06:02
For compariso. This is what manufacturers were able to pull off in early 90s. https://i0.wp.com/socket3.wordpress.com/wp-content/uploads/2018/06/486pcbuild-21.jpg
2024-08-05 11:06:52
It uses just standard VGA text mode with custom fonts.
2024-08-05 11:17:02
The famous Energy Star logo present on every POST screen was also made of text characters using a special font.
2024-08-05 11:26:38
Considering there was not much space to do eye candy as the entire BIOS had to fit inside EPROM and larger EPROM would be more expensive..
jonnyawsom3
CrushedAsian255 Maybe JXL should have a feature where it detects these kind of images and automatically switches to lossless
2024-08-05 01:08:19
One day, my beloved https://github.com/libjxl/libjxl/pull/1395
CrushedAsian255
One day, my beloved https://github.com/libjxl/libjxl/pull/1395
2024-08-05 01:10:38
The ability for all these different approaches to image processing is one of my favourite parts of this format
_wb_
CrushedAsian255 Is RGB<->XYZ not reversible ?
2024-08-05 03:59:02
RGB to XYB is reversible in the mathematical sense, but when working with finite precision numbers it isn't (or rather, you'll need quite a lot of extra bits to make it reversible). Currently when we have to convert RGB to integer XYB (like in lossy modular), we are roughly adding 4 bits of precision or so, so 8-bit RGB becomes 12-bit XYB. That's not enough to make it exactly reversible, but good enough to be close enough (i.e. maybe you'll get an off-by-one here and there in the blue channel but you won't see that). But doing lossless compression on that 12-bit XYB data is going to be less effective than doing it on the original 8-bit RGB data...
Traneptora
2024-08-05 04:07:20
it's a nonlinear transform so you'd need to have to have difference in precision yea
_wb_
2024-08-05 04:12:42
even linear transforms like YCbCr will require some extra precision if you want to make it reversible... but yes, a nonlinear transform like XYB even more so
Demiurge
_wb_ One complication is that in the libjxl API the choice between XYB and no-XYB is made in advance and by the application, so it's not something that can be decided when the actual image data is available to the encoder.
2024-08-05 11:37:21
Why would a library user know or care about whether to use xyb?
2024-08-05 11:38:32
Typically the only parameter most users care about is quality-factor
2024-08-05 11:39:22
All other parameters should be optional...
JendaLinda
2024-08-06 07:41:30
I know right? Just give the library an RGB pixel array and let the library decide which color encoding is the most appropriate.
_wb_
2024-08-06 09:01:49
Yes, that's kind of how it works: if you set it to lossless it will use RGB, if you set it to lossy it will use XYB. The thing is, if you set it to lossy but then you want to have an encoder that still tries lossless too in some cases, it's a bit hard to do with the current API...
CrushedAsian255
_wb_ Yes, that's kind of how it works: if you set it to lossless it will use RGB, if you set it to lossy it will use XYB. The thing is, if you set it to lossy but then you want to have an encoder that still tries lossless too in some cases, it's a bit hard to do with the current API...
2024-08-06 12:11:42
Add a check before the conversion?
2024-08-06 12:11:54
Like just a quick heuristic
Traneptora
CrushedAsian255 Add a check before the conversion?
2024-08-06 12:53:22
currently the library exposes xyb as an option, which defaults to true, and the function SetLossless or whatever it's called just sets distance to 0 and xyb to false
2024-08-06 12:53:59
the library still respects whatever that option is set to, which makes it hard to choose internally based on the current API
Quackdoc
2024-08-06 03:34:35
I mean, neither of these really address why we should *need* encryption. Yes https is nice, but a lot of services just don't need it
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
_wb_ Yes, that's kind of how it works: if you set it to lossless it will use RGB, if you set it to lossy it will use XYB. The thing is, if you set it to lossy but then you want to have an encoder that still tries lossless too in some cases, it's a bit hard to do with the current API...
2024-08-06 03:51:50
does setting it to modular also switch it to RGB?
_wb_
2024-08-06 04:56:21
No, just setting libjxl to modular will still do xyb and lossy modular (distance 1 is default)
๐‘›๐‘ฆ๐‘•๐‘ฃ๐‘ธ๐‘ฅ๐‘ฉ๐‘ฏ๐‘ฆ | ๆœ€ไธ่ชฟๅ’Œใฎไผๆ’ญ่€… | ็•ฐ่ญฐใฎๅ…ƒ็ด 
2024-08-06 05:38:16
is there a way to set modular lossy JXL to use RGB?
_wb_
2024-08-06 06:34:44
Yes.
TheBigBadBoy - ๐™ธ๐š›
2024-08-06 11:44:18
https://www.cnn.com/2024/08/05/business/google-loses-antitrust-lawsuit-doj/index.html
Quackdoc
2024-08-07 12:49:12
time to push stract
2024-08-07 01:07:27
ive read this and quite frankly it's kinda stupid > Do you really want someone injecting scripts, images, or ad content onto your page so that it looks like you put them there? I really couldn't care. if im running a gallery it's not something I need to worry about. sure they can, in fact one of the examples given as to why this is bad, is actually extremely nifty https://twitter.com/konklone/status/598696478018666496 This is dope, I find this really neat and cool > Or changing the words on your page? Or using your site to attack other sites? a minor nuisance, but again, not something I care about. Tech news source like phoronix (not counting the forums) probably doesn't need to care either.
2024-08-07 02:06:36
any site that has a user logging in should have https for sure
VcSaJen
2024-08-07 10:04:54
https://www.techspot.com/news/104150-mozilla-doomed-suffer-worst-consequences-google-antitrust-defeat.html
2024-08-07 10:06:09
> The recent ruling could be an existential threat to the future of Firefox
Oleksii Matiash
2024-08-07 12:20:52
F to firefox. Btw, millions to management always wondered me, knowing the fact that market share of ff is constantly decreasing, i.e. profit of the management's work is below zero
drkt
Oleksii Matiash F to firefox. Btw, millions to management always wondered me, knowing the fact that market share of ff is constantly decreasing, i.e. profit of the management's work is below zero
2024-08-07 12:29:00
Yeah I'm not shedding tears despite being a firefox user They've spent so much money on anything but the browser. Maybe it'll jostle their noggin a bit to have their free money taken away
Oleksii Matiash
drkt Yeah I'm not shedding tears despite being a firefox user They've spent so much money on anything but the browser. Maybe it'll jostle their noggin a bit to have their free money taken away
2024-08-07 12:45:14
Probably the same, despite I'm also a ff user, and really don't want to switch to chrome. Unfortunately, as far as I know - there are only two really existing options now - ff or chrome
drkt
Oleksii Matiash Probably the same, despite I'm also a ff user, and really don't want to switch to chrome. Unfortunately, as far as I know - there are only two really existing options now - ff or chrome
2024-08-07 01:14:28
I'm spiteful enough of Google that I would just use obscure forks of FF until the end of time
VcSaJen
drkt I'm spiteful enough of Google that I would just use obscure forks of FF until the end of time
2024-08-07 02:02:36
Obscure forks would eventually stop working due to Gecko becoming outdated. Just look at Pale Moon, the "hard fork" of Firefox: most of the sites are broken on it, despite numerous claims otherwise.
DZgas ะ–
2024-08-07 02:03:35
The best FFmpeg downscale algorithm for 1280x720 to 640x360. The number represents the sum of the differences of all pixel values from the original (RGB); the lower the better. 08442031 lanczos+full_chroma_inp 08461621 spline+full_chroma_inp 08470785 lanczos 08487217 spline 08511933 sinc+full_chroma_inp 08565336 sinc 08612397 area 08612789 area+full_chroma_inp 08638503 bicubic+full_chroma_inp 08652976 bicubic 08705959 bicublin 08773004 bicublin+full_chroma_inp 09151218 experimental 09153765 experimental+full_chroma_inp 09772859 bilinear 09775935 bilinear+full_chroma_inp 10212001 gauss 10219327 gauss+full_chroma_inp 12354815 neighbor+full_chroma_inp 12466807 neighbor 16996154 fast_bilinear 17832417 fast_bilinear+full_chroma_inp -vf "scale=640:360:flags=algorithm"
2024-08-07 02:04:31
Full table N NEAREST B BILINEAR C BICUBIC L LANCZOS ```AVG:09452026 N:10748670 B:09843899 C:08773504 L:08442031 lanczos+full_chroma_inp AVG:09468144 N:10754896 B:09856028 C:08790869 L:08470785 lanczos AVG:09482502 N:10289810 B:10146695 C:08881106 L:08612397 area AVG:09482646 N:10289602 B:10146881 C:08881314 L:08612789 area+full_chroma_inp AVG:09496395 N:10716450 B:09968064 C:08839445 L:08461621 spline+full_chroma_inp AVG:09509650 N:10721820 B:09976679 C:08852886 L:08487217 spline AVG:09607608 N:10609278 B:10161443 C:09021207 L:08638503 bicubic+full_chroma_inp AVG:09613144 N:10612152 B:10162626 C:09024822 L:08652976 bicubic AVG:09635710 N:11516734 B:09671785 C:08842389 L:08511933 sinc+full_chroma_inp AVG:09658276 N:10647750 B:10203251 C:09076142 L:08705959 bicublin AVG:09668686 N:11531968 B:09698361 C:08879077 L:08565336 sinc AVG:09718642 N:10710082 B:10249368 C:09142116 L:08773004 bicublin+full_chroma_inp AVG:10070181 N:10654192 B:10889493 C:09585820 L:09151218 experimental AVG:10076325 N:10654114 B:10900765 C:09596655 L:09153765 experimental+full_chroma_inp AVG:10665029 N:11187614 B:11463640 C:10236003 L:09772859 bilinear AVG:10672849 N:11186366 B:11479508 C:10249586 L:09775935 bilinear+full_chroma_inp AVG:11053472 N:11503602 B:11841380 C:10656907 L:10212001 gauss AVG:11063524 N:11501186 B:11860598 C:10672984 L:10219327 gauss+full_chroma_inp AVG:12099168 N:12417598 B:11829445 C:11794812 L:12354815 neighbor+full_chroma_inp AVG:12342056 N:13042750 B:11930222 C:11928443 L:12466807 neighbor AVG:16968126 N:17991926 B:16171039 C:16713385 L:16996154 fast_bilinear AVG:17772968 N:18853222 B:16881623 C:17524611 L:17832417 fast_bilinear+full_chroma_inp ```
2024-08-07 02:05:01
1280x720 --> 640x360 --> 1280x720 --> diff
VcSaJen
2024-08-07 02:05:15
What is the "original" in the context of downscaling?
DZgas ะ–
2024-08-07 02:05:30
img
VcSaJen
2024-08-07 02:07:01
I mean, I understand how upscaling can have an "original" (compare upscaled downscaled pic to original), but I dunno how downscaling can have an "original".
DZgas ะ–
2024-08-07 02:07:03
I want to note that the AREA algorithm shows itself better than all other algorithms in terms of the actual preservation of information, which can be seen when comparing NEAREST
VcSaJen I mean, I understand how upscaling can have an "original" (compare upscaled downscaled pic to original), but I dunno how downscaling can have an "original".
2024-08-07 02:07:38
how do I compare a 1280 image with a 640 image?
VcSaJen I mean, I understand how upscaling can have an "original" (compare upscaled downscaled pic to original), but I dunno how downscaling can have an "original".
2024-08-07 02:09:07
the most understandable way is to make the same number of pixels as in the original, that is, 1280. that is, to increase their number, and make a comparison with all of them. This is identical to the magnification of the image by NEAREST
VcSaJen
2024-08-07 02:10:25
Preserving borders would lower the score instead of increasing, wouldn't it?
DZgas ะ–
DZgas ะ– Full table N NEAREST B BILINEAR C BICUBIC L LANCZOS ```AVG:09452026 N:10748670 B:09843899 C:08773504 L:08442031 lanczos+full_chroma_inp AVG:09468144 N:10754896 B:09856028 C:08790869 L:08470785 lanczos AVG:09482502 N:10289810 B:10146695 C:08881106 L:08612397 area AVG:09482646 N:10289602 B:10146881 C:08881314 L:08612789 area+full_chroma_inp AVG:09496395 N:10716450 B:09968064 C:08839445 L:08461621 spline+full_chroma_inp AVG:09509650 N:10721820 B:09976679 C:08852886 L:08487217 spline AVG:09607608 N:10609278 B:10161443 C:09021207 L:08638503 bicubic+full_chroma_inp AVG:09613144 N:10612152 B:10162626 C:09024822 L:08652976 bicubic AVG:09635710 N:11516734 B:09671785 C:08842389 L:08511933 sinc+full_chroma_inp AVG:09658276 N:10647750 B:10203251 C:09076142 L:08705959 bicublin AVG:09668686 N:11531968 B:09698361 C:08879077 L:08565336 sinc AVG:09718642 N:10710082 B:10249368 C:09142116 L:08773004 bicublin+full_chroma_inp AVG:10070181 N:10654192 B:10889493 C:09585820 L:09151218 experimental AVG:10076325 N:10654114 B:10900765 C:09596655 L:09153765 experimental+full_chroma_inp AVG:10665029 N:11187614 B:11463640 C:10236003 L:09772859 bilinear AVG:10672849 N:11186366 B:11479508 C:10249586 L:09775935 bilinear+full_chroma_inp AVG:11053472 N:11503602 B:11841380 C:10656907 L:10212001 gauss AVG:11063524 N:11501186 B:11860598 C:10672984 L:10219327 gauss+full_chroma_inp AVG:12099168 N:12417598 B:11829445 C:11794812 L:12354815 neighbor+full_chroma_inp AVG:12342056 N:13042750 B:11930222 C:11928443 L:12466807 neighbor AVG:16968126 N:17991926 B:16171039 C:16713385 L:16996154 fast_bilinear AVG:17772968 N:18853222 B:16881623 C:17524611 L:17832417 fast_bilinear+full_chroma_inp ```
2024-08-07 02:11:08
but I also did a test with more scale algorithms, because very rarely do we watch a 640x360 image on a 640x360 monitor. It is always being scaled. and then I noticed that the excessive sharpness of LANCZOS when the image is downscale is compensated when it is upscale.
2024-08-07 02:11:23
<:Stonks:806137886726553651>
VcSaJen
2024-08-07 02:12:15
Like brush strokes must be thicker on lower resolution to be legible, but it would count against this kind of score
DZgas ะ–
VcSaJen Like brush strokes must be thicker on lower resolution to be legible, but it would count against this kind of score
2024-08-07 02:13:28
I didn't understand what problem you mean.
VcSaJen
2024-08-07 02:15:14
I mean for example you have 1 pixel black dot in an image, and you downscale it. If it becomes light-gray 1px dot it would be visually worse, but it would have higher score.
2024-08-07 02:15:30
Same for 1px wide lines
DZgas ะ–
DZgas ะ– The best FFmpeg downscale algorithm for 1280x720 to 640x360. The number represents the sum of the differences of all pixel values from the original (RGB); the lower the better. 08442031 lanczos+full_chroma_inp 08461621 spline+full_chroma_inp 08470785 lanczos 08487217 spline 08511933 sinc+full_chroma_inp 08565336 sinc 08612397 area 08612789 area+full_chroma_inp 08638503 bicubic+full_chroma_inp 08652976 bicubic 08705959 bicublin 08773004 bicublin+full_chroma_inp 09151218 experimental 09153765 experimental+full_chroma_inp 09772859 bilinear 09775935 bilinear+full_chroma_inp 10212001 gauss 10219327 gauss+full_chroma_inp 12354815 neighbor+full_chroma_inp 12466807 neighbor 16996154 fast_bilinear 17832417 fast_bilinear+full_chroma_inp -vf "scale=640:360:flags=algorithm"
2024-08-07 02:18:27
The best FFmpeg downscale algorithm for 1280x720 to 640x360 for mathematically ideal viewing. That is, when 1 pixel of the image is displayed on 1 pixel of the monitor. 10289602 area+full_chroma_inp 10289810 area 10609278 bicubic+full_chroma_inp 10612152 bicubic 10647750 bicublin 10654114 experimental+full_chroma_inp 10654192 experimental 10710082 bicublin+full_chroma_inp 10716450 spline+full_chroma_inp 10721820 spline 10748670 lanczos+full_chroma_inp 10754896 lanczos 11186366 bilinear+full_chroma_inp 11187614 bilinear 11501186 gauss+full_chroma_inp 11503602 gauss 11516734 sinc+full_chroma_inp 11531968 sinc 12417598 neighbor+full_chroma_inp 13042750 neighbor 17991926 fast_bilinear 18853222 fast_bilinear+full_chroma_inp
VcSaJen I mean for example you have 1 pixel black dot in an image, and you downscale it. If it becomes light-gray 1px dot it would be visually worse, but it would have higher score.
2024-08-07 02:20:31
I still don't understand the problem. I'm calculating the absolute pixel difference. If there were 2 pixels white and black, and they merged into gray, then the difference would be 128 (and 128)
2024-08-07 02:27:35
I just wondered why AREA is the best function mathematically, in terms of the number of diff pixel matches, but lanczos is better because the image we will be looking at will be scaled to the size of the monitor...
jonnyawsom3
2024-08-07 02:33:13
I can't remember if I posted it here, probably did but either way, I decided to use lanczos to downsize some textures from 4K to 2K for Unity, and the difference was very surprising compared to Unity's default bilinear. Makes me wonder why it's the default considering it's a "Write once, ready many times" use case
DZgas ะ–
DZgas ะ– The best FFmpeg downscale algorithm for 1280x720 to 640x360. The number represents the sum of the differences of all pixel values from the original (RGB); the lower the better. 08442031 lanczos+full_chroma_inp 08461621 spline+full_chroma_inp 08470785 lanczos 08487217 spline 08511933 sinc+full_chroma_inp 08565336 sinc 08612397 area 08612789 area+full_chroma_inp 08638503 bicubic+full_chroma_inp 08652976 bicubic 08705959 bicublin 08773004 bicublin+full_chroma_inp 09151218 experimental 09153765 experimental+full_chroma_inp 09772859 bilinear 09775935 bilinear+full_chroma_inp 10212001 gauss 10219327 gauss+full_chroma_inp 12354815 neighbor+full_chroma_inp 12466807 neighbor 16996154 fast_bilinear 17832417 fast_bilinear+full_chroma_inp -vf "scale=640:360:flags=algorithm"
2024-08-07 02:33:14
I wrote AVG a bit stupidly as a basis. I changed the list to Considering that the image will still be scaled (for example, up to the resolution of the monitor)
jonnyawsom3
2024-08-07 02:34:09
I'm assuming not all of those were done in ffmpeg? Since I've never seen mention of full_chroma_inp or area
DZgas ะ–
I can't remember if I posted it here, probably did but either way, I decided to use lanczos to downsize some textures from 4K to 2K for Unity, and the difference was very surprising compared to Unity's default bilinear. Makes me wonder why it's the default considering it's a "Write once, ready many times" use case
2024-08-07 02:34:40
well
I'm assuming not all of those were done in ffmpeg? Since I've never seen mention of full_chroma_inp or area
2024-08-07 02:35:51
Yes, actually it's some bullshit, I had to go into the source code to find it all.
2024-08-07 02:36:18
"bitexact" and "accurate_rnd" have absolutely no effect on anything, identical output
2024-08-07 02:38:14
although it can be found by name in the search Like "lanczos+accurate_rnd"
I'm assuming not all of those were done in ffmpeg? Since I've never seen mention of full_chroma_inp or area
2024-08-07 02:41:10
area is an ultra specific scaling, it scales pixel graphics without blurring
2024-08-07 02:42:28
<:PepeOK:805388754545934396> It's a pity that zero people know about it, it's in OBS. It would be nice if everyone who streams pixel games found out about it
2024-08-07 02:44:52
area bicubic
jonnyawsom3
2024-08-07 02:45:12
I assume the full_chroma_inp is disabled by default due to 4:2:0 on most video and jpeg inputs, surprising they don't do a basic check to do it automatically though
DZgas ะ–
I assume the full_chroma_inp is disabled by default due to 4:2:0 on most video and jpeg inputs, surprising they don't do a basic check to do it automatically though
2024-08-07 02:46:14
Well, this is strange, because I do RGB 24 PNG for input and output
jonnyawsom3
2024-08-07 02:47:18
Yeah, that sounds right based on what I said. They assume 4:2:0 subsampling unless told otherwise, so for PNG it works best enabled
DZgas ะ–
2024-08-07 02:48:51
0,003% better
2024-08-07 02:49:07
I think it doesn't make sense, ever.
2024-08-07 02:49:20
"placebo better"
drkt
VcSaJen Obscure forks would eventually stop working due to Gecko becoming outdated. Just look at Pale Moon, the "hard fork" of Firefox: most of the sites are broken on it, despite numerous claims otherwise.
2024-08-07 02:57:43
You don't understand how much I hate Google I had a dumbphone for 2 years just because I didn't want an Android phone lol
jonnyawsom3
DZgas ะ– 0,003% better
2024-08-07 03:12:27
Yeah, just sticking to Lanczos now that I'm used to it is probably best. It's already a huge improvement over the (unfortunate) default bilinear in most applications
DZgas ะ–
Yeah, just sticking to Lanczos now that I'm used to it is probably best. It's already a huge improvement over the (unfortunate) default bilinear in most applications
2024-08-07 03:14:33
I tried yuv420 for input and RGB24 for output, and when using full_chroma_inp, the quality is still better, by the hundredth percent. But in absolute terms it is definitely better.
2024-08-07 03:16:28
I'm not at all sure, but it's possible that more rounded values are used for the Color pixel scaling. This is the only way to explain that there is a difference in any image for the better, so perhaps when down to 640x360 I will use full_chroma_inp
DZgas ะ– Full table N NEAREST B BILINEAR C BICUBIC L LANCZOS ```AVG:09452026 N:10748670 B:09843899 C:08773504 L:08442031 lanczos+full_chroma_inp AVG:09468144 N:10754896 B:09856028 C:08790869 L:08470785 lanczos AVG:09482502 N:10289810 B:10146695 C:08881106 L:08612397 area AVG:09482646 N:10289602 B:10146881 C:08881314 L:08612789 area+full_chroma_inp AVG:09496395 N:10716450 B:09968064 C:08839445 L:08461621 spline+full_chroma_inp AVG:09509650 N:10721820 B:09976679 C:08852886 L:08487217 spline AVG:09607608 N:10609278 B:10161443 C:09021207 L:08638503 bicubic+full_chroma_inp AVG:09613144 N:10612152 B:10162626 C:09024822 L:08652976 bicubic AVG:09635710 N:11516734 B:09671785 C:08842389 L:08511933 sinc+full_chroma_inp AVG:09658276 N:10647750 B:10203251 C:09076142 L:08705959 bicublin AVG:09668686 N:11531968 B:09698361 C:08879077 L:08565336 sinc AVG:09718642 N:10710082 B:10249368 C:09142116 L:08773004 bicublin+full_chroma_inp AVG:10070181 N:10654192 B:10889493 C:09585820 L:09151218 experimental AVG:10076325 N:10654114 B:10900765 C:09596655 L:09153765 experimental+full_chroma_inp AVG:10665029 N:11187614 B:11463640 C:10236003 L:09772859 bilinear AVG:10672849 N:11186366 B:11479508 C:10249586 L:09775935 bilinear+full_chroma_inp AVG:11053472 N:11503602 B:11841380 C:10656907 L:10212001 gauss AVG:11063524 N:11501186 B:11860598 C:10672984 L:10219327 gauss+full_chroma_inp AVG:12099168 N:12417598 B:11829445 C:11794812 L:12354815 neighbor+full_chroma_inp AVG:12342056 N:13042750 B:11930222 C:11928443 L:12466807 neighbor AVG:16968126 N:17991926 B:16171039 C:16713385 L:16996154 fast_bilinear AVG:17772968 N:18853222 B:16881623 C:17524611 L:17832417 fast_bilinear+full_chroma_inp ```
2024-08-08 09:56:03
Thinking about the algorithms, I accidentally created the best one, which, according to my tests, is much better than all the others, but only when viewing 1 pixel to 1 pixel ```AVG:09468144 N:10754896 B:09856028 C:08790869 L:08470785 lanczos AVG:09482502 N:10289810 B:10146695 C:08881106 L:08612397 area AVG:09509650 N:10721820 B:09976679 C:08852886 L:08487217 spline AVG:09613144 N:10612152 B:10162626 C:09024822 L:08652976 bicubic AVG:09658276 N:10647750 B:10203251 C:09076142 L:08705959 bicublin AVG:09668686 N:11531968 B:09698361 C:08879077 L:08565336 sinc AVG:09770199 N:10330400 B:10113765 C:09318488 L:09318142 selected neighbor by lanczos -> AVG:09924636 N:10136404 B:10410203 C:09555748 L:09596187 selected neighbor AVG:10070181 N:10654192 B:10889493 C:09585820 L:09151218 experimental AVG:10665029 N:11187614 B:11463640 C:10236003 L:09772859 bilinear AVG:11053472 N:11503602 B:11841380 C:10656907 L:10212001 gauss AVG:12342056 N:13042750 B:11930222 C:11928443 L:12466807 neighbor```
2024-08-08 09:57:54
instead of Adding the sum of pixels, the original pixel is selected, which is most similar in color to the sum of pixels