tracehttp://trace.xplsv.com
Demoscene & VJ'ing shit.en-ukcopyright 2015 traceArchiving Windows demos. Take two.http://ricardocabello.com/blog/post/712
This is something I've spent a fair amount of time on already. Last year <a href="http://ricardocabello.com/blog/post/666">I wrote about some of my findings</a> but the truth is that it didn't anywhere.<br /><br />
The main problem is that, for whatever reason, <a href="http://lags.leetcode.net/codec.html">Lagarith</a> is not finding its way into <a href="http://www.ffmpeg.org/">ffmpeg</a> and rumours say Youtube uses ffmpeg for doing the transcoding. So if you tried to upload that 2gbytes video file to Youtube you'd end up getting a "unknown format" error.<br /><br />
Early this month I checked what was the status with all this, and seemed that nothing had changed so I thought about looking for other lossless codecs. This time I tried with <a href="http://neuron2.net/www.math.berkeley.edu/benrg/huffyuv.html">Huffyuv</a>. Video file size is bigger but at least ffmpeg supports it.<br /><br />
The idea is to let Youtube host the uncompressed files for me (5gb-20gb each). I don't know if that's what happens or not, but I would think such service must keep the original.<br /><br />
This is how the process looks like:<br /><br />
<strong>1.</strong> <a href="http://www.farb-rausch.de/~fg/kkapture/">kkapture</a> the demo using <a href="http://neuron2.net/www.math.berkeley.edu/benrg/huffyuv.html">Huffyuv</a> for encoding.<br /> Note: I have antialias enabled on my nvidia config as that compresses better than non-antialias stuff.<br />
<strong>2.</strong> Now you'll get a bunch of .avi files that you need to merge. To do so just use <a href="http://www.virtualdub.org/">Virtualdub</a>. While you're on it, go ahead and remove the aspect ratio black bars.<br />
<strong>3.</strong> Upload the file to youtube. This may take a while. It takes about 24 hours per video here.<br /><br />
And that's it. Now it's up to Youtube to keep updating their videos as technology evolves. It's a slow process, but if the theory is right it just needs to be done once.<br /><br />
<a href="http://ricardocabello.com/demoscene">You can see the ones I've managed to do already in the (just re-opened) demoscene section</a>.Mon, 27 Dec 2010 19:10:00 +0000Archiving Window demos with Lagarith Lossless Video Codechttp://ricardocabello.com/blog/post/666
The terms <strong>lossy</strong> and <strong>lossless</strong> are something I learnt recently when I discovered the format <a href="http://flac.sourceforge.net/">FLAC</a>. As example MP3 is a lossy format; distorts the data on the pocess, and the end result is not exactly like the original. FLAC, on the other hand compresses the data but keeps it 1:1 with the original, just like a ZIP does.<br /><br />
<a href="http://lags.leetcode.net/codec.html">Lagarith</a> is the same but for video. There are some <a href="http://compression.ru/video/codec_comparison/lossless_codecs_2007_en.html">other lossless video codecs</a> but from my experience Lagarith, <strong>using the YV12 color space</strong> when compressing, is, by far, the best. Not only in terms of file size compression, but also in terms of playback.<br /><br />
As an example, I've compressed <a href="http://www.pouet.net/prod.php?which=9460">r08028</a> at the resolution of <strong>640x480 60fps</strong>, which is the resolution it was designed for, and it <strong>ends up as 2gb file</strong> (uncompressed is 14gb). 2gb is still quite big for a 3 minutes video but with nowadays 1TB+ HDs maybe we can start archiving our demos in this way so we can recompress them to new video formats as soon as they appear without having to mess with emulators and rendering again.<br /><br />
Best thing of the codec is that the playback. <strong>On a multi-core machine can play 1920x1080 60fps videos with no problems.</strong><br /><br />
Unfortunately, this codec hasn't reached mainstream and it doesn't have much support yet (ie VLC doesn't play it). But if you happen to be a Windows user, give it a try!<br /><br />
If you want to know more about the codec, <a href="http://wiki.multimedia.cx/index.php?title=Lagarith">here you have some extra info</a>, and <a href="http://lags.leetcode.net/codec.html">here the sources</a>.<br /><br />
Now, if only FLAC could also be used for compressing the audio that gets encapsulated in a .AVI...<br /><br />
EDIT: Forgot to mention. <strong>You can use this codec from <a href="http://www.farb-rausch.de/~fg/kkapture/">kkapture</a> itself</strong>. And if that wasn't good enough, the whole kkapture process gets way faster (compared to capture to uncompressed frames). <strong>Capturing r08028 is faster than the demo itself.</strong>Sat, 04 Jul 2009 17:17:00 +0000Shock's Gimp Paint Studiohttp://ricardocabello.com/blog/post/662
<a href="http://ricardocabello.com/files/blog/caballos+lagar_lowres.jpg"><img src="http://ricardocabello.com/files/blog/caballos+lagar_lowres.jpg" width="350"></a><br /><br />
If you were wondering what was <strong>Shock / Collapse</strong> up to these days, the truth is that hasn't changed much. However, seems like he has moved to the dark side (the good one): open source. The good old chap, not only keeps doing amazing illustrations, but he has been working on a <a href="http://code.google.com/p/gps-gimp-paint-studio/">set of brushes and modifications for Gimp</a> to make things easier when doing paintings in <a href="http://www.gimp.org/">Gimp</a>.<br /><br />
<a href="http://ramonmirandavisualart.blogspot.com/">http://ramonmirandavisualart.blogspot.com/</a>Sun, 14 Jun 2009 13:31:00 +0000Inspire08 demo log, day 117http://ricardocabello.com/blog/post/579
<code><strong>Status:</strong><br />-89 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Back to production</code><br /><br />
While <a href="http://escena.org/forums/topic/1180/?page=6">people that haven't released anything in years were trying to find the meaning of life and also were creating a rather depressing image for the newcomers to the site</a> partly ruining <a href="http://escena.org/wiki/page/Divulgacion">our promotion job</a> two weeks ago at <a href="http://www.euskalencounter.org/">Euskal</a>, I was fighting once again with Java... er... and having a misery time playing at <a href="http://www.mariokart.com/">Mario Kart</a> too (just for 1 hour tho).<br /><br />
I keep having problems with the audio player :(... glitching just at the beginning of the music and creating random delays. It doesn't happen all the time tho. I'll leave the glitch there for now, and <strong>concentrate on adding synchronize more stuff here and there (production)</strong>. Which is what I'm doing, just after cleaning all the code. There were still some Timer.getTime() around...<br /><br />
Things are looking good, I just need to find a effect for the texts. But seems like finally I'm starting to get used to Java and I'm starting to optimise things. <strong>People may say that Java sucks and all that, well, based on my experience so far, it's great, it just needs more people working with it and sharing sources.</strong>Thu, 07 Aug 2008 03:53:00 +0000Inspire08 demo log, day 116http://ricardocabello.com/blog/post/578
<code><strong>Status:</strong><br />-88 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Released but unfinished</code><br /><br />
You may already know that the demo was released already two weeks ago at <a href="http://www.euskalencounter.org/">Euskal</a>. Yes, this is how usually goes, you work for a demo for X party, you don't finish it in time and release it on Y party.<br /><br />
In the end it was actually a invitation for <a href="http://d3fest.org/2008/">D///FEST 2008</a> as originally intended. Since the last post I didn't do much work on it to be honest, I did most of the part on the hotel while at Bilbao. I still wasn't able to forward/backward the tune so I still had the same problem of having to sync the something in the end of the demo and had to watch the whole demo. Some day... some day... But, tired of having to get the sync times by hand I added a Timer.getBeat() method. On init I sent the length of the beat (which is my tune is about 856ms) and then Timer.getBeat() will just give me back System.currentTimeMilliS() / beat_length. Once I found out the exact length of the beat the rest of the synchronization was much faster to produce. Instead of <strong>if (Timer.getTime() > 109568)</strong>, now I had <strong>if (Timer.getBeat() > 128)</strong>. Much easier to read for sure.<br /><br />
Then added the texts on top of everything, because, after all I had to talk about the event. Unfortunately I had to make the texts by myself too and that took some brain time. <strong>Which is something you don't have few hours before the deadline</strong>.<br /><br />
Last but not least, managed to do the greetings part/code in about 30min. All thanks to the Timer.getBeat() idea o/.<br /><br />
But this is not the end of the story. After releasing it some people were having problems playing it. I was finishing the demo at the party with WindowsXP at the party because Ubuntu doesn't work well in the macbook pro yet, and I <strong>added the fullscreen code in the very last minute</strong>, and seemed like on Ubuntu that wasn't working very well. So, some days after the release I updated the .zip which a new version that has a nice Resolution selector window before the demo, powered by <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/package-summary.html">java.awt</a>.<br /><br />
No, there is still more. There were other people complaining about audio playback issues on Athlon64. Now, I don't know if this is related to the <a href="http://www.cokeandcode.com/node/625">OGG player</a> I was using or Java itself? Anyway I've switched to a <a href="http://www.javazoom.net/javalayer/javalayer.html">MP3 player</a> because it seems to have more options, easier getPosition and easier to implement the seek feature (backward/forward). I don't know if this will fix the Athlon64 thing in the end tho.<br /><br />
Related to this, I've also implemented a nice <strong>beat visualizer</strong> which lets me easily control if the visuals are losing synchronization. After some hours on it, seems like the problem was that <strong>I was initializing everything way too fast</strong>. I was starting the tune even before the video mode had change, that made the music stop for a couple of milliseconds, and everything got unsynced from there. So, that should be fixed now, everything seems to be working fine now, I should synchronize some more things on the visuals and I should be able to call it final version :D<br /><br />
Which is funny, I think I've never done a final version before, usually you don't want to do it after the party, but somehow, in this case I'm really enjoying it :? Anyway, that's all for now. <strong>Final version in a few days</strong>, and that will be the end of these series, oh, and yeah, <strong>I'll release all the sources</strong> so anyone can laugh, learn or fix the mess.<br /><br />
Oh yes, you have the current version (v1.1) here:<br />
<a href="http://pouet.net/prod.php?which=51075">http://pouet.net/prod.php?which=51075</a>Wed, 06 Aug 2008 07:38:00 +0000escena.org DVD #1 / 2008 released (with sources)http://ricardocabello.com/blog/post/563
This is something that kept me a little bit busy these past days.<br /><br />
<a href="http://escena.org/forums/topic/1163"><img src="http://escena.org/files/forums/1163.jpg" width="350"></a><br /><br />
Had to do some organising (specially for the Data track) and all the menu design + cover. Luckily, <a href="http://soledadpenades.com/">sole</a> was there to do the rest :) The end result is quite good I think.<br /><br />
This is how the DVD menu looks like:<br /><br />
<img src="http://pouet.net/screenshots/50726.jpg" width="350"><br /><br />
I even did some <strong>ascii art</strong> for the thing ;P<br /><br />
<pre>
________ _______ _______ _______ ___ ___ _______
/ ___/ __/ __/ ___/ / /
__/ __//__ / /_/ __// / / /__
/ /_______/_______/_______/_______/__\____/___/___/ / .
/ ________ _______ _______ / .
. / / / / ____/ // DVD #1 / 2008 /
. /____/ / / / / / /_______________________/
/_______/____\___\______/ v1.1
</pre><br />
So, <strong>feel free to download the DVD, burn it, print the covers and show it to all your friends</strong> ;) Here is the <a href="http://escena.org/files/dvds/escena.org_dvd1_2008_v1.1.torrent">.torrent</a> you need.<br /><br />
And for all those that always want the sources to be released, even if it may sound weird for a DVD, yeah, we've released the <a href="http://escena.org/files/dvds/eorg_dvd_src.tar.gz">sources</a>, but you'll need to read the <a href="http://soledadpenades.com/2008/06/12/the-making-of-escenaorg-dvd-1/">making of</a> first in order to understand how it works.Thu, 12 Jun 2008 14:03:00 +0000That's enough.http://ricardocabello.com/blog/post/560
I keep getting distracted. I need to focus.<br /><br />
If in the future, you ask yourself what were the drops... somehow, these has been (I know, very random):<br /><br />
<a href="http://www.liveleak.com/view?i=708_1212766386">http://www.liveleak.com/view?i=708_1212766386</a><br /><br />
<a href="http://blogs.guardian.co.uk/digitalcontent/2008/01/the_elevator_pitch_fwa_the_def.html">http://blogs.guardian.co.uk/digitalcontent/2008/01 /the_elevator_pitch_fwa_the_def.html</a><br /><br />
<a href="http://d3fest.org/">http://d3fest.org/</a><br /><br />
<a href="http://www.jorgefuentes.net/">Zomb</a> will be proud I think :PTue, 10 Jun 2008 06:26:00 +0000Inspire08 demo log, day 36http://ricardocabello.com/blog/post/557
<code><strong>Status:</strong><br />-8 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Back to the system code</code><br /><br />
Well, so, here it's a preview with some text on the top finally. I guess I have align left and center at least. Need to sort out the Font class so the Font it's only the definition of the chars and a class Text is the one that draws and that can load different Fonts.. tho I just need one, but you know, scalability.<br /><br />
Hope it doesn't lose sync (I'm back to the currentTimeMillis method):<br />
<a href="/projects/inspire08/11/">/projects/inspire08/11/</a>Sun, 18 May 2008 18:04:00 +0000Inspire08 demo log, day 35http://ricardocabello.com/blog/post/556
<code><strong>Status:</strong><br />-7 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Back to the system code</code><br /><br />
I didn't have much time this week to work on this. But today I managed to do some work. Mainly on the font, and a font system which is now, more or less, ready. This is an R.<br /><br />
<pre>
charData = new float[][]{{ -1, -1, -1, 1 },{ -1, 1, 1, 1 },{ 1, 1, 0, 0 },{ 0, 0, 1, -1 }};
</pre><br />
Yes.. it took a bit to define all of them by hand... And this is how the Font system works so far:<br /><br />
<pre>
Font.position.x = 1.85f;
Font.position.y = -0.1f;
Font.colour = new Colour(1,1,1);
Font.scale = 0.07f;
Font.writeSentence("ORBIT . XPLSV 2008");
</pre><br />
Still need to add <strong>width</strong>, <strong>align</strong> and stuff like that.Sat, 17 May 2008 18:17:00 +0000Temps Réel - Breakpoint 08http://ricardocabello.com/blog/post/555
<embed width="350" height="250" type="application/x-shockwave-flash"
src="http://xplsv.tv/files/videoplayer.swf?file=http://flvvod.demoscene.tv/demoscene.tv__dtv_-nolife_temps_reel_breakpoint_2008_report__flash.flv" allowFullscreen="true"> </embed><br /><br />
<strong>Really good</strong> report/documentary.<br />
Taken from <a href="http://www.demoscene.tv/prod.php?id_prod=13303">demoscene.tv</a>Wed, 14 May 2008 16:55:00 +0000Inspire08 demo log, day 30http://ricardocabello.com/blog/post/553
<code><strong>Status:</strong><br />-2 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Back to the system code</code><br /><br />
... Ok, porting this to LWJGL ended up being a waste of time. The main porting was very quick, like, in 30min I had it done and working. Doing the applet version took more time, about 4 hours or so. And in the end there were some weird bugs with the timer, and after all the time spent trying to understand how to do the Applet version is the last thing I wanted to see. So, <strong>back to JOGL</strong>.<br /><br />
I also spent more time again on getting the position of the tune. I managed to get something this time. <strong>SourceDataLine.getFramePosition()</strong> return the amount of samples played, but they numbers aren't as smooth as a normal Timer, like the same number may repeat 5 times, which means that the animation is jumping. I had to do a crap fix for that:<br /><br />
<pre>
public static long getPosition()
{
/*
* For some reason the SourceDataLine.getFramePosition()
* doesn't give back smooth sequence of numbers, here it's
* a crap fix for it.
*/
if (lastSampleInfo != tune.getPosition())
{
lastSampleInfo = tune.getPosition();
lastTimerInfo = System.currentTimeMillis();
}
return lastSampleInfo + (System.currentTimeMillis() - lastTimerInfo);
}
</pre><br />
Am I the only one that thinks that it's weird that I have to do this? Still, it kind of works, but sometimes jumps back a tiny bit, I may come back to this code in a few days to try other things, but at least it uses the audio timer (somehow).<br /><br />
I was now starting doing the font system, it will take a bit still as I need to find the best/most dynamic approach.<br /><br />
I felt that closing the previews was a bad idea, so as soon as I have some text on top of the screen working I'll put a new version online so you can see where the thing is going.Tue, 13 May 2008 01:20:00 +0000Inspire08 demo log, day 29http://ricardocabello.com/blog/post/552
<code><strong>Status:</strong><br />-1 days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Back to the system code</code><br /><br />
As now I have more time (lol) to finish this, I'm now taking a look to <a href="http://www.lwjgl.org/">lwgl</a> as an alternative for <a href="https://jogl.dev.java.net/">jogl</a>. On Friday I was amazed of how easy was to have something compatible for main OS and browser and I wondered why no other sceners used it for avoiding shit time compiling stuff. Then I realised that there were more people on the scene doing demos with Java, at least <a href="http://tom.drastic.net/">Pandur</a> did. So I mailed him and after a couple of mails he explained he used <a href="http://www.lwjgl.org/">lwgl</a> instead. After spending almost all the evening today I still don't know what are the benefits on using jogl or lwjgl, but I think, after testing it a bit, and specially after having been answered nicely all my questions by the people on <a href="irc://irc.freenode.net/lwjgl">#LWJGL</a> I think I'll use this one instead. Also the applets seem to be a bit more robust than Jogl ones. Don't take me seriously here, I have no idea what I'm talking about ;) It's just what I feel is the best.<br /><br />
I did some more tweaks on the font, so tomorrow I'll try quickly port the code (shouldn't be too hard) to lwgl and create the font in 3D and.Sun, 11 May 2008 17:22:00 +0000Inspire08 demo log, day 27 and 28http://ricardocabello.com/blog/post/551
<code><strong>Status:</strong><br />-1(0) days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Content, sync</code><br /><br />
So, yeah... unfortunately I didn't make it in the end. Well, as 50% of the prods that sceners work on anyway. However, the good thing is that yesterday night I started to have something going on which was very interesting visually and could develop very well. I don't think I'll put more WIP versions available now until I finish it, it has nothing to do with what I showed before and if I showed it it would spoil some effects :P But if you really want to see how it is going, let me know and I'll send you the .zip<br /><br />
Anyway... I'll keep working on it daily and keep logging it until I finish, it doesn't go at all with <a href="http://d3fest.org/">D///</a> topic, which is a shame, I don't know if I should change the name/purpose of the demo at this point. Maybe I should and do the next one, for <a href="http://www.euskalencounter.org/es/">Euskal</a> (which btw, I got the tickets already :D) with the appropriate topic and leave this one as the experimental/test one. Yeah, that makes sense.<br /><br />
Anyway, yesterday night I implemented some <strong>Triangle/Vertex/Vect3D</strong> classes to the "engine", and today I managed to do very lightweight <a href="http://code.google.com/p/tweener/">Tweener</a>-like library/wrapper. It uses <a href="http://robertpenner.com/easing/">Robert Penner</a> Tween equations, which, if you have used some before, you can't live without anymore. This is how the implementation looks like:<br /><br />
<pre>
triangle.v1.position.x = Tween.process(t, d, triangleDest.v1.position.x, triangleOrig.v1.position.x, Tween.EXPO_EASEIN);
</pre><br />
(I got the Java port of the libraries from <a href="http://jesusgollonet.com/processing/pennerEasing/">here</a>).<br /><br />
As I seem to be a bit stuck on how to evolve the effect on the demo (although I have <strong>3/4 of the demo with content</strong> already), I guess it's a good time to start thinking about the font. I haven't had a chance to see how to load images yet, but I think I won't do that in the end for this one. So, I will be doing the definition of the font with lines. First I'm designing the font with <a href="http://www.inkscape.org/">inkscape</a>:<br /><br />
<a href="http://ricardocabello.com/files/blog/inspire08_font.png"><img src="http://ricardocabello.com/files/blog/inspire08_font.png" width="350" /></a><br /><br />
Doing that was about 5min job. I'll spend a bit of time tweaking the font now tho and then I'll go <strong>character by character reproducing it with GL_LINES</strong> in a nice class :) While doing the font I tested it on top of a screenshot of the demo, and it more or less fits by now. Man it's starting to look like a global war game or something :D<br /><br />
<a href="http://ricardocabello.com/files/blog/inspire08_font+snapshot.png"><img src="http://ricardocabello.com/files/blog/inspire08_font+snapshot.png" width="350" /></a><br /><br />
Well.. tomorrow more.<br /><br />
PS: Some of the prods released at Inspire are already on pouet! <a href="http://pouet.net/party.php?which=1463&when=2008">Check them out!</a>Sat, 10 May 2008 18:12:00 +0000Inspire08 demo log, day 26 (part 2)http://ricardocabello.com/blog/post/550
<code><strong>Status:</strong><br />0(1) days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Executable demo</code><br /><br />
Well, after sleeping about 10 hours in 3 days, I better sleep a bit more today as I think tomorrow (friday) will be a kind of party coding day/night (sponsored by red bull). Now that I think about it... it may be the first time I actually do coding when doing partycoding :P<br /><br />
The demo system now works everywhere: Windows / MacOS / Linux...<br /><br />
<a href="/projects/inspire08/08/demo.zip">/projects/inspire08/08/demo.zip</a><br /><br />
So, tomorrow... content content content, and I guess I won't do the log so there is a bit of surprise for the competition (hopefully).
Thu, 08 May 2008 16:10:00 +0000Inspire08 demo log, day 26 (part 1)http://ricardocabello.com/blog/post/549
<code><strong>Status:</strong><br />0(1) days left until <a href="http://inspire-demoscene.org/">Inspire08</a><br />Executable demo</code><br /><br />
I guess the organisers are expecting executable demos instead of a link on a browser. This is something I had no idea of how to do. But while checking <a href="http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=14">Ne-He's Outline font tutorial</a>, this time <strong>the JoGL example had a .bat with a command line that execute the thing on a window</strong>. This may sound totally normal to you, but it was exciting to me O:) So I quickly analysed it and extracted the logic and managed to make my demo.jar run directly on Windows!<br /><br />
After tweaking a bit the folders so it looked a bit nicer (I put all the libs (even linux/mac universal inside a /libs folder) the command looks like this:<br /><br />
<pre>
java -Djava.library.path=.\libs -cp .\demo.jar;.\libs\jogl.jar;.\libs\gluegen-rt.jar MainWindow
</pre><br />
This version should already work on Windows:<br /><br />
<a href="/projects/inspire08/08/demo.rar">/projects/inspire08/08/demo.rar</a><br /><br />
... I'll do the launchers for Mac/Linux later on. uhm... <strong>Windows/Mac/Linux/Online</strong>, I like how that sounds :P And with all the libraries there ready to run on all the OS the filesize is <strong>5Mb zipped</strong> (including the 4Mb OGG), sounds good to me too.Thu, 08 May 2008 10:34:00 +0000