|
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
|
|
|
MR.boring
|
|
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
|
|
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
|
|
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
|
|
CrushedAsian255
|
2024-07-28 06:35:10
|
also how dare they send a jpeg instead of a jxl
|
|
|
jonnyawsom3
|
|
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: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?
|
|
|
๐๐ฆ๐๐ฃ๐ธ๐ฅ๐ฉ๐ฏ๐ฆ | ๆไธ่ชฟๅใฎไผๆญ่
| ็ฐ่ญฐใฎๅ
็ด
|
|
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_
|
|
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 ะ
|
|
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
|
|