#đŸ„€â ‚Smoothie

1 messages · Page 2 of 1

old summit
#

i mean that i would rather take larger binaries than have to wait multiple seconds just for the program to start

velvet tapir
#

honestly 50 mb isn't bad

old summit
#

50 was the size without upx?

velvet tapir
#

just check releases

old summit
#

ya thats not bad at all

#

ive also heard that upx'd executables can cause problems with some antiviruses but i dont have a source on that

#

both from av1 server community builds channel

velvet tapir
#

honestly i won't worry about it

old summit
proper grove
#

Why wouldn't it be viable?

#

What do you mean by you need a good enough PC?

#

Also, does anyone have any smoothie settings that would be good for teamfights?

#

Or is this all just uncharted territory?

old summit
faint path
#

me wen upx triggers peoples antiviruses

proper grove
#

cos ur a crazy man

faint path
#

i also spent some time trying to optimize vtrls msi bundle size

#

to save on bandwidth

#

but in the end i just made cloudflare cache it

#

not worth it

old summit
faint path
#

23h render i think

#

like 8k fps rife

#

2k res

#

not worth it

proper grove
#

why not

#

surely if u upload only occasionally its worth it

#

anyways u guys can do what u want I was just asking before and now im waffling

faint path
#

you see

proper grove
#

If anyone thinks they have good smoothie settings for teamfights lmk!

faint path
#

i made even greater renders after that

#

without spending sm time on rife

proper grove
#

whats rife

faint path
#

pre interp in smoothie

#

slow but accurate interpolation using ai model

faint path
#

so that your videos will be unique

proper grove
#

holy

#

so much about this

#

I just wanna upload povs that dont look dogshit 😭

#

is there any specific smoothie settings that everyone is using rn

faint path
#

btw what were you even discussing

#

fuck train wifi

faint path
#

check out #⭐render-hall-of-fame

mint goblet
#

every1 called me weird when istarted doing flowframes

tulip thorn
merry lintel
#

To be fair what I could to have the least amount of render time but still good results was record in the highest quality possible in my case 1080p 360 fps cqp 14, 2x pre interp, then 2x with regular interp, and blend to 60 in smoothie, cause I’ve tried up to 360 input interp’d to 6000 fps, (yes I know there are diminishing returns but even at 6000fps interp it still about 10fps for my system which goes by fast. And the 6000 svp interp with weak, medium, 12, block size 8, still had more artifacting then just 2x pre and 2x after down to 60

#

Just the results from my testing speed and artifact wise both better then just a high svp interp

#

Still testing more different settings till I find something faster with similar results without having to lose quality in the interp settings I don’t like using faster or block size 16+ adds to the crosshair artifacting thus i don’t use em

#

On he bright side smoothie runs really fast with just 2x rife and 2x svp with masking, just 17fps so clips render rather efficiently

mint goblet
#

wait nvm more line .45x? whats ur pc??

merry lintel
#

3080 12gb, though I run it at almost 2.3-2.4 GHz depending on how cool I can keep it, it’s also shunt modded, and I have everything on smoothie set to use just gpu, gpu render, encode, gpu interp accelerated

#

There’s a reason I always complain about how slow cpu encoding be 😭

#

It slows down the renders

#

Smoothie uses like 15% of my cpu and 75% of my gpu

#

Doesn’t even tax my system at all

#

I posted a screenshot of it either here or in video-discussion

#

I got processing power to spare

#

This was like 30% rendered a 1 minute long video, cause I know when smoothie first starts rendering it has a ramp up till you get to your average render fps

#

This is also where the rife cuda accelerated interpolation stemmed from, in flowframes rife cuda renders were always a good 30% faster then Vulcan rife for me, thus why the conversation of cuda rife on smoothie began but at the time someone told me it was incompatible with smoothie at the time

mint goblet
#

i need too try this

drifting rune
#

std???!!???

velvet tapir
mint goblet
velvet tapir
#

👍

mint goblet
#
∞
faint path
#

frick you

#

with all due respect

#

kind regards

mint goblet
#

Buffoon.

faint path
#

z1xus

mint goblet
#

Couleur.

#

(From Couleur Tweak Tips)

faint path
#

Sent From*

mint goblet
#

what would be a good way to all of the new users that get bound to ask "what is a good recipe for X?"

#

we get them asked a lot if it'd be a great TL;DR

old summit
#

and if theres any problems they can describe their issue here and send the config they used (or figure it out themselves)

mint escarp
#

also i think cooler is talking abt smoothie though

mint goblet
#

:')

old summit
#

oh yeah

old summit
#

well theres gemstorms config tool

#

idk if the website still exists

mint goblet
#

mine does

old summit
#

link that

#

the fact is that configuring blur is shockingly simple for a VAST majority of cases

#

theres like 3 settings that people know how to touch and even make a difference

#

the rest just has to be somewhat reasonable ish and youll be fine

#

and in the rare case that its not good enough they can always ask

#

same goes for smoothie

mint escarp
#

jus give em smth basic like

[interpolation]
enabled: yes
fps: 5x
speed: medium
tuning: weak
algorithm: 23
use gpu: yes

[frame blending]
enabled: yes
fps: 60
intensity: 1.0
weighting: equal

[output]
process: ffmpeg
enc args: -c:v libx264 -preset slow -crf 17 -aq-mode 3 -pix_fmt yuv420p10le -c:a copy
file format: %FILENAME% ~ %FRUIT%
container: .mp4

they can just paste that in

#

and all the fancy stuff they prob wont use wont be in the way

old summit
#

sure yeah

#

that does mean they have to infer or have someone explain to them that not all settings need to be in the config

mint goblet
#

just yall wait for sm gui :3

old summit
#

and that youll have to provide another one for 30fps unless im out of the loop and this one is fine

mint escarp
#

prob explain

mint goblet
#

seamless integration into my whole cli/tui ecosystem, so proud of how it's planned out

mint escarp
#

ive given ppl configs like that and they didnt know if they had to paste just that or replace the sections

old summit
#

so seems like a win to me?

mint escarp
#

cooler imo you should add COPY to the default encoding args

mint goblet
#

wat?

mint escarp
#

default recipe has enc args: H264 CPU

#

but you have a COPY macro for c:a copy

mint goblet
#

u mean -c:a copy

#

oh yea

#

cant find a single normie who'd care

mint escarp
#

yeah but why not

#

if they dont care then they prob wont be messing with the encoding args

mint goblet
#

enc args are confusing enough

mint escarp
#

had the idea cause i saw this

old summit
mint goblet
#

theyre free to bloat it up then

old summit
#

its faster to type -c:a copy than to open up the github repo and search for the file with the macro definitions and learn that it exists

mint goblet
#

no just type smrs enc

#

opens ur encoding_presets.ini

old summit
#

wher

mint goblet
#

or smrs rc

#

in cli!

old summit
#

as if i have this installed

mint goblet
#

đŸ§™â€â™‚ïž

mint escarp
#

also maybe output to 10 bit for those cpu presets

mint goblet
#

just open da file..

mint escarp
#

why

mint goblet
old summit
#

that will break like everything

mint goblet
#

10B: -pix_fmt yuv420p10le

mint escarp
mint goblet
#

^~^

old summit
#

but a lot of people do

mint escarp
#

oh

mint goblet
#

c:a copying a mov file into mp4 may have incompatible audio codec

hexed vortex
#

only apple devices afaik

mint escarp
#

most editing softwares should be fine with it no

#

its 2024

mint goblet
#

10bit in vegas might fuc up

old summit
mint goblet
#

soo

mint escarp
#

thats so stupiud

mint goblet
#

yea okie some good nerdy tings

#

theyre easy to access

old summit
#

i doubt ms clipchamp likes 10 bit

#

havent tried but i doubt it

mint goblet
#

but im not gonna shove 10BIT CA COPY to the normies i think

hexed vortex
# mint escarp thats so stupiud

hevc/av1 go crazy go 10bit everything with support of those does do 10bit but h264 10bit is literally indecodable outside of apple silicon

mint goblet
#

i can make a nerd recipe config course to get them crispy diminishing of diminishing returns

hexed vortex
#

i am convinced you don't have ears if you don't instantly notice it missing and listen to 128k ff aac

mint goblet
#

and output container mp4.

old summit
#

đŸȘŠ

mint goblet
#

yea that right there

old summit
#

the ppl who dont hear it dont have to

hexed vortex
old summit
#

if they do hear it they will either know to add it or complain and have someone explain that they have to add it

hexed vortex
#

but true that

mint goblet
#

havent seen a single mf complaining about audio sounding worse

hexed vortex
#

alternatively add "HQAUDIO" that does "-b:a 384k -c:a aac"

mint goblet
#

was boutta suggesr smth like that ya

#

and NOAUDIO for -an

old summit
#

thats literally longer man

mint goblet
#

when le macro longer than le real expanded arg

old summit
#

😭

mint goblet
#

but easier to remember

#

tf does a and n stand for

#

audio null?

old summit
#

audio null

#

probably

hexed vortex
#

i always read it as "audio no" in my mind lmao

old summit
#

same word if you trace it far enough

jolly musk
mint goblet
#

movflags=+empty_moov+frag_keyframe

mint goblet
#
git clone https://github.com/couleur-tweak-tips/smoothie-rs -b gui
#

I'm stuck trying to make a mutable reference to the hasmap which contains the recipe

#

if anyone is willing to contribute anything i'd really appreciate, struggling out here

mint escarp
#

oh my i think you should do like tabs

#

instead of all on one page

mint escarp
#

u need more than 1?

mint goblet
mint goblet
#

im tryna add text fields which need a value that can be set / retrieved as the user changes it

faint path
#

reactive?

mint goblet
#

and that value is nested inside of a hashmap so i gotta retrieve it

mint goblet
faint path
mint goblet
#

@devout crypt pushed a new version which should hopefully fix this

devout crypt
#

nice, ill give it a go later

mint goblet
#

will release any minute now seccc

#

@near remnant @devout crypt its up

mint goblet
#

wireframe looking cool

mint escarp
#

algo 13 already does this though

merry lintel
#

Doesn’t hurt to have another for low fps input users :3

mint escarp
#

algo 13 is adjustable

#

actually no i think all of them have it

jolly musk
#

You could maybe do some sort of difference algorithm and assign a value to each pixel for how much it changes throughout the video

#

And set a threshold for pixels under that value to be masked

#

Idk if that’d be easy to add but I’m just throwing out ideas

merry lintel
# mint escarp

so just increase area for stronger mask? or add the cover tag?

mint escarp
#

yes

mint escarp
merry lintel
#

i mean better automasking will atleast be faster then rife?

#

also add it under the interpolation tab right?

#

is this fine the defaults values for them right?

mint escarp
#

i’m not sure if smoothie supports those

mint goblet
#

but if you just want a single static mask for the video it shouldn't be slowing down the rest of the rendering after it's been processed in comparison to how it's currently implemented

old summit
mint escarp
mint goblet
#

@tardy ferry @near remnant

near remnant
#

that looks nice

mint goblet
merry lintel
#

question, ik it's a dumb question but would omitting timescale, dedup, colorgrading, basically anything that isnt interpolation, blending, and masking speed up the render or any benefit to speed? and by removing not just disabling it cause I don't use them but entirely removing it from the code

#

just curiosity

mint escarp
merry lintel
#

source code

#

simplifying it of sorts to just do interp and blend

#

like a lite version of the software with just the two main purpose of the program

mint escarp
#

i mean it’s basically an if setting enabled, do thing

#

so if it’s off then it’ll skip it

#

removing some if statements would provide basically no benefit

old summit
#

actually thats the long answer too

merry lintel
#

I understood that, was just wondering

#

like skippping the need to make checks, and settings that potentially u dont know if on or not, just a general simplification of the program if it has any speed benefit

#

but if the answer is no then no it is

#

like the original statement just curiosity fr

mint escarp
#

checking if a string is in a map is a very fast operation

merry lintel
#

I ain't as technically gifted when it comes to coding and stuff like that like everyone else

mint escarp
#

dw it’s fine

merry lintel
#

im a ask questions, test, fail, or whatever try again, type deal with figuring stuff out, but if it's coding just one fuck up and fuck shit up

mint escarp
#

just know that checking if something is on or off is like the least demanding thing smoothie is doing

merry lintel
#

thank yals for the info, fair warning I tend to poke brains with questions like that more often then not so if it bothers just let me know

mint goblet
#

open up jamba.vpy

#

delete this, no more color grading

merry lintel
#

me = fucks up code more often then likes to admit
couleur = go edit the code

#

I'll make attempts

#

lets see how fast I can break it

mint escarp
old summit
merry lintel
#

just letting you know the question was based off of no knowledge on how the program even works only on what it does and if there was anyway to make it faster

old summit
#

if a setting isnt found in the config itll be set to the default value

#

and it proceeds as normal

#

so its the exact same as just having the default there

merry lintel
#

the part of the brain that comprehends coding is as smooth as butter for me

#

ty

old summit
#

it works likethis for programmers too dw

mint escarp
old summit
#

doesnt matter in this case though

#

its the same operations either way

mint escarp
#

yeah ik

#

im just explaining how smoothie works

drifting rune
#

Blud is broke if they flipping pumpkins tho

#

Get on my@level whoever made that

merry lintel
#

i need some like that for bitcoin, buy shares when value is below 66k sell shares when it's over 71k, free profit everytime it drips then climbs higher each time

mint escarp
#

i am ngl

#

i thinjk rife is faster than the svp hack

#

@mint goblet another thing

#

if --peek and -o is being used, and you have encoding args set, it wont work

#

wont work as in its gonna encode the image with video encoding args

mint goblet
mint escarp
#

so i think warn about it

#

i was getting confused as to why the images wouldnt open

#

and then i ffprobed and realized.

mint goblet
#
  • Logging system for ffmpeg / VapourSynth
  • Progress bar?
mint escarp
#

progress bar for ffmpeg is annoying

#

imo i like just pretty output better

mint goblet
mint escarp
#

like just show fps speed in a nice way

jolly musk
jolly musk
#

I disagree honestly

#

It’s a lot more practical for me to just glance at the window and immediately see the render is 1/3 complete

#

Instead of having to look at the seconds, remember how long the video is, then think “hmmm has about 30 seconds left, but how fast is it going

 hmmm that’s 3 minutes left on the render?”

mint escarp
#

noo not the progress bar itself

#

coding it

jolly musk
#

actually very real

mint escarp
#

you have to regex it and its annoying as hell

jolly musk
#

If only someone had taken the time to code a progress bar for ffmpeg in one of their programs

#

hmmm

hexed vortex
#

fuck regex i managed to get the output % by ffprobe and just text splitting ffmpeg output

mint escarp
#

would not work for --peek

hexed vortex
#

^ smart man

#

great minds think alike

jolly musk
#

I think I had ffmpeg output it somewhere else though

#

Can’t remember the arg

hexed vortex
#

ffmpeg output is not even good if you know what you're looking at

#

my ass is not remembering how long the input is

jolly musk
#

That’s why I love progress bars

#

Also ETA

#

That was a bit annoying to code

#

But it is so nice

hexed vortex
#

not really

#

if you want an insanely simple one just divide time left by speed

jolly musk
#

I forgot to think through it first so I spent 15 minutes doing it

hexed vortex
#

speed doesn't fluctuate at all if cpu speed doesn't change

hexed vortex
jolly musk
#

And I’m a fan of visually appealing stuff so I then spent 30 minutes writing a formatting function so the time would look nice

jolly musk
#

That was mine I think

jolly musk
#

Total is the total length of the video

#

Current is the current time of the video completed (?)

#

It’s what ffmpeg tells you in time

hexed vortex
#

ah i see

#

how would that get an eta

jolly musk
#

Let me read it and tell you because I forgot

hexed vortex
#

if video is x seconds long and y seconds have been encoded you can't know the ETA if you don't know the speed or real time elapsed

jolly musk
#

actual time since starting * time left / current time

#

Uh
?

#

I’m not sure how it works but it works

#

Let me stare at it more

jolly musk
hexed vortex
#

real time?

jolly musk
#

elapsed time * video time remaining / current time in video

jolly musk
#

Oh so it finds speed

hexed vortex
#

ah ic ic

hexed vortex
#

but ffmpeg's speed is stable enough to where I'd consider it okay

jolly musk
#

I have that fixed for the fps display

hexed vortex
#

why would you fix that

jolly musk
#

I have an average fps and fps from the past second

hexed vortex
#

i'd say it's better to have an avg value

jolly musk
#

“fixing” as in including a “past 5 seconds ETA”

hexed vortex
#

ah ic

jolly musk
#

But yeah it’s stable enough

#

I’m usually not doing something like interpolation or any fancy things

jolly musk
#

I’m trying to think of something that’d be very scene-dependent

hexed vortex
#

usually if nothing changes speed stays constant for the entire encode except the start and maybe CPU PL2 running out

hexed vortex
jolly musk
#

I think I scrapped deduplication but I can’t remember

hexed vortex
#

also actual usage of the pc, say you're running a game in the foreground that takes 40%

#

possibly thermals but that changes gradually over time

cloud cedar
#

is that a way in Smoothie to change the res of the video? Like it has on blur?

Like strach a video from 1920x1080 to 1080x1920 for example?

#

I've read all the ctt website and was not able to find any info about it

#

just width and L of the console

mint goblet
fickle badge
#

add fucking discord RPC to smrs

#

user is rendering a video (2x RIFE, 1.2 blur amt). . .
69% complete. . .

drifting rune
#

My 400k Config leaked from this

#

GGWP

#

400000 usd down drain

merry lintel
drifting rune
#

1.0 30fps vegas weight 480input 1920interp

mint goblet
fickle badge
#

do it yk you want to

#

add discord rpc so “private” recipes get leaked

faint path
#

add telemetry to smoothie

#

make it install yandex browser and run on startup

fickle badge
#

yess

faint path
#

sry confused chats with vtrl development

mint goblet
faint path
#

oh yeah we stole your code to interpolate our code in real time

#

have you seen godzilla vs king kong the movie

fickle badge
#

this must be against the license

mint goblet
#

progress bar? idk

support to say yes or no in 18408714087140897 ways? more r&d engeering than all big tech

fickle badge
mint escarp
#

@mint goblet yk we cant sned msgs here right

mint goblet
#

should b fixed

mint goblet
#

@modern valve

#

no idea how i'd even implement it

modern valve
#

same

#

look how you made it with rife

mint goblet
modern valve
#

oh

#

err

#

another option? is it possible?

#

maybe make it selectable?

#

factor / custom

mint escarp
mint goblet
mint escarp
#

oh

#

i like factors

#

instead of slider

mint goblet
#

i mean it'd be a slider as well

#

just

#

not the same ballpark

mint escarp
#

i mean interpolated fps should always be a multiple right

modern valve
#

wwait

#

you could use factors in smoothie?

mint escarp
#

yes

modern valve
#

ERRR

merry lintel
#

I have question, said question is my fps recorded always comes out awkward 119.9fps recorded, do I factor interpolate to keep the original fps and interpolate multiples of itself, or should I interpolate it to an exact multiple of 120fps like 12000, since it is being blended down to 60?

#

To simplify do I interpolate 10x (19,966) or directly to 12,000, by typing in the fps in

#

I can’t control the recordings sent to me to render so they always gimmicky

mint escarp
#

ive done both and they always turn out fine

#

my recordings r like that too sometimes

#

never noticed an issue with interp

jolly musk
#

You shouldn’t be interpolating above ~2.5k fps though

merry lintel
#

mightve added an extra zero i like just woke up

#

but yeah 1,996 or 1200

#

it was a 10x interp

#

original fps was 119.96

#

ik its a small difference was just wondering

mint escarp
#

i always just do factors

#

but it shouldnt make a diff

jolly musk
#

You won’t notice any difference whatsoever

mint goblet
#

I think I cooked the perfect CLI / GUI mixture in a single binary

#

All of the advantages with none of the inconveniences

mint goblet
#

except that its fine

modern valve
#

but

#

the make shortcuts.cmd file exists

#

I used it to add smoothie to path

mint goblet
merry lintel
#

😭

mint escarp
#

@mint goblet instead of this

   let variables = vec![
        ("interpolation", "fps", "INTERP_FPS"),
        ("interpolation", "speed", "SPEED"),
        ("interpolation", "tuning", "TUNING"),
        ("interpolation", "algorithm", "ALGORITHM"),
        ("frame blending", "fps", "OUTPUT_FPS"),
        ("frame blending", "intensity", "BLUR_AMOUNT"),
        ("frame blending", "weighting", "WEIGHTING"),
        ("flowblur", "intensity", "FLOWBLUR_AMOUNT"),
        ("miscellaneous", "dedup threshold", "DEDUP"),
        ("pre-interp", "factor", "FACTOR"),
    ];

i think it would be better to follow the behaviour you did for --override and have people specify smth like: %FILENAME% %MISC.CONTAINER%

this way you dont need a huge vec of allat and people can specify whatever settings they want to include for output file name

#

also maybe simplify

    if format.contains("%FRUITS%") || format.contains("%FRUIT") {
        format = format.replace("%FRUIT%", "%FRUITS%").replace(
            "%FRUITS%",
            &format!(
                " {}",
                fruits
                    .choose(&mut rand::thread_rng())
                    .expect("Failed to select a random suffix")
            ),
        );
    }

to

    if format.contains("%FRUIT%") {
        format = format.replace(
            "%FRUIT%",
                fruits
                    .choose(&mut rand::thread_rng())
                    .expect("Failed to select a random suffix")
            ),
        );
    }
mint escarp
#

im gonna fork smoothie and make a “light” version if anyone is interested in that

faint path
#

war

mint escarp
#

lighter version

#

no gui, minimal cli and config

#

just interp and frame blending

faint path
#

gna use it for smblender ig

mint escarp
#

honestly i might remove the config file all together and have just cli

#

since its not that many options

#

can u rename gpl3 projects

old summit
#

vspipe has one already

#

just use that

opaque gate
#

why have a smoothie at all

#

just smooth ur brain

mint escarp
#
  • atzur 2024
old summit
#

oops

#

i meant why make your own

#

assuming u meant that

mint escarp
#

didn’t say i was gonna make my own

old summit
#

idek if u did

#

retaking philosophy 1 after this

#

well anyway

mint escarp
#

with gpl3 are you allowed to fork and remove a lot of it

old summit
#

i don't think u need to worry about gpl at all since it's like 20 loc and u don't even need to take them from smoothie

old summit
mint escarp
#

i like smoothies config and stuff but i don’t use half the features

#

so just gonna remove allat

old summit
#

but i mean gpl just says u can take the code as long as u give credit and use the same license

#

whether it's a "fork" or not is irrelevant

old summit
mint escarp
#

maybe but

#

idrk where that code is from or how it works

#

so id rather maybe write my own

old summit
#

i can explain if u want

mint escarp
#

sure

#

coleur said he got it from a vapoursynth script person that’s all ik

old summit
#

im not sure the source matters too much

#

either way if u don't wanna use it then just take one of blur's temp files and replace the filenames and numbers with variable names

#

making sure u used all the features u want in the blur config

#

should be literally all u need to do i think

#

maybe provide some way to get the dependencies if you're feeling nice

velvet tapir
mint escarp
#

sure but it’s annoying to do that every time i reinstall it

#

plus i don’t like the gui at all

velvet tapir
#

you are very much welcome to make the lite version but i dont see the benefits aside from making the codebase simpler hopefully

velvet tapir
mint escarp
#

the egui

velvet tapir
#

thats just optional

mint escarp
#

it’s not

#

he’s bundling them in one executable

velvet tapir
#

i mean invoking it

velvet tapir
mint escarp
velvet tapir
#

tbh only downsides i can see how development is handled with it

mint escarp
velvet tapir
#

usablity wise i see none

mint escarp
#

that’s why i will just maintain my own fork

velvet tapir
#

well gl

velvet tapir
opaque gate
#

im am so out of this community now

mint escarp
velvet tapir
#

oh fuck this is understandable lmao

#

i dont understand why he didnt go with the dyblib approach

mint escarp
#

i like the cli/config interface, not the gui

another problem with them being bundled together is that if you run smoothie with no args, it’ll default to opening the gui, which is not standard behavior for cli apps, it should print the help message

#

nitpick but still

velvet tapir
#

thats like bad

#

really bad

#

tools like cmd and ps consider .com exes to be cli tools

#

just .exes to be gui programs

mint escarp
#

maybe some users will like having both together, but i think it’s very against standards and ambiguous

velvet tapir
#

so as long as you dont provide an extension windows executes the correct version from the cli

merry lintel
velvet tapir
#

i can understand the gui part

#

should be decoupled

#

anything else, need reasons

mint escarp
#

i only ever use frame blending and interp so i just want some that matches my workflow better, smoothie has a lot of extras for me

velvet tapir
#

you can just strip the config or that isnt an option

mint escarp
#

any timescale, color correction, etc i do in a video editor

mint escarp
merry lintel
#

I only use smoothie or blur for a small 120-> 360 interp then 1.0-1.2 blend, and that’s it, I have everything else disabled or commented out, cause I don’t edit either Vegas so even my native 360 fps to 60 doesn’t give me the affect I want similar to how Vegas has smart resample davinci don’t

velvet tapir
#

honestly there is no point of a lite version because it doesnt do anything lite, smoothie context

#

i would welcome the idea for a cleaner codebase

mint escarp
#

just interp + frameblend would be really easy to keep a clean codebase

velvet tapir
#

gave up since i couldnt figure out deps

mint escarp
#

just a python script and cli which is very easy with clap

merry lintel
#

There”s also another benefit to lite, less buttons to press for certain unintelectuals, or ppl like me for touch all the buttons and indecisive asf, if we limit it to just, encoding argument, interp, blending, no other settings so we can streamline ppl figuring stuff out on their own, there’s multiple benefits in having a lighter version

velvet tapir
#

good time for smoothie rewrite? content

mint escarp
#

i also think the gui should just be re thought out entirely it’s very cluttered

merry lintel
#

Less stuff to break, less stuff to rewrite, with a lite version, Atleast for my non coding head as perspective

velvet tapir
#

if the gui atm is a glorified text editor then it should be its own thing

velvet tapir
#

like no auto generating config?

#

no automatic optimal settings detection? (for ffmpeg args mostly but could be optional)

old summit
#

i think this is a decent way to illustrate what june is talking abt: ```py
from vapoursynth import core
import vapoursynth as vs
import havsfunc as haf
import adjust
import weighting

interp_fps = int(interp_fps)
out_fps = int(out_fps)
blur_amt = float(blur_amt)

video = core.ffms2.Source(source=video, cache=False)
video = haf.InterFrame(video, GPU=True, NewNum=interp_fps, Preset="medium", tuning="weak", OverrideAlgo=23)
frame_gap = int(video.fps / out_fps)
blended_frames = int(frame_gap * blur_amt)
if blended_frames > 0:
if blended_frames % 2 == 0:
blended_frames += 1
weights = weighting.equal(blended_frames)
video = core.frameblender.FrameBlend(video, weights)
video = haf.ChangeFPS(video, out_fps)
video.set_output()


21 lines of code, vs. smoothie's ~2500
#

(almost verbatim copy of the temp files blur 1.8 generates)

velvet tapir
mint escarp
velvet tapir
#

cuz you just pass args vis vspipe

velvet tapir
merry lintel
#

I’m fine with a fork for glorified trial and error config with only 3 editable lines to the end user 😂,

old summit
mint escarp
#

what was the reason for the rust switch anyway? all the actual video is still done in vapoursynth so it’s just the cli/config parsing in rust, which i doubt is much faster than python

old summit
#

iirc it was because rust was easier to integrate into animas rust vapoursynth thing

mint escarp
#

oh

#

but that’s prob never gonna happen atp

merry lintel
#

😭 cookers choice, such a real statement

velvet tapir
old summit
#

who knows what the benefits wouldve been

velvet tapir
#

i am gonna assume in terms of speed, 0 benefit

merry lintel
#

You guys all sound like a fun development team to just sit back and listen to for hours.

velvet tapir
#

because its just calling the c dynlib

velvet tapir
old summit
#

was pointful turned out to be pointless

mint escarp
merry lintel
#

No, I get the gist been around long enough to pick up on the present disconnect in ideas and preferences, thus why a fork sounds like ya best solution instead of redoing the original code entirely

mint escarp
#

unnoticeable difference in this case

old summit
mint escarp
mint escarp
#

there’s a lot of stuff in there that makes sense to no one but couleur

old summit
velvet tapir
old summit
#

making it cli only isnt accessible to everyone in the first place

mint escarp
velvet tapir
#

windows gives a gui abstraction via sendto

#

for linux i guess file dialogs could work

fickle badge
#

you have two options:
write "good" code that follows design patterns
write what works

both with lead to unmaintainable code

mint escarp
#

if i fork this, i personally will only be making a config file and cli interface, but i WILL code it in a way that allows anyone to make their own interface

velvet tapir
#

oh wait which language

mint escarp
#

i mean python is the most logical imo bc vapoursynth is already python

#

but idm rust either

velvet tapir
#

just use py

merry lintel
#

As a non coder, even I know how to mess with some python :3 more common language

mint escarp
#

i can make a repo rn i suppose

merry lintel
#

I meant language in terms of rust, python, Java, c#

velvet tapir
mint escarp
#

but that is almost done

#

also why is zixus been like that for hours

mint escarp
mint goblet
#

all things blocking me from making an innosetup installer for smoothie:

  • option to include rife models
  • option to include ffmpeg
  • run some recipe merger code when the installer is ran on a system with smoothie already installed with an installer
jolly musk
#
  • option to include CTTNet
mint goblet
mint escarp
#

ik

#

but still it’s just like

#

not the “correct” behavior

mint goblet
mint goblet
mint escarp
#

it’s all your decisions at the end of the day

#

which is why im making my own 👍

mint goblet
#

looking forward to it

#

its just that whatever you're gonna redo from scratch can prob be done in smrs with minimal effort

mint escarp
#

idk man seems like stuff never gets done with smoothie and when it is, it’s not done very well

#

also the stuff i want can’t be done with smoothie unless you are willing to remove half the features entirely

#

i’ve been talking about how unpolished the terminal output and logging stuff is for a while but it’s never been updated

merry lintel
#

well look at the bright side, we can use a fork/ lite version to trial and error implementations and features faster that couleur can then apply to regular smoothie, and vice versa, anything that gets added to smoothie-rs can be used as inspo to test more shit on the fork/ lighter version, less trial and error for couleur and easier code to fuck around with for everyone else.

#

i see it as a net win accross the board

mint goblet
velvet tapir
# mint escarp https://github.com/succumbs/miscela

my roadmap for contributing to this:

  1. get basic features working
  2. refine how vspipe pipes into ffmpeg, (atm, i will just use the shell do to the heavy lifting, its cheap but current aim is to make something functional.)
  3. use smoothie's dependencies atm (i am not sure how packaging will be handled so will just use smrs' existing dependencies)
mint escarp
#

python poetry for deps prob

#

that’s what i use for all projects besides scripts now

velvet tapir
#

@mint escarp I would very much prefer if we reduce the amount of external packages we use unless absolutely needed

mint escarp
#

okie

modern valve
#

play ding when?

mint escarp
modern valve
#

in sm-py

mint escarp
#

oh

#

that’s like 2 lines of code anyway

modern valve
#

uhhh we need a command for smoothie

#

at leaqst i want

mint goblet
modern valve
#

scoop install smoothie-rs

#

scoop install anderlli0053_DEV-tools/smoothie

#

or i can just use this?

mint goblet
modern valve
mint goblet
mint goblet
#

đŸ‘ïžđŸ‘ïž

velvet tapir
#

automatically open up the troubleshooting page for smoothie

mint escarp
#

@mint goblet smoothie suggestion bc i will be doing this in miscela

mint goblet
#

đŸ‘ïžđŸ‘ïž

mint escarp
#

imo proper cli should be smoothie-rs interpolate —algo 23 —block-size 8 blend —fps 60 —intensity 1.0

#

where interpolate and blend are commands and the other args belong to them

old summit
#

producing an error since you didnt specify the interp fps?

mint escarp
#

it can have defaults

#

but it’s just an example

mint escarp
jolly musk
mint goblet
#

since recipe is only known at runtime

jolly musk
#

Include recipe and overwrite with the arguments given

mint escarp
#

and it’ll just go in the order you provide it

old summit
#

#1177010848288493568 message

#

june has escaped the matrix....

#

when will the rest follow...

mint escarp
#

@mint goblet does ur encoding macros clash with actual ffmpeg args

#

like say i used a filter to add text to a video that said COPY or something would it replace that with the preset

mint escarp
#

does it try to resolve anything in caps as a macro?

mint goblet
#

no it'd ignore -c:a copy

#

stick to conventions:

lowercase for ffmpeg args
uppercase for sm macros

mint escarp
#

hmmm

#

think i will not add macros to miscela then

mint escarp
#

yes but i dont think its the cleanest solution

mint goblet
#

--ov interpolation;algorithm;23 interpolation;blocksize;8 frame blending;fps;60 frame blending;intensity;60

#

oh yea not intended much for human use

mint escarp
#

and if they were commands you could do help interpolate and itll show all the option for that

mint escarp
#

meant --help

#

u can use the help flag on subcommands to see their options

#

with clap

gentle basin
#

Why not just do smrs -f "{ffmpeg args}" {smoothie args}

mint escarp
#

what r u offering an alternative to

mint escarp
#

pls separate words đŸ™đŸ»

#

—enc-args

#

smoothie cli is the most anti-cli app i’ve ever used

#

u are torturing us cli mains

#

😭

mint goblet
#

nah you are a real hater

#

enumerate the points that make it a TORTURE to use

mint escarp
#

mf

mint goblet
#

mf

mint escarp
#

it is completely unusable from pure cli

#

will it IS usable

#

but barely

mint goblet
#

i use it ALL the time TFYM

mint escarp
#

okay so you specify all ur settings like --ov interpolation;algorithm;23 interpolation;blocksize;8 frame blending;fps;60 frame blending;intensity;60

#

the whole config

mint goblet
#

no mf i open a config file like any normal user should

mint escarp
#

see this is what i mean though

mint goblet
#

if ure that much of a cli elitist how come you're not using vim

mint escarp
#

bc i don’t feel like learning keybinds

#

also vim is not a cli 😭

mint goblet
#

oh its a "tui"?

mint escarp
#

vim has a cli

#

but yeah it’s tui

old summit
#

actually i should check before i say anythign

mint escarp
#

and yes their stuff can get messy but i’m sure it’s not like that for no reason

mint goblet
#

u know what june

#

just make ur own wrapper

#

that parses the recipe and declares argparser args on the fly

#

and then u use smoothie-rs override in the backend

old summit
mint goblet
#

which is how i designed override in mind for

mint escarp
mint goblet
#

VapourSynth is technically a framework wrapper for its plugins?

mint escarp
#

a wrapper for a wrapper for a wrapper

#

i’m not trying to hate i seriously just think there’s so many better design decisions for smoothie

#

like why have —output and —outdir

mint goblet
mint escarp
#

u have a tui that doesn’t tui

mint goblet
#

and --outdir is if you have multiple input files to put in a specific folder

mint escarp
mint goblet
#

i couldnt bother making multiple --output, atp just make a loop

mint escarp
#

if they give a file path it can do that too

#

for example

#

—output users/june/videos will output everything to that path and keep the original file names

#

—output users/june/videos/cat.mp4 to specify a file output

mint goblet
#

one specifies a folder

#

one specis a filepath

#

and no im not gonna check if the child folder contains a dot that just crappy

mint escarp
#

you don’t have to

#

there’s a standard library for a reason

#

i’m rly just trying to get my point across that if you keep adding new features like the gui before addressing the root problem which is that smoothie is messy it will become so much worse

old summit
#

not super complicated

mint escarp
#

like you have so many redundant options

old summit
#

or just only treat it as a folder if theres multiple inputs (hehe)

mint escarp
#

—strip_audio with an alias of —an

#

just use ffmpeg args?

mint goblet
mint escarp
#

yeah and those lil bits of code that specify the cli structure are making it a pain to use

#

i’m trying to warn you that if you don’t refactor any of this it’s gonna be harder and harder to maintain

#

—peek conflicts with —encargs but it still uses encoding args from the config anyway

mint goblet
mint escarp
#

i don’t know but i was wondering why the images wouldn’t open until i realized that it was using encoding args from the config

mint goblet
#

just checked yes that is a legitimate bug

mint escarp
#

imo all these interfaces should be completely decoupled from each other

mint goblet
#

so that could happen

mint escarp
#
enum Command {
    /// Doc comment
    #[command(CMD ATTRIBUTE)]
    Variant1(Struct),

    /// Doc comment
    #[command(CMD ATTRIBUTE)]
    Variant2 {
        /// Doc comment
        #[arg(ARG ATTRIBUTE)]
        field: UserType,
    }
}
mint goblet
#

how can i loop over the Recipe object

#

and append each

mint escarp
#

i personally would just have the cli and recipe be their own things

#

you could have --recipe to specify a recipe but

#

idk if i would let ppl specify some settings from cli and the rest from their config

mint goblet
#

recipe as a base

#

cli args as overrides

mint escarp
#

what will you do if somone doesnt have a recipe file

mint goblet
#

then it could fall back to defaults.ini i guess

mint escarp
#

see how nice dis would be

mint goblet
mint escarp
#

im pretty sure it would be accessed differently

#

liek you would do say cli.interpolate.fps and cli.blend.fps

#
enum SmoothieCommand {

    /// Interpolate the video
    #[command()]
    Interpolate {
        #[arg(long, short)]
        fps: i32,
  
        #[arg(long, short)]
        algorithm: Algorithm,
        
        #[arg(long, short)]
        speed: Speed,
    }

    /// Frame blend the video
    #[command()]
    FrameBlend {
        #[arg(long, short)]
        fps: i32,
  
        #[arg(long, short)]
        weighting: Weighting,
        
        #[arg(long, short)]
        intensity: f64,
    }
}
#

i do think pure python would be better because then you could import stuff like weightings and use that as a cli value instead of re-making those values in rust

mint goblet
#

smoothie has no idea of the recipe that's being passed

#

it just feeds what it parses down to the python script

mint escarp
#

id say since rustsynth doesnt seem like an option anymore that youre just making it harder for yourself by writing it in rust

#

i guess you have the benefit of saying its blazingly fast and memory safe but python is abt the same for this use case

mint goblet
#

i use it because of practically no runtime errors

#

smoothie python was full of them

mint escarp
#

use mypy 👍

mint goblet
#

i don't know much about it

mint escarp
#

you dont have to

#

u just install it and then it starts checking stuff for u

mint goblet
#

how do i know if i need it then

mint escarp
#

well if you were getting tons of runtime errors with smoothie-py clearly you were not checking stuff properly

mint goblet
#

what i mean is that rust does not let that happen

#

and that's a clear bonus

#

yeah smoothie-py was my first approach at writing python

mint escarp
#

(no hate but i think you were just writing bad code)

mint goblet
#

runtime errors are caused by bad code yes!

mint escarp
#

yes

#

they are

#

ik u are being sarcastic but thats literally true

mint escarp
# mint goblet smoothie has no idea of the recipe that's being passed

what im saying is that if you had the type of cli structure i was suggesting, youd need to provide an enum of weightings that the user can choose, right? but since that part is done in python, youd have to remake the enum in rust, and if the script is updated you might forget to update the rust part

#

if this was all done in python you could just import all the weights from atzurs script and use that as the value

#

also smoothie already does have quite a bit of runtime errors even though being coded in rust

mint goblet
#

yes ffmpeg not installed, python errors

mint escarp
#

what runtime errors exactly was smpy giving you

mint goblet
#

forgor

#

variables going out of scope early

mint escarp
#

i doubt its anything that cant be fixed easily

mint escarp
#

has anyone played around with mpdecimate

#

instead of filldrops

mint goblet
mint escarp
#

heh

#

bro was right this whole time

velvet tapir
#

tf

old summit
#

llo

mint goblet
#

clap supports this

sm -i yipee.mp4 --tn -- and after that i can do whatever lolol it's been separated

#

so i could use that for mixcela style cli overriding

mint escarp
#

what’s tn

mint goblet
#

tonull

#

i always use that for testing which is unrelated to encoding so i dont end up with a buncha 0.1s files

mint goblet
#

smoothie-rs -i input.mp4 -- interp fps=60 speed=med fra f=60 intens=1.5

#

would that b a cool syntax

mint escarp
#

ur gonna wanna kill me but

#

its still not "standard" cli practice 😭

mint goblet
#

yeah expected you to make this exact comment

mint escarp
#

thats kinda just like a hack instead of fixing the root problem of the cli

#

which is nono

mint goblet
#

it shouldn't be a problem if you don't use it

#

if the implementation affects other usecases then yeah to me it is

mint escarp
#

it can be annoying for ppl to have to learn new syntax for stuff

mint goblet
#

definitely not posix compliant

mint escarp
#

ffmpeg has a "weird" non standard cli but i think its actually quite reasonable when you consider how complex ffmpeg is

mint goblet
#

do u know any1 else who uses sm from the cli

mint escarp
#

i think my original suggestion is the most elegant but i understand that it might be challenging to do overrides

mint escarp
mint goblet
#

is separating smoothie cli args and miscela style overrides with a -- would be considered "standard"

mint escarp
#

honestly ive never seen that done before so.. i think no? i have no idea

mint goblet
#

iirc clap supports this

#

so that sounds like most feasible to implement

#

*To specify an argument for a long option, write --name=value. This syntax enables a long option to accept an argument that is itself optional. *

mint escarp
#

oh i thought you were referring to smoothie-rs -i input.mp4 -- <- this interp fps=60 speed=med fra f=60 intens=1.5

mint goblet
#

wdym by <- this

#

the -- is put as a separator

mint escarp
#

ik i thought you were referring to the seperator here

#

but yeah --option= is fine

mint goblet
#

i was

mint escarp
#

what exactly is the separtor for

mint escarp
mint goblet
mint escarp
#

that, good sir, is where my knowledge ends and your journey begins.

jolly musk
#

It is a framerate reducer which removes the least unique frames

mint escarp
#

so basically it removes duplicates

#

is this a /j or a /srs

#

ofc it reduces frame rate you can’t just remove frames and somehow stay at the same fps

old summit
#

i wonder if svp likes vfr though

#

or rife

mint escarp
#

flowframes uses mpdecimate i think

old summit
#

last i checked it used imagemagick to measure differences

mint escarp
mint goblet
mint goblet
mint goblet
# mint goblet

@hexed vortex do u have a clue whatever means "vost" in libav?

#

ffmpeg is gaslighting SO HARD

#

*The term "vost" appearing in your line of text is likely a typographical error or an artifact from a specific software's output. It does not correspond to a known technical term or standard output from popular multimedia libraries or software tools such as FFmpeg or other encoding frameworks.

It's possible that "vost" was mistakenly inserted due to an issue with text encoding or output formatting, particularly in a program or script involved with multimedia processing or encoding. The correct reference in this context should indeed be "libx264" for the H.264 (AVC) encoder library used in FFmpeg.

If you encounter this issue, it may be worth reviewing the context or the tool's documentation to clarify any ambiguities or errors in output messaging.*

#

holy shit this can be used as a copypasta if "vost" is replaced with something else lmao

#

e.g.:

The term "AI" appearing in just about every tech product you see is likely a buzz word from the industry, it does not correspond to a known technical term or standard specification from popular large language model manufacturers.

It's possible that "AI" was mistakenly inserted due to it being a buzz-word that attracts attention alike to sticking "it's on the blockchain" or "crypto" to anything in the precedent years. The correct term in this context should indeed be "LLM" (Large language model) with the marketing you get distributed.

If you are confused, it may be worth reviewing what actually are large language models to clarify any ambiguities or disinformation in marketing campaigns.

mint goblet
#

*Large Language Models (LLMs): Large language models like those developed by OpenAI, such as the GPT series (like myself), are specific types of AI systems that are trained on vast amounts of text data to understand and generate human-like language. LLMs are indeed a subset of AI technologies.

Marketing and Terminology: It's common for marketing materials to simplify or use catchphrases to describe complex technologies. While "AI" might be used broadly to encompass a variety of machine learning and deep learning applications, specifying "LLM" could be more accurate in certain contexts, particularly when referring to language-based AI systems like those used in natural language processing and understanding.*

old summit
#

i think u should consider using an actual search engine

mint goblet
#

truth hurts

old summit
#

they can be consulted for advice

mint goblet
#

anyways do u see any flaw in smootihe progress bar!!

#

except i also need to add the speed=0.24x somewhere bc its a useful metric

old summit
#

also maybe dont default to unicode symbols

mint goblet
old summit
#

ok awesome

#

now tell the user

mint goblet
#

those r defaults

#

yes

#

what r they, APPLES???

old summit
#

orang??

mint goblet
#

ahh yes of course smoothie has rendered 1680 apples out of 3080 oranges ‌

gentle basin
#
Frames Rendered: someNumber out of someOtherMoreDifferentNumber
Time Elapsed: hours:minutes:seconds
Time Remaining (estimate): hours:minutes:seconds
Current Framerate: someNumber FPS
#

making it multiline would prolly help

#

or instead:

Completed: someNumber%
Time Elapsed: hours:minutes:seconds
Time Remaining (estimate): hours:minutes:seconds
Current Framerate: someNumber FPS
#

looks cleaner

modern valve
old summit
#

i think the speed/fps bit is a little confusing but im not sure what to do about it without excessive verbosity

mint goblet
old summit
gentle basin
mint goblet
#

and use ascii coloring like this

#
[interpolation]
enabled: yes
masking: no
fps: 1920
speed: medium
tuning: weak
algorithm: 23
block size: auto

[frame blending]
enabled: yes
fps: 60
intensity: 1.0
weighting: equal
bright blend: no
#

it'd be appropriate in that case

#

━━━━━━━━━━╾━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.09% ‱ 280/3080 ‱ 00:05 > 00:57 ‱ 53 FPS

#

here it is if you wanna mess w it

gentle basin
#

thanks!

mint goblet
gentle basin
#
Completed: 9.09%
Time Elapsed: 00:00:05 (hh:mm:ss)
Time Remaining (estimate): 00:00:57 (hh:mm:ss)
Current Framerate: 53 FPS
━━━━━━━━━━╾━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━╾━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  9.09% ‱  280/3080 ‱ 00:05 > 00:57 ‱ 53 FPS
gentle basin
mint goblet
#

wait this fits perfectly

#

smoothie anthem

merry lintel
mint goblet
#

i could make a dedicated mask path parsing function

#

that uses path.join and strips quotes

velvet tapir
mint goblet
#

@gentle basin where would non portable smoothie be located at

mint goblet
#

what does this fix @faint path

#

wrapping it as a ptr

faint path
#

properly converting to raw pointer

#

also updated smgui widget because it was deprecated

#

basically just did what the compiler asked me to

mint goblet
#

idk how allat works lol

mint goblet
faint path
#

i personaoly ahve experience with cross

#

can share you my workflow file

#

oh the articlwe mentionms it

#

hold up id onmt get it

#

is it mergef or not

mint goblet
faint path
#

the crate supdate

gentle basin
#

I'll look into why z1xus's patches break on Linux, ty for reminding.

faint path
#

oh so actually i hate linux so i made it so that it force quits on any archg install

#

is the workflow log still up

#

i could look into it rq

faint path
#

oh the action is only for windows

#

couler should i make a workflow to cross compile w/ cross

faint path
mint goblet
mint goblet
#

add to releases n artifacts

faint path
#

spritzer?

#

Der „Spritzer“ ist einer der beliebtesten Drinks Österreichs. Es handelt sich dabei um eine 1:1 Mischung aus Sodawasser und trokenem Weisswein. Vor allem im Sommer viel bestellt und getrunken, hat der Spritzer spĂ€testens durch den ehem. Wiener BĂŒrgermeister Michi HĂ€upl einen unangefochtenen Kultstatus erreicht.

mint goblet
#

m1 user

#
    - run: cache rust stuffs
    - uses: Swatinem/rust-cache@v2
#

also toss that in there to speed up

faint path
#

didnt know that exist

faint path
mint goblet
#

is this safe chat

faint path
#

u also suspicious of random vsc ext

#

looks legit enough

#

coule

#

should i also incorporate upx in thjere

#

smaller binaries

#

antivirus flags

#

ohhh it was a thng lol

#

so the vsgundler dlls are already upx'd r9ght

mint goblet
#

not worth it

faint path
#

i think ima actually dont use cross

mint goblet
#

đŸ‘ïž

faint path
#

what the frick

#

that could be big

mint goblet
faint path
#

editor?

mint goblet
#

ye ide

faint path
#

vsc

#

rust-analyzer i hate

mint goblet
#

why

faint path
#

leaking memory always

mint goblet
#

oh hell nah i dont know shits bout them boxes

gentle basin
#

z1xus fixed this

#

just wrap it in Ok

mint goblet
#

yup just did that

gentle basin
#

windows crate 0.58.0 is the version that broke smrs on linux, ill look into this

mint goblet
#

what about this one

#

updated windows to .60 and eframe to .31 btw

faint path
#

get raw value with get

#

cast to void pointer

mint goblet
#

what is get

faint path
#

damn .60 is out

#

so basically into allows it to be zero and compiler doesnt like it

mint goblet