Posts Tagged ‘demoscene’

20100312 Breakpoint demolog, day 37: device automation goodness

Today’s been quite productive and I feel I have implemented the remaining “bare minimum” feature I [realistically] wanted to achieve for this demo: pattern automation!

So now I can draw curves for any parameter in my synth, in any pattern, with them associated to an instance of Renoise’s Automation Device, and they will be replayed when running the demo. Only points and linear curve modes are implemented –I never use cubic, even in real life renoising, so I won’t miss it–. But it’s enough for making songs way more lively and varied, and I am reaching the point in which I feel like running out of time, so feature-freezing at this point is a very sane idea :)

I have also added another little neat, experimental feature… that I won’t disclose yet in the interests of creating a bit of expectation! I haven’t tested it too much yet, and I’m not sure how well will it work when I submit the synth to serious (stress|test)ing, in order to compose the song, which is what I’m going to do in the following day(s).

In the compiler front, Visual Express and I haven’t come to amicable terms yet, but I’ll leave the complaints for another post. Only two words and a question mark: No refactoring?

20100311 Breakpoint demolog, day 36: plane meditation

I haven’t had much time for coding today, but I have been reconsidering what I started yesterday and noticed there were a couple of errors in my approach. I wrote them down; will work on them tomorrow…

20100310 Breakpoint demolog, day 35: some pattern dynamics

Things have improved a lot compared with yesterday’s status. I have fixed several sound bugs and whatnot’s, and have added support for volume changes and note offs in the patterns. Silly as they might look, they actually are quite important :-)

In fact, in what regards to volume (the volume column, more specifically) my player is slightly more feature richer than Renoise, since if you send different volume values to a VSTi in Renoise once the note has been sent, it doesn’t do anything, while my player acts accordingly and updates the volume for the corresponding voice. This can be used for the old tracker trick of having a rapid sequence of 64, 00, 64, 00, 32, 00, for example, and since it’s always quite handy for me, I have implemented it even if that’s not exactly what Renoise does. Not sure if I’ll repent later!

I have also begun work with reading and parsing the automation envelopes that I can create with Renoise in order to change synth parameters on the fly, with the Automation Device. I looked into CC changes but they looked just too complicated, while the Envelopes look simpler and more granular/synthetic, so I went for that approach instead. I am almost done with reading the data, I only have to let the patterns know about them and use it when playing :-P

Filter cut off sweeps, there we go!!

20100309 Breakpoint demolog, day 34: VSTi+Renoise working again

I managed to compile the VST instrument for Windows. There were some odd differences between Linux and Windows in the main.cpp side of things, so at the end I just made a new main_windows.cpp and forgot about trying to wrap incompatible things with #ifdef/#endif pairs. I also had to add an esoteric .def file so that Renoise would recognise the .dll as a plug-in file…

All in all, I’m finding Visual 2008 superverbose, superboring and superslow to work with. I don’t know if I had just idolised VC6 but I don’t remember it being so cumbersome. For example, the autocompletion or “intellisense” thing doesn’t show me useful stuff most of the time… it usually shows me a list of low level Windows constants that I obviously don’t care about, instead of showing me classes from my project. Also, the keys for triggering autocompletion are super odd (ALT + right arrow) instead of the usual CTRL+Space. I haven’t found the option for automatically adding matching braces, so I have to do it manually. The options and general semantics are annoyingly microsoftive (e.g. “Solutions” actually means “a generated binary”), editing project properties is annoyingly slow, and etc, etc. Even the XCode configuration panels look nice compared to this!

What is also possible is that I have got accostumed to Makefiles and the whole idea of going through a series of tabs and trees and options and blablah just looks silly at this point. We’ll see if I end up liking it at the end…

End of the mini-rant and back to the demo: I got a new version where a simple representation of the left/right buffers is painted on each frame. That’s the most advanced graphical stuff I’ve done to date in this project, hehe. The sound is quite saturated in comparison with the output I get in Renoise for the same song. It’s probably due to the fact that in my code I’m not doing any clipping in the output of SorolletVoice and am adding all together in the mixer, but Renoise is probably clipping each voice internally when it gets the output of each VSTi instance. So I’ll add that tomorrow… otherwise as soon as more than one instrument is playing at a relatively loud volume, hardly anything can be distinguished!

20100308 Breakpoint demolog, days 32-33: moving to Windows

Since I’m going to be away from my main computer for a few days, I reformatted mrdoob’s laptop so that it could run Windows. Mind you, this is a Macbook Pro computer, which means that installing Windows is a long process, specially if you make a mistake and have to reinstall Leopard from start again!

So it was a “very interesting” Saturday evening+night: the computer doing its stuff, while I cursed Bill Gates and Steve Jobs indistinctly. You can’t appreciate enough how fast the Ubuntu installation is, until you have to reinstall Mac OS or Windows again. How can they be that DAMN SLOW?!

Anyway, I managed to install Visual Studio and all that. I have even installed cygwin so that I can keep using a decent command line and git. I have set up a remote repository on a server, so that I can share the changes between computers too. Not that I think I’m going to touch much code in the Linux computer, but it’s good to have that. Just in case the laptop data gets corrupted or something :)

I have fixed the couple of bugs I had from Friday –nothing too serious, just some errors not being checked– and the “demo” is working as expected: the song is loaded, a simple triangle is shown in the screen while the song is playing and when it finishes, the demo exists. However there’s a bit of cracks and distortions here and there… I might probably have broken something in the SorolletVoice class while fixing something else, so what I’m going to do is to compile the VSTi for Windows, and compose the song using Renoise on Windows. After all, it’s all the same format at the end… and that way I can make sure that what I heard in Renoise is more or less the same than in the demo!

And the final paragraph is dedicated to Iq: the size of the simplest program that uses my player (the one which does a WAV dump) is 86kb, Release. When kkrunchified, it goes down to approximately 31kb. But my demo is using SDL… and that simple program doesn’t even open a window or output any sound anywhere, so I tried to load your 64k framework in Visual Studio 2008 –with the hope of using it as a base instead of using SDL– but it systematically refused to compile :-( There are errors in some structs from the events file, but I can’t quite get why, because they look perfectly fine to me. Maybe you’re using VS2005?