Scene Zine Monthly for January 16, 2004 [Issue #10]

Published By Scene Rep

Contents

The Monthly Ramble by Patrick Groove
Mummble... mummble... projects... mummble...

Monthly News
Tell us what you're doing! We're happy to publish your news every single month in our zine!

Reader Feedback
We now have a comment form which goes directly to the editor! Please use it.

Reader Demo Art
You can send us your art work and we'll put it up!

"Hello World" in Bloodshed Dev-C++ by DJ Mirage
A beginners tutorial on Bloodshed Dev-C++ to say "hello world".

Monthly Scene Music Reviews by Libris
Demo juice for those of you looking for the perfect tail that takes all the donkey work out of production. Lets get visual baby!

Beginner’s DemoPaja v0.71 Tutorial by Patrick Groove
Demo juice for those of you looking for the perfect tail that takes all the donkey work out of production. Lets get visual baby!

4K Audio Engines by Umdesh4
What does it take to build a sound engine for a 4K demo? Umdesh takes us through the process during the development of the Assembly 2003 demo Etherium.

Demos Exposed by Guybrush
Four demo reviews up for your consideration! Guybrush takes the spot.

The Monthly Ramble
By
Patrick Groove

I don't know about you but 2004 doesn't feel all that different. We're still making art, demos, and music and most of us have our personal projects. Personally I'm extremely pumped for demo production. My own demo group is working on a Pilgrimage and Assembly production and hopefully they're going to place better than last year. I'm sure if you're in a demo group you're feeling excited about your projects too.

So ladies and gentlemen, this issue is for the demo artists. We tried to pack more demo content into this issue than we usually do and that's probably a good thing. Usually either I or Christofori in this monthly ramble try to pound into your head how we're diverse or for everybody. However I'd submit you know that by now. Most of you have read at least a few of our issues.

Yes, we still need your help and we need your involvement. However most of all as usual we need your comments. So we've taken the liberty to make it as easy as possible for you to send us everything you've ever wanted to tell us. In the feedback area host a form courtesy of DJ Mirage! Fill it out. Santa is on vacation but I'm still taking wish lists.

I would really like to thank my demo group Northern Dragons for helping me put together this issue. Umdesh4 has provided a really nice 4k sound engine design article and Guybrush has stepped up the demo reviewing position. Polaris was reviewing for us but you people drove him away with their terrible manners and rotten apples...

Just kidding! Polaris is going to be doing more demo system articles. Honestly he's the bravest guy I know. He runs our demo group, codes his ass off, holds on to a full time IBM job, and writes articles for us while keeping up weekly martial arts classes. I don't think I've seen a picture of him but I bet he has an extra set of arms.

Well, enjoy!

Back To Contents

Monthly News

ACiD reaches 100 - By RaD Man

More news in the ACiD department. This month I released ACiD Acquisition Update 100 aka ACiD-100: The Final Art pack, by far our biggest production ever. This release signifies my retirement from running the group after 13 very exciting years. I plan to continue to foot the bill for our domains and bandwidth but won't be handling any of the heavy administrative and organizational duties going forward.

Details on the ACiD-100 art pack itself have been posted at:

http://news.deviantart.com/article/12445/

The release officially went public starting last weekend 1/2/2004. We have several very high bandwidth (1gigabit) pipes serving via FTP and HTTP, and just today we secured an equally fast permanent Torrent seed.

Acid.org

Send us your news!!! We'll put it here next month!

Back To Contents

Reader FeedBack

No comments this month. Xmas must have been really busy.

Send us your feedback

Your Email Address:

Your Comments:

Back To Contents

Reader Demo Art

The #modarchive chat room By Gopher

Around Christmas I normally have some spare time, so I thought I'd do a little tribute to the people in Modarchive; 'Cheers' seemed the perfect setting given some of the antics that happen, and this is the result. In the picture are (in no particular order): Acidsoul, Gargoyle, M0D, Schabuda, X-Acto, Doragon, Nifflas, Tonka, Zepsi, DJMirage, Littlelk, 33, Patrick Groove, Ice Raven, Christofori, Gopher (me!), Grl, Libris, J/M/T/M and Lyosha.

Send us your demo art!!! We'll put it here next month!

Back To Contents

"Hello World" in Bloodshed Dev-C++
By
DJ Mirage

This month I am letting you, the reader, take a small peek into basic c++. It's only minimal what I show you and its very easy to make this program, but I just wanted to have a little bit of actual coding into this months issue of Scene Zine.

What I am using here:

Simple console application #include "iostream"


using namespace std;

int main (int argc, char *argv[]){
char quit;

quit = '\0';
while (quit != 'q')
{

cout << "Hello world :)" << endl;
cout << "Press q to quit " << endl;
cin >> quit;

}
return 0;
}


Now what does this little code ? this code is called a console application, thus it has no graphical user interface. This code is a little demonstration called Hello World. Lets explain it a bit.

#include "iostream" includes a standard library for input and output

using namespace std;

int main (int argc, char *argv[]) declaring the main function. main is always used as the main loop for the program
{
char quit; telling how to describe the quit variable

quit = '\0'; setting the variable to quit the program to 0 or false
while (quit != 'q') loop the program until the variable quit is q, whereas we later on will declare quit as a user input statement
{

cout << "Hello world :)" << endl; the famous line, hello world
cout << "Press q to quit " << endl; instructing the user on how to end the program
cin >> quit;
wait for the user to quit the program

}
return 0;
}

Now you must have figured that cout displays a text on the display, and that cin asks the user for input. those two are important in console applications. Of course we do want to compile our little program to run it. To do this save the file as helloworld.cpp. After that, go to Execute->Compile or press Ctrl+F9 if all works well you should have a file named helloworld.exe in the directory where you saved helloworld.cpp.

Now there are two ways to run your program, namely:

1) navigate to Execute->Run or press Ctrl+F10
2) navigate to the directory where you save helloworld.cpp, and there will be helloworld.exe

Now you want to look up some tutorials on c++ on the web, ill give you some links:

For the more advanced programmer
Programmers heaven
Maxcode has some good tutors

Back To Contents

Monthly Scene Music Reviews
By
Libris

Hello, this month I'll be doing the music reviews, taking over from drq. I've decided to review a few older tunes and I did this mainly because I couldn't find any new ones that I liked that weren't on the same old net labels that everyone listens to and plasters all over noerror.org, so instead I've chosen some older works that you may or may not be familiar with, and if you have missed these gems, be sure to snap em up! ;)

6581

6581, by Noisemusic's Future Eater is for those of you who like your music a little different. Closed minded purists stay clear of this one, if you think that music needs a melody, a bass line or even percussion to be classified as "music" then this is certainly not for you. For the rest of us however, 6581 offers an intelligently sequenced, futuristic and thought provoking auditory journey into the depths of the "noise music" genre.

Upon listening to this piece, my first reaction was that it would be perfect ambient music for a science fiction film, the atmosphere has an eerie futuristic quality to it, combining mechanical hums and slow phasing pads and interspersing them with heavily reverberated, yet distant and indecipherable vocal announcements. The use of reverb has been used excellently in this track, it gives the impression of wide open spaces, yet at the same time a certain level of confinement, the sonic textures are incredibly detailed but remain clear in spite of the use of reverb. In addition to the tapestry of sound created by the voices, distortion and effects is the odd synthpad, a clean contrast to many of the other more "spacey" sounds. For brief moments some of the synth work reminded me a little of the soundtrack to the film Bladerunner, however saying that this music bears any more than just a passing similarity to the Vangelis score would be untrue, 6581 is more contemporary and more unnerving.

6581 is one of the rare few pieces of music that effectively gives the listener an interesting mental image to go with the music, put on your headphones, close your eyes and before you know it you'll find yourself in an a strange dystopian (but very interesting) future.

Download it HERE (noisemusic.org) (MP3 format)

Attention. Te (?)

Attention. Te_ (as far as I can see that's what it's called) by Cosmic Trance belongs in the small group of quality IDM songs that exist in the XM format. Featuring a nicely fragmented electronic beat, broken and mangled vocals and the token sine-wave ambience found in much of tracked music in the same vein, one could be forgiven for writing this piece off as merely a cliché, but since it's probably a few years old now I'll forgive it, because it likely wasn't when it was first released, and besides it's still polished and stylish. The limitations of the XM format are barely noticeable in this tune, thanks to some smart tracking and well thought out sample arrangement. The use of volume envelopes on the ambient instruments (such as the sine's and synth pads) give the track plenty of depth, everything in the background is very liquid and calming this backdrop is contrasted with the focal point of the song; the programming of the percussion which holds plenty of variety as well as a logical and listenable structure. The tempo of the song is another interesting and effective feature, it adds a little spice by creating a swing effect that is especially noticeable on both the percussion and the relaxing triangle-wave melody line that pops up from time to time. Overall this is an immensely enjoyable piece for those with a penchant for ambient, IDM or chill out music, it's varied and well arranged with good, clean and polished sound for an XM, and at just over 1MB zipped it's no hassle to download either.

Download it HERE (The Mod Archive) (XM format)

Passing by the Procyon

Passing by the Procyon by jcole has for quite some time been close to the top of the list as one of my favorite modules of all time. The ambience is wonderfully full and rich with silky smooth synth pads accompanied by what sounds like wind or waves, deceptively the track starts off in this relaxing state but it evolves into a hypnotic fusion of driven beat work lightly salted with distortion, the result is stunning, the transition from a relaxing ambient piece to a throbbing beat driven journey is handled masterfully, in similar situations musicians often mess things up, completely ruining the atmosphere they've struggled to build up, but jcole has handled it perfectly, introducing subtler percussive elements first so that the transition not only seems completely natural, but it is welcomed. Everything about this track impresses me, it's atmosphere is sublime, the percussive programming superb, it's well balanced and satisfying as a piece of music, not a note out of place. The file size is also nothing to sniff at, weighing in at less than 500k uncompressed with excellent sound quality and mixing it shows that this genre of music can be very effectively written even with the limitations of the ageing XM format.

Download it HERE (Scene.org) (XM format)

Back To Contents

Beginner’s DemoPaja v0.71 Tutorial
By
Patrick Groove

DemoPaja is one of the best visual demo authoring environments ever produced. It was originally developed by Mikko Mononen as the Moppi Productions development kit and has been made public. Demos created in by this tool have taken competitions by storm including the Assembly 2003 first place winner Legomania by Doomsday. Moppi also has released to Assembly 2003, 2002, and 2001 with Ix, Halla, and Gerbera all placing second against major competitors. The secret is that it is incredibly easy to use if you get past the interface learning curve. However if you already know After Effects you know how to use this tool! In this tutorial we’re going to tween a 2d graphic across the stage, which is quite basic but is will cover the major controls.

First, open DemoPaja. You’ll be presented with a blank composition with a stage, asset list, and timeline. The first thing you need to do is import an image. DemoPaja supports JPG and PNG image files. You’ll also notice it loads AVI, SWF (Flash animation), MAS (Plug-in included with DemoPaja to export from 3dsmax), Targa, and Moppi fonts. I’ll let you pick an image of your own which can be anything except solid black. To import a file click on, “file” and then, “import”.

Once you have the image in your asset list you need to create a layer. As you might know or guess if you have one layer over another the assets in the top layer will display on top of the other on the stage. There are two ways to create a layer. The first way is to left click on the timeline and select “insert layer”. The second way is to click on the far bottom left button that looks like a dog eared page. Once you have created a new layer which will be called “new layer” left click on the layer and note the layer options. I suggest you rename your layer “Image Tween”.

Now that we have an empty layer you need to get our image into it. Before you do that left click on the white space of your image and note your options. Now you know what you can do with your assets in the asset lists. To get the image into your layer drag it onto the new layer (Note: You can drag multiple assets into a layer). That was easy right?

If you chose a small image it might not appear on the stage, but it’s there. What it has done is positioned the image at 0 X coordinate and 0 Y coordinate which at the bottom left of the stage. Go find it and drag it to the top right of the stage. Give yourself a pat on the back because you’ve just created the world’s smallest demo. Next we’ll go to the timeline and make the image move from the top right to the bottom right of the stage.

Click on the hierarchy button on your layer. This will reveal the image in the layer and its properties. The timeline for your image will be blue in color. Now click on the position modifier button or “gizmo”. This will create a beginning key. Key’s or key frames are essential to animation. What DemoPaja will do is take the difference between to key states and fill in the details using math. Now that you have the first key placed you’re your cursor to the end of the image timeline and create another key by left clicking and selecting “add key” for the same modifier. Then move the image to the bottom left hand corner. If you then scrub the play head you’ll see the resulting animation!

Now it’s time to experiment. Try animating other transform and attribute modifiers! Questions and comments? Email me and I can probably answer your question. Special thanks to Shanethewolf of Fearmoths for pointing me in the right direction.

Back To Contents

4K Audio Engines
By
Umdesch4

After the release of the 4K demo Etherium that Northern Dragons entered into Assembly 2003, I got a few emails from people asking me for some details about how we accomplished the audio. The intention of this article is to provide a bit of insight into what we did, and hopefully answer some of those questions. You can check out the demo on Pouet and visit Northern Dragons.

Our overall game plan, to leverage the skills of the people involved, was to create a complete sound engine module in C++, and have it converted to NASM and optimized afterwards. Since it seems that a lot of the DirectSound examples available online are in C++, it was a lot easier to figure out what we were doing that way. That and I just felt a lot more comfortable doing a bunch of ugly trig in C++.

The playback engine is just a bunch of DirectSound initialization stuff that you get to by including DirectSound header files and libraries from .dll files, and defining some data structures. As a musician/math guy, it was nice to have a framework for all the initialization details created for me in C++, and then let the coders take what I had and put it into assembly. Taking that idea one step further, you can also use a framework like that to let different people work on the math, creating the sound palette, and someone else writes the actual music. It's all about division of labor, and making it a solid team effort.

The main thing I was working with was a huge 'buffer' in memory that you can think of as a wave. I don't remember the numbers, but the track was about 2 minutes long, 16-bit (2 bytes) mono, at 22050 samples/second, so it's roughly (2 bytes/sample)*(22050 samples/sec)*120 seconds = 5292000 bytes = ~5 MB. That's a contiguous chunk of memory you can access like an array, and they're all zeros to start with. When you're done building into that, you just pass a pointer to it to the DirectSound engine, and say 'here, play this'. In our case, we said 'play this with stereo reverb' (specifically, Direct Audio DSFXWavesReverb), so it sounds a little less dry. You can really notice it in the kick sound.

So then, you need your sounds. I built this whole thing with functions...calling functions...calling functions. The lowest level of function was just an equation for each sound. You pass it some stuff like a frequency, amplitude, and a start position (your initial array index to write to the buffer). The equations are pretty basic trig functions, and I won't really get into the details. They're mostly one-liners (but ugly mothers) in a for loop. Believe it or not, the lead sound is almost a pure sine wave. The amplitude envelope is as simple as a quarter sine wave itself. Draw the quarter sine wave that goes from 1 down to 0, multiply the amplitude by that, and you get a really cheap non-linear roll-off. I also figured out how to do an inverse exponential roll-off just by taking the amplitude, and multiplying it by 0.999999 over and over, which I used on the whooshing sound.

One of the things I strongly urge people to do is use an initial volume ramp on their sounds. It's the biggest thing that I hear other people missing in this sort of work, and it makes a huge difference. Those initial clicks you hear on every note in some productions...well, they can drive your audience crazy, and can't be great for speakers either. Here's a code snippet to show what I mean, and how easy this is:

if(count<=50)
value *= (amp/50*count);
else
value *= (amp*envelope_function(count)));

If you think about it, (50 samples)/(22050 samples/sec) works out to around 2 milliseconds. Enough to eliminate a click, but not enough to really damage your attack transients, unless you're being really picky.

The kick drum was the cheapest thing ever. It's a sin wave that drops from (I think) something like 60Hz down to 40Hz, with that quarter sine rolloff I was talking about. Dirt simple.

The whooshes were, as I said, generated with the random number generator. I just kept increasing the rate at which it chose new numbers for my samples, so the pitch of the noise goes up. The flanger took care of smoothing out the 'burbling' you would otherwise hear at the start. A real bonus here was the fact that we already had a random number generator for other areas of the production, so it turned out to have multiple uses, increasing our bang-per-byte.

The chords were a little trickier. I don't even remember what the final version ended up being, but I think it was a sawtooth, with the points of the teeth flattened into something square-like, so it didn't sound quite so harsh. The math for that, while not involving trig, was one of the hardest parts for me to get right.

A few words about effects. If you have one sound you want to put a static delay on, like our lead sound, it's simple to incorporate the delay right into the sound, just by writing to 3 or 4 further offset locations in the sound buffer, with a scaled down amplitude for each. It makes the code pretty tight, and then you don't need separate delay functions, or have to worry about using a DirectAudio delay effect that turns your whole mix into a jumbled mess.

I did write a separate flanger function, just because the code was pretty cheap and simple, got reused in a few places, and ended up being smaller than it would have been to turn on a DirectAudio flanger. When you're building these effect functions, think hard about what parameters you want to control. My flanger had start and end times, depth, rate, and mix amount. Knowing which settings can change between calls, and which are constant can help a lot with optimization later, when every byte counts! Something else to think about for the conversion to assembly: parameters are cool, but more challenging for the folks coding it to assembly. Setting up the assembly routines to accept a pointer to a datastructure that holds all the values for a given effect is a cheap and effective way to create a simple music scripting technology. 'nuff said!

Then you have a melody block function that calls the sounds with the right frequencies, with a bunch of offsets (plus a master offset). Call that block a bunch of times in a loop, where the master offset increases, and you generate that melody block over and over. You build the entire thing with blocks built on blocks, and the whole thing becomes a lego exercise from that point. I think that part is where all the musical creativity goes, and I leave that as an exercise for the reader!

Hopefully that gives you some ideas, whether you're considering doing this for the first time, or even if you're a veteran in this area. Either way, I wish you tons of success, and look forward to having my socks knocked off!

Back To Contents

Demos Exposed
By
Guybrush

First off, an introduction. My name's Guybrush, or Tim Cowley in the real world. I've been coding since I got my first TRS-80 in a garage sale and have been watching demos for roughly 2 years. I've drawn for as long as I've coded, and have had my artwork and photography published. My background is not only coding, but art. Hence I will be a snob about everything except perhaps music. My focus is effects and the abstract layout of colors on the screen, rather than story or narrative. With my biases clearly laid out, let's get on with the reviewing. Here are my favorite four demos of the last month, excluding all of the christmas and new year's greetings.

Something that's becoming a trend lately in progressive, groundbreaking demos is the use of light. This has _exploded_ now that everyone is writing custom shaders, and learning how to do, for example, pixel-perfect volumetric light (propaganda), and nearly everything else that light does (Dreamchild). Light flares, soft-edged glow, not just blur but depth of field, refraction in water and so much else. Light effects have become the new tool to paint with, rather than texture, and this is shown in the first three demos I've picked.

Kolor - libgov

Simple, beautiful light effects, subtle shaders, and ethereal sound make this demo the one to watch over and over again in a dark room. This demo draws you in right from the start, not making you wait through a loading screen for a second as it weaves light all around you, caressing you with the elegant 2D art and enveloping you with glowing 3d objects. My only complaint is that sometimes it feels like I'm staring at the sun watching this demo, as the central light ball, at full brightness, drowns out the other effects in intensity. One can tend to squint also, as the brightness of that ball is pretty damned high, making it tough for me to figure out what's happening in the 7 or 10 different layers of effects. Minor headache aside, beautiful, smooth, and abstract is how I describe this demo.

Download

Spontz - die anderung

In one word, AWESOME. Intense, driving audio backed by fresh, crisp graphics, incendiary colors and hauntingly elegant 2D and 3D art.

Spontz uses afterimage, flare push and motion blur effects to good effect, winning over the stoners by combining all of these with attitude and a rich fiery color palette. Audio is energetic, upbeat industrial, lots of growly low end with almost spacy, catchy high melodic riffs. Attention is paid both to the 3d vertigo-inducing effects and the 2d layout of the colors on the screen.

The script puts their demoengine to good use, and shows off their effects well, but sometimes you see a zoomer a couple too many times and it loses it's specialness.

Overall, my favorite of the last two months. A solid, well polished demo and demo engine. Like _chrome_. (For fun, edit their main.spo script file, it's just plaintext!)

Download

MFX - Universe Part 2 (The Planet) (tUM 2003, 27-12-2003)

Once again, a beautiful, understated, subtle space-based demo from MFX. Sadly, this one gave up on the pristine minimalist design aesthetic of the first in this series (The universe part one, 'singularity') and gives in to the horde's desires to have more than one camera path, white-out flashes between segments, and more than one 'layer' on the screen. This one looks less like a star trek/disney's black hole journey through space and time and more like footage off of the voyager spacecraft. The blur effects are not to be missed, and if you're a photographer who knows what they're doing then you can appreciate their blur, that it's not just a gaussian average, but that it expands out points into a pentagon, mimicking the effect of the aperture on a real camera. This is _very_ subtle, yet very realistic and not something the average person is going to give a shit about, which is why I like this production so much.

Something else, which comes out of investigating their resource files: these guys did their homework. This isn't just something that looks kind of like jupiter. There's a list of it's satellites, their orbits, different graphics for them and authentic-looking images.

Also interesting: their greets include BBC, national geographic, discover, scientific american, nature, JPL, ESA. I'm looking forward to part 3 of this series.

Download

PowerPuff Girls - Scene of The Girls

The first all-girl demo group that I've seen. SOTG is not a technically superior demo. However, it has a good sense of color, is bouncy, triumphant, fun and cute. All the things that I like about girls. Stronger design than most demos, doing more with a grid of circles than most groups do with an entire 3D world. Also, it's got more half-naked fantasy chick art than all of the other demos in this column _combined_. My only question is this: do they still get into the parties for free?

Download

I've left some big demos out, from some big groups. Why? Suffice to say that once a group gets too big, it gets tired perhaps. It might come out with a big trick once every few months, but there's just so much momentum carrying that blubber along that it loses it's sense of self, and becomes more of a production machine. Better to be ASD, I think, and make one ass-kicking piece of art per year, than to punch out piece after piece like Stephen King, and to get by for the most part, on a big name.

Back To Contents