« first day (2882 days earlier)      last day (2154 days later) » 

7:39 AM
Speedranrun
 
8:23 AM
so.. my beat detection thingy works... right up until you feed in actual music
i feed in a drum beat and it works perfect
i feed in some actual music and it gets confused...
 
nwp
How did it get confused? There are clear peaks it should be finding.
Usually you just pray to fourier for wisdom and he gives you enough transformative guidance to get it to work.
 
im praying as hard as I can
nothings working
to be fair the blue line doesn't give an entirely clear picture, since its running it past a FFT function and only registering beats in the lowest 10% of returned frequencies, because initially I only want the "bass"-y beats
but those peaks are definitely drum beats
so why its erroneously picking up 3~4 beats randomly afterwards is anyone's guess
 
 
1 hour later…
9:56 AM
@JamesTrotter looking at both of them, even this one doesn't look perfect, the boxes are after the drumbeat peak
that first sample is just picking something close to the drumbeat peak beacuse everything after that is silence
so both samples experience the same bug -- neither of them works perfectly.
frankly though that's a good thing. consistently wrong is easier to diagnose than inconsistently wrong.
 
True, perfect was an overstatement
but honestly, im not sure if that bug lies in the beat detection or the app I made to render it out... lol
 
 
1 hour later…
nwp
11:17 AM
@JamesTrotter You should probably use a ready-made program for that like gplot or excel.
 
user92578
heya
 
how are you
 
user92578
im good, how are you?
 
very well, thank you
what are you doing today tyyppi
@doppelgreener hi
 
11:32 AM
o/
 
user92578
dunno yet
 
I'm making a unity-like interface where I can add objects to the world
 
user92578
cool
 
@doppelgreener Thats cooll
@Tyyppi_77 I'm designing the file format right now
 
user92578
file format for the objects? or the world?
 
11:44 AM
the objects
its called *.tdcg
 
user92578
good idea to start with the extension, that's the most important bit
 
nwp
The file extension isn't that important. What matters is that you register it here. Otherwise someone might steal it!
You don't. It's a joke. You are wasting effort on irrelevant things.
Think about what you care about and what you don't care about. Let libraries handle the things you don't care about.
 
12:03 PM
does that mean apathetic people just write software that's an interface between libraries?
 
user92578
^ heard of webdev?
 
nwp
Sometimes you can get away with glue code, yes. But it usually turns out not to be so easy and you end up writing code that does stuff eventually.
 
@nwp I write a file for an object and parse it. What are the complications?
 
nwp
Serialization is complicated and boring. Use protobuffers or cereal or some other library to do it for you.
 
not serialization. A text file that I can manually edit that contains plain text about the object
 
12:17 PM
serialising to JSON is still serialisation that contains plain text that can be manually edited
 
nwp
Then use json or xml. They have good library support.
 
@TheMaskedRebel that is what people told you. it's serialization too. but to text file or json. also xml.
 
nwp
You will still run into annoying issues like json being unable to express integers properly and calling xml user readable is quite a stretch. But at least you can skip the serialization, deserialization and (some) error handling parts.
 
have you seen obj files?
 
nwp
I have. I vaguely remember that they are mostly simple lists of vertices.
 
user92578
12:20 PM
hahahahahah
 
they are text files that aren't serialized. My text file will just contain a link to a obj file, a texture and a set of collision obj's. Very simple
 
user92578
what about other material parameters?
 
nwp
> they are text files that aren't serialized
 
user92578
what about different collision formats?
 
12:24 PM
yeah i got caught up on that too
 
nwp
You have not understood sufficiently what serialization means.
 
That is all i need
 
for now
 
I've already tried it and it was kinda ok
 
if it's interesting for you then its fair game, but from our perspective it just seems like re-inventing the wheel
 
12:27 PM
?
 
nwp
There is nothing wrong with re-inventing the wheel, but at least attempt to make it a better wheel.
 
like adding blackjack, and hookers.
in fact screw the wheel
 
user92578
now that sounds like a good file format
 
If you have a text file, it's definitionally serialized
In fact, if you have a file with a purpose of storing data, it's serialized
most people opt for existing popular serialisation formats (yaml, json, xml) because there's tons of libraries available to read those in so that you don't have to write the serialisation code yourself and can move on with more important things.
 
12:43 PM
so, i have a bunch of data returned from performing FFT on an audio file. I know how to get the magnitude from that... but is it possible to get the frequency?
i suppose if i have magnitude frequency is the time between magnitude peaking?
or am i just confusing myself..
 
nwp
I thought that's what FFT does. It tells you which frequencies appeared how much. I would expect a big peak near the tact of the song.
 
yeah, no i definitely confused myself
 
12:57 PM
Hmmm guys ? I could need some help... i spawn in about 10-20 mobs for each player... lets say they spawn somewhere nearby. Each of those mobs move around... ( They receive a new pos every second by the server ) ... for the interpolation i use a unity update script which is called every frame once. It just moves the mob towards the new position... Well... that causes fps drop... because there are so many update loops... how could i improve that ?
 
user92578
20 mobs is nothing
 
@genaray drop from what?
 
yeah you have a serious problem somewhere
 
From 2000 to 1900 is nothing, from 60 to 50 you're doing something wrong
 
@KevinvanderVelden Well... ok ... than this is solved... maybe i shouldnt the such paranoid
 
1:00 PM
Don't think in terms of frame per second, think in terms of how long a frame takes
i.e. think in miliseconds
 
currently about 1.1 ms - 2 ms depends on what happens
 
Is that the drop or your current render time?
Because if it's the drop you're probably still doing something wrong but if that's the current render time then it's fine
 
@KevinvanderVelden This is my current render time ^^ ... i guess im just fps paranoid >.<
 
So you're running at 900 to 500 fps, there's not a screen in the world that can display that
 
you're telling me you AREN'T running 1Khz monitors? amateurs...
 
1:07 PM
@KevinvanderVelden or a human who would perceive it, for the most part
 
everyone knows the human eye can't see past 30fps
 
Oh cool!
 
I'm learning more about signal processing than i ever hoped i would need to...
 
1:40 PM
Morning!
 
Afternoon
 
Ahoy!
 
@AlexandreVaillancourt hello!
@doppelgreener I will use xml for the world format and a text file for the object
 
user92578
1:56 PM
why mix and match???
 
Because an xml suits my purpose for the world
 
and it doesn't for the object?
 
not really
also text files can be processed quicker in java
 
use what suits your data storage as a format
"processed quicker" either doesn't mean much here or doesn't matter on account of being a premature optimisation concern
 
2:11 PM
also the code to parse text files in java is much easier to write than the code to parse XML
 
how much quicker
get a profiler on that shit
if it's nanoseconds, not worth worrying about
 
theres libraries for java to parse XML
libraries are much easier than having to hand-ball something
are the values returned from FFT usually tiny?
 
I know and there are libraries to parse text files that are much cleaner and easier than XML
 
2:21 PM
I just don't know what I'm doing anymore.. so lost..
 
nwp
Give up gamedev. Buy a boat. Travel around the world.
 
ok brb
 
@TheMaskedRebel cool, and that's a fine reason to pick text files, as long as the libraries work well for you and the format works well for you. speed of reading/writing is almost certainly not a good reason though unless you're dealing with enormous files or amounts of them.
 
2:39 PM
We are using mixed formats here. XML for some things, JSON for some others, and "resources" (key: value) for some others. It works. As long as you use the right tool for the job, and know why you use it.
The nice thing about XML is that you can nest stuff quite easily.
The nice thing about JSON is typed structure.
 
nwp
Typed, unless you want an int or a date or ....
 
The nice thing about XML is the existentialist dread whenever you have to inspect & modify a large XML file
 
Yeah. One could argue that you can achieve the same with XML (and schema?), and even go further.
@JamesTrotter Yeah. We don't have such things, so it's manageable. Maybe that suits our needs, but it would not suit everyone's.
 
Im more speaking from experience with the software I work on in my day job
infact I have an xml file from it open on my other monitor right now
its 30004 lines long and a PITA to search through
 
nwp
To be fair searching through a 30004 line document by hand is a PITA no matter what format you use.
 
2:49 PM
indeed
 
nwp
But I can understand that <thing>thing</thing> gets annoying.
 
The worst part about this document i mentioned is theres lists that reference lists that reference lists...
 
user92578
on the other hand you know what is closing instead of just }
 
nwp
@JamesTrotter Time to bikeshed and write an editor that inline-expands referenced lists on mouse-over.
 
@JamesTrotter Just like code :) But at least, most IDE have a "Go to definition" feature.
IDEs*
 
nwp
2:53 PM
"Don't you dare move my mouse! I'm 57 levels deep and if I move it off the popup I have to start all over!"
 
indeed, I already have a bunch of tools I made to make managing this file easier
 
@JamesTrotter Would it be time to change the format?
 
user92578
We were taught xpath in our database course and it seemed like the dirtiest thing ever
 
@AlexandreVaillancourt I'm not sure what would be better, to be honest. It's a bit of a strange file
 
2:54 PM
@JamesTrotter Yeah, I understand. Our XML work a bit like that, but the file is not that big.
@Tyyppi_77 Hmm, well it worked fine for me when I needed it, but yeah, the syntax might not be the most intuitive.
 
user92578
I sort of failed to understand the need for it
 
Hmm, isn't it to find the node that you need?
(Instead of parsing the whole document to find it?)
 
user92578
yeah but like the whole concept of querying XML
 
@AlexandreVaillancourt its a bit off-topic, but basically I write software that manages large shipping terminals day-to-day operations. This particular file is a complete definition for the "site" and how all the equipment on site interacts and what certain "things" they write out to the database mean, and what code to call to process them.. and things upon things upon things so that we have a single service that you can configure using these mammoth XML files.
unfortunately the thing it is modelling is just complex, so the file ends up being so too
 
Hmm, well you use xpath to query an XML file like you use SQL queries to extract data from an SQL database?
@JamesTrotter Yeah, I understand. It sometimes come from the early decisions "Oh, this will only take a couple of hundreds of lines, and we'll be able to manage it by hand." Which is true. Until new features are added.
 
3:00 PM
Develop like your life is paid by it
 
@TheMaskedRebel You can still slack a lot even if that's what you do :)
 
that's what I'm doing here
 
@AlexandreVaillancourt I know that problem all too well
@Jimmy howdy
 
yo
 
@TheMaskedRebel It's often due to lack of experience, which is corrected as time goes by.
 
3:03 PM
@AlexandreVaillancourt I used to be in the "XML isn't that bad because you have stuff like XPath" but now that I've used jq ....
 
think xpath for JSON, but more powerful
 
Hmm, that's interesting!
Bookmarked!
 
My internet connection failed for the third time today /^^\!
 
@Jimmy, you know this beat detection thingy you've helped me on a few times already?
 
3:16 PM
whats up
 
actually never mind, I missed a whole bit i should have read.
 
I'm just gonna start writing some of my files
START
NAME stone
MODEL /stone.obj
TEXTURE /stoneTexture.png
EFFECTS none
END
There is one of my files
 
nwp
Congratulations, you just invented COBOL!
 
any idea how I can make the format better
 
nwp
Use json or xml.
 
3:31 PM
You've basically made something similar to TOML here
or I guess a unix .conf file
 
use json
no need to reinvent the wheel here
 
@nwp I'm using text files because I can very easily write a parser for them(xml is a bit more complicated) and that file format is easy to read
and I don't know how to parse json
 
nwp
@TheMaskedRebel json is text files and there are a basillion json libraries in all languages with huge test suits.
 
don't listen to them, just parse your own text files -- The best way to learn is experience after all ;)
 
@Jimmy that is exactly what I'm going to do :)
 
3:39 PM
Just keep in mind that "hmm, everyone with some experience in this area tells me I should do X" so when the time comes you'll be ready to understand
3
 
hey check this out
@Jimmy So when the time comes I will definitely follow your advice :)
@nwp I will register it here :D
 
So confused... so... in this document archive.gamedev.net/archive/reference/programming/features/… at the end of 2a it says "Thus 'C' must be about 250.".. if I set my C to 250 it barely detects anything... I only start seeing results when C ~= 10 X_X
something is wrong but I cant see what
the only thing i can see is that my FFT seems to return really small numbers.. but that can't be the problem right?
 
nwp
You should be able to see something, just open your eyes!
3
 
lol
 
@Maddie hi when you get to 20 rep than you can talk here
 
3:49 PM
damn you cracked it wide open ur a genius
 
@JamesTrotter Why does c have to be 250
 
because the all knowing document says so
also when I set mine to 10 I start seeing results but not good results... so clearly something is wrong and thats the best lead I currently have to go on
 
well find out for yourself why c has to be about 250 and you probably will be able to see your error :P
 
does the document ever specify what the scale of their measures are?
 
no, i think thats part of my problem
like, if my library to load in samples is using a different scale to theirs it will surely throw things off
 
3:52 PM
so yeah I don't think you can match up your numbers to theirs
 
that was what i was thinking, but i'm running out of ideas as to why else it could be wrong...
 
also, from the article header "This is my first tutorial and I am still a student, you must assume that this document is probably not free of small errors and bugs"
 
Jun 21 at 14:21, by nwp
Some people make these tutorials in order to learn the topic, not to teach. Good for them, bad for you.
 
user92578
@TheMaskedRebel EFFECTS looks incredibly fragile
 
what do you mean?
@Tyyppi_77 about the EFFECTS
 
user92578
3:59 PM
it doesn't look very usable
 
why? @Tyyppi_77
 
user92578
it does look usable with multiple different effects with multiple different parameters
 
I just deleted it
I am making a window which contains JFrame content and lwjgl content
 
user92578
cool
 
user92578
like the editor portion of the engine?
 
4:09 PM
yes
but the problem is what software i should use to design the window
 
user92578
design?
 
yes like placing buttons and stuff like that
 
user92578
there isnt a tool like that for swing?
 
THAT IS IT I AM SWITCHING TO INTELIJ *_*
I HAVE HAD ENOUGH OF ECLIPSE AND ITS ERROR LOGS
 
ew
Java
 
user92578
4:19 PM
^
 
true; why aren't you writing this in Lisp
 
5:04 PM
Haskell, man.
 
5:21 PM
Does anyone know what exactly is the difference between c# Dictionary.get(); and Dictionary[key] ?
 
exception or not when key is missing
 
@genaray You mean Dictionary.TryGetValue(key, out value), right?
 
that was my assumption
 
5:59 PM
I'm hoping I'm the first person to use "geeky" in a formal, civil document. From my patent application: Geometric representations of quantity and magnitude may be substituted for integers. [This is rather geeky but adds an additional element of pattern recognition in ornamental fashion.] ;)
 
6:09 PM
@DukeZhou Hmm, isn't there a way to search for it?
 
6:32 PM
@AlexandreVaillancourt Google patents maybe... good idea!
 
"geekygadgets.com" is the only other result so far :D
Damn. No. " If the user likes sci-fi with lots of geeky commentary, the system can present groups of 6 or more currently viewing sci-fi at top." [from "Interactive multimedia content builder".]
another dream crushed
 
 
1 hour later…
7:42 PM
Our physics engine reports some generally ok values, but sometimes it produces some bad values, as displayed by the red arrows on the chart. How would I trap these values and either ignore them or "smooth" them?
I tried to "buffer" the values and get the averaged value of the 10 last values, but once a bad value enters the buffer, it smoothes the values a bit, but it kind of shifts everything up or down for 10 frames
 
There's got to be a way to toss outliers
I mean something well-established.
I'll ask my math bud
just a sec
 
Yeah, but I can't think of anything right now. And since it's a "per frame" issue, I only have the "past" values to rely on.
 
It looks like your rates of change have a fairly consistent set of slopes - is that representative? If so, you might be able to check if the new point lies within a window of the previous (dictated by maximum expected rate of change) and discard/clamp if not.
 
@DMGregory That's an option. I'll see if I can find the expected maximum/minimum acceleration/deceleration.
 
Also, is there just a single axis of variation, or multiple? There might be some cross-correlation tricks we can try if outliers have a different signature than normal points when viewed multidimensionally.
 
7:53 PM
I hate to have to figure this out at this time of the day. I'll have to leave for home with this issue not yet solved, and wait until tomorrow morning :P
@DMGregory Hmm, what do you mean?
 
it also looks like you have smaller-magnitude errors
like at t=130 ish
 
I'm wondering if the graph is a chart of, say, x position, and we compare it to the graph of y position - do both the x and y charts show outliers in the same spots? If so, we can use that to improve our confidence that we've found one.
Or, if they don't usually spike on all axes at once, then we can use the difference between change on each axis as an estimate of deviation from the pattern.
 
@Jimmy You're right, however these are not so much an issue for now as the user won't know about these (the audio is plugged on these values). If the fix I implement fixes these to, hurray!
 
Are there any particular physics events that tend to occur with/just before one of these outlier samples?
Another thing you might be able to do is to let the physics simulation live one frame in the future, relative to the state you're representing to the player. Then you have the "current" frame plus one "future" frame to look at when trying to distinguish outliers.
 
@DMGregory Nothing in particular here, apparently: I drive forward, then in reverse, then forward again, then in reverse. The values presented are the frame-by-frame velocities of the wheel.
@DMGregory Hmm.
That could be a hackish option too.
 
8:08 PM
Ahh. I wonder if every so often the wheel hops microscopically up above the contact surface, and doesn't get any friction for that frame, so it picks up more speed than it should, before braking back down in the next frame.
 
@DMGregory That's a supposition we've made. There is not much we can do here. We had issue with collision mesh and this physics engine where there would be too much penetration between a "wheel" and the "ground" at the edges of the mesh triangles.
In this case, however, the "ground" is a box instead of a mesh.
It might also be that the engine is accumulating some errors and is "fixing" it at some point.
We're using ODE.
 
@AlexandreVaillancourt I got this from my math bud: "set a tolerance, then use a secant approximation to predict (based on the two previous points) where the current point should be---if it's too far out of the tolerance, replace it with the secant projection. :D
Cost: two stores, a difference, a quotient, a product, and a comparison."
 
or just do the really naive thing and ignore points with too far a deviation from the previous point
if abs(data[i] - data[i-1]) > TOO_MUCH: data[i] = data[i-1] * 2 - data[i-2]
 
@Almo Thanks a lot for this, this is appreciated!
 
sure :)
hope it's helpful
 
8:18 PM
@Jimmy The issue lies in "what value is TOO_MUCH"?
 
make it up based on your graph scale
one sec
tada: in my case, TOO_MUCH with 20 works
but I agree with almo's math bud that the secant approximation will be better
first-order polynomial approximation versus zeroth-order polynomial
 
@Jimmy The issue with "hard coded" values is that the value might be different depending on what framerate we request :S
But yeah, that could be computed too.
 
if abs ( ... ) < TOO_MUCH * delta_time
 
Are you running the physics engine at variable tick rates?
That causes issues
 
@KevinvanderVelden No! We can let the user decide what framerate they want, though.
(And they can't change it once the simulation is started.)
 
8:23 PM
Framerate is the rate at which frames are drawn in my book =p
 
@KevinvanderVelden Yep, and that's the rate at which we perform a simulation step. 1 simulation step = 1 frame drawn.
 
But you are doing physics.moveForwardInTime (FIXED_NUMBER) right?
 
19 mins ago, by Alexandre Vaillancourt
@DMGregory That's a supposition we've made. There is not much we can do here. We had issue with collision mesh and this physics engine where there would be too much penetration between a "wheel" and the "ground" at the edges of the mesh triangles.
this makes me think that the physics engine applies some kind of infinite-force "move the object to the nearest non-colliding position" to correct for collision intersections
why does that not quote
 
A number between 30 and 60, depending on what the user selected before the program starts. But it will always be the same number when the simulation is running.
@Jimmy There are parameters for these.
@Jimmy Gotta put the whole URL of the permalink!
(sorry to have changed your post)
 
8:30 PM
oh, i see
 
computing the module of a complex number, I have to find the square root of (imaginary^2) + (real^2) right?
 
@Jimmy But yeah, I'm not sure that's what is happening here. We kind of view this physics engine as a magical box that works most of the time, and that has its quirks...
 
@JamesTrotter if z = a + b i, then the modulus |z| = sqrt(a^2 + b^2), yes
 
ok, in this guide it says "We compute the square of their module", so I'm not rooting it I guess
 
Note that we's squaring the imaginary part b, not bi, so the square comes out non-negative. ;)
 
8:53 PM
another sorting algo visualization
with sound
 
obligatory "sorting algorithms as dancing" video link
 
interesting
 

« first day (2882 days earlier)      last day (2154 days later) »