a quick note
June 27, 2005
June 27, 2005
...before I go to bed, two things: A song that will soon have lyrics. A fun NINJAM song we made today.
Recordings:
sparseish
5 Comments
...before I go to bed, two things: A song that will soon have lyrics. A fun NINJAM song we made today.
... we still haven't publicly released NINJAM. I know it's late, but we're resolving some issues that probably would have bugged people (just this morning I managed to rearchitect a portion of code that made everything run a whole lot smoother), and it'll be worth it. If you really can't wait, go on IRC where I described before and you can play with it. Honest. A download link is in the topic. But it won't be long before it's up on a public page as well. I'm dreading the traffic hitting my lowly T1, though. Normally I like releasing software and it getting attention, but sometimes it's counter productive. Anyway... we've been having some fun jams, this stuff is so awesome (at least I think so, clearly you, the reader, can make up your own mind).
...Brennan and I are hoping to release an alpha version of NINJAM by Friday. It will be far from feature complete, but should basically work and be pretty fun and usable. I'm amazed at how much fun I've had using it. I also feel like I get some really good practice playing, too. Here's a little clip we made today. We got chat support working, and topics so that users with permission can set a topic string (i.e. "space rock in Am"). Tasty.
Listening to some older Verve records, only had ever heard Urban Hymns of theirs, and these ones are awesome. Toast digging. Here's a little song Mr Wiener (not what you're thinking, probably) and I made. It's about certain people. NINJAM is coming along nicely, but I'm going to a wedding this weekend so we'll wait to release until next week, I think. That and Brennan and I have a few interesting things left to do. One of the more interesting features added recently is the ability for the server to require clients to agree to a licensing agreement. For example, the server can enforce that everybody who contributes content to the server agrees to license that content under a Creative Commons license, or whatever the server operator chooses. Hot. Finally, ordered my Athlon64x2 today. Hopefully won't take too long to come.
Ah, the two day hangover, ouch. Note to self: quit trying to reclaim your teenage yaers of not drinking by shotgunning MGDs. Although it's funny as hell, there's just nothing right about it. Nothing. And although it all got consumed, one 30 pack would probabably have been enough. Really. We just had a lovely ninjam (my favourite parts are at about 30:00 and 42:00 or so). I can't help but feeling very elite due to having so much code in there that made shit work (specifically, the idea that I wrote the drum sequencer, ha ha). Anyway, gonna take our time a little before releasing NINJAM, but if you can't wait try coming to irc.cockos.com, #ninjam. and you might get involved. If you have windows, make sure you have ASIO drivers that Jesusonic works with, and if you're on a mac, try out the Jesusonic version on it and make sure it works, too.
NINJAM web site is up. We'll be releasing alpha versions for Windows and OS X next week, it looks like. Woot.
Yay for Apple and the x86 announcement. So I think it's about time to share info about the new project (for a while I was unsure if it was going to even be useful, but after this afternoon's playing with it, I'm completely hooked). It's sort of half multiplayer game, half music production tool: Brennan and I are working on software called Ninjam*, which allows a small group of geographically challenged people to play music together. Because latency is so important in playing music, existing voice conferencing over IP really wouldn't work. So instead, we decided to just make latency bigger, not smaller. Latency in Ninjam is measured in measures, and that's what makes it interesting. When you play, you're playing along with the previous intervals of everybody else, and they're playing along with your previous intervals. If this sounds pretty bizarre, it sort of is, until you get used to it, then it becomes pretty natural. We'll go into the architecture of Ninjam soon, and describe some of the more advanced upcoming features as they get implemented. I suppose this should actually go on the Ninjam web site, but I'm too lazy as of yet. Here is a little jam we had today with people from IRC (it comes together towards the end). * Perhaps it should be NINJAM: Novel Interval-based Network Jamming Architecture for Musicians
So after spending quite a lot of time getting LAME/mpglib tuned for my app, it turns out mpglib doesnt handle having multiple decodes going at once (despite having a context pointer etc). LAME. REALLY. So after looking around for any good solid (<=LGPL) mp3 decoders, and not finding any, I started trying to use Vorbis again. My main problem was with creating a Vorbis encoder taking too long. Well, when I went to get a burrito tonight, I realized that I shouldn't be encoding samples as they come in, but rather just when I get a chance. So with a mild architectural change (that took about 30 minutes), I got it all working nicely. Vorbis is really ideally suited for this app (which you will be seeing shortly), on many levels, and above all the fact that it's free goes a long long way. Now I've been talking shit about APIs some, lately, and I just want to state that while I don't think I'm an expert on making great APIs (god knows Winamp's API is a handfull), I do know a good API when I see one. :) I managed to do a good one for Jesusonic, that allows me to integrate Jesusonic processing with other apps extremely easily (including the new app)-- in making the DirectX plug-in the only challenge was making the DirectX plug-in. Not integrating Jesusonic into it. I'm very tempted to go make a version of LAME that has a very clean and sane encoding and decoding API, as well as tuning the mpglib that comes with it to support multiple decodes, much better frame synchronization (Winamp's got as solid as it did from just a few good tweaks).. it's very tempting, cause I often find myself wanting to support these things. Then again, maybe I should wait until the MP3 patents run out, since I live in the USA... Yay for Vorbis... The other thing to note, is that the feral cat who adopted us rocks. Last night we were watching a movie, and we heard this noise. I went to look into her little doghouse, and it looked like she was shredding the crap out of her bed. I was thinking "wow she must be restless or something", and I went out to survey (and perhaps clean up) the damage (scaring the cat off in the process), only to find that she was just pulling her shedded hair from the bed, cleaning it. IT made us feel bad that we didn't clean it sooner, but all was well once we cleaned the hair off, and ran it through the washer and dryer, to give the kitty back her clean bed. It just really impressed me, that's all. And one final thing, with all of the rumour going around about Apple possibly announcing switching to Intel architecture chips tomorrow, I'd just like to point out the following: Whether or not it makes business sense for them to switch, the actual process of switching won't be that bad. Porting applications from OSX/PPC to OSX/x86 wouldn't be that big of a deal. Getting everybody to use the updated APIs, and gcc for compiling, was the huge step. Apple may even have planned it, for all we know. API changes are a much bigger headache than instruction set/ endian changes. At least from my experience in porting software. Then again, 99.99% of the code I write is endian-nuetral on the first take, so maybe I'm smoking crack (but I doubt it). I'd really like to hear that Apple announced that they were going to use Athlon64s. AMD has really blown me away. And I'm going to order my A64X2 4400+ soon (HELLO, BIOS UPGRADE).
In reverse order. My 2.4ghz Athlon64 will encode 48khz stereo WAV to 192kbps MP3 at about 15x realtime. My 2.8ghz P4 does it at 11.5x realtime (both using LAME). Sweet. That's 130% the speed at 85% the clock rate. Or about 1.5x more shit getting done per cycle. Yay, and dual core A64s come out in a week or two, I can't wait. I spent some time integrating OGG Vorbis support into this new app that Brennan and I are working on, and it is sorely lacking in one respect-- the API for using it. Complete pain in the ass. They need to have a simple encode/decode API, much like LAME (though I have a beef with LAME's API, too, see next paragraph). Instead you have to deal with the gory details of the OGG format (OK so you can use the VorbisFile API, but it has its own complexity issues, especially if you are dealing with streamed content). So then I also did some stuff with LAME, and they need to (at least on the Win32 side) provide a nice clean API as well as the old BladeEnc compatible one. And lame_enc.dll includes mp3 decoding support, yet they don't expose any of it. So instead I have to do a 10 line patch to lame_enc.dll and have a custom dll to get it to work! (I will be sending them the changes for hopeful inclusion shortly)...but once I do it's good times and works. There's a place down the street from here that I go to from time to time for drinks and burgers, and I used to think that their burgers were really good, but now I'm realizing they are only good if you have exactly the right amount of alcohol-- too little, and you realize how overdone they are, or too much which leaves you like I feel now-- bloated, nauseous, and feeling like you want to die. With burps that remind you why. Ugh. Finally, I'm happy to see AOL open source AVS/Milkdrop/NSV/Ultravox. Woot.
So I got a Shuttle ST20G5 (I think) and a 90nm AMD Athlon64 3800+, and let me say this thing rocks. It runs at the same clock speed as my old P4 2.4ghz, and is way way faster, and insanely quieter/cooler (I can hardly hear it). And once the Athlon64X2s come out, I will be able to upgrade to dual core easily. Hot (but not TOO hot). It's been a while since I've seen an Intel CPU that has impressed me this much. Had some pain getting XP to install since I didn't have a floppy drive and my HD is SATA. Got to learn how to add it to an XP CD, which was, err, fun. And had some annoying times getting my printer/fax/scanner to work (the drivers included with XP were hanging the system). After a good 8 hours of fudging I got it all where it needed to be. Now to go grab a couple USB-Serial converters for doing AVR development (since my old box had two serial ports, and this one has none). Bleh, my back hurts. WTF. More to this story later.
Here's a newer incarnation of the mp3 linked to below, with me singing on it. I really need to get voice lessons or something. If only I could make the sound I imagine in my head. But what I really hate is people who say shit like "you shouldn't sing" when I make crap like this. Because if you don't try, how can you ever expect to improve? Anybody who has ever gotten good at something that once they were not should know that. (it's not like I recorded that and was like "MAN I RULE I NEED TO GO ON AMERICAN IDOL! YEAHZ!!!")
Just made this remix (licensed under a Creative Commons Attribution NonCommercial ShareAlike license). It's from this remix contest. I know they want us to use more of their samples, but I'm too lazy to go dig through them.. and I wanted to do another song in non-4/4 time.. it almost works, anyway. But fun no less. I dedicate this song to Steve. Anyway, not gonna bother entering it or anything, but not too awful for a quick bit of work, either. My attention span is too short, though. On one of our own songs, maybe I can spend more time, maybe. Update: OK those vocals were really not working for me, here's a mix without them and with some drums in the bridge.
My lovely woman ran off for a fun long weekend on the east coast, so I'm alone, with the cat, my cold, my new gold crown (pictures coming soon) and some tasty indian food. I just made this tribute to one of our band's songs. Kinda funny. I really dig the Treo 650 I got. Might start playing around with developing stuff for it. Maybe. I have an itch that needs scratching, now if I could just find something that won't take tooo long to get into. Tomorrow we're going to start recording album versions of our songs, fun. Also, been watching that classic 90s show, "Strange Luck." It's been so long, that I get to watch each one as if I've never seen it before. If only I had something better than a terrible VHS rip..