<< >>
justin = { main feed , music , code , askjf , pubkey };recent comments
[ present ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ... past ]
December 4, 2005
freeform jam with brenbiderman

December 1, 2005
freeform jam with brennan

November 28, 2005

November 27, 2005
a new project: multi-track audio editing

OK so I've been spending the last 9 days or so writing a new program, called REAPER (which stands for something along the lines of Rapid Environment for Audio Prototyping -- but I just like to think "don't fear it" or "reap your harvests" or whatnot).

Now I know, there are many products that fall into this category, ranging from crappy open source to not so crappy open source (requiring linux) to crappy closed source to super insanely expensive hardware-dongled closed source. So why am I writing yet another editor? Because I'm making something that fits the category of being exactly what I want to use. It's mostly like Vegas (without the video capability), but with features that I always wish Vegas had.

I will be posting some alpha builds soon, but in general I haven't decided on how to release it. I'm really tempted to do some nag-free shareware again. At the very least it will have very sensible public plug-in APIs that make it easy to extend, and maybe it'll go open source too, I don't know. We'll see. For now, here's an image:

There's a lot to do, which I'm excited about, but it's already quite usable, and already does things well that other software I've used does poorly. But now, I need to go do everything else. Fun fun fun. Stay tuned, I'll be posting the alphas in here, and hopefully a v0.9 beta type release by Christmas. The biggest obstacle I face is DirectX and VST plug-in support, since the APIs for hosting them seem to be a pain (well, DirectX, anyway, I haven't looked at the VST hosting API yet) . At the moment I just have Jesusonic integrated, which is super easy (since it has a reasonable API that doesn't require the disgusting monster that is DirectShow). Keep an eye on the comments of this article if you are interested, I'll likely just post links in there...

Finally, NINJAM users, expect a new release of the Windows client in the not too distant future, with some of the improvements to the audio system I've been making for this. Specifically, increasing the accuracy of the timing of the recorded loops (currently it's not too far off but it could be a lot better).


November 25, 2005
freeform jam with brenchr

November 15, 2005
a new album

Here it is. We had a fun afternoon making it, too. It's very weird, be warned.


November 12, 2005
freeform jam with brenbidernewtoncoleausrob

November 10, 2005
hl-- released

I spent some time improving and cleaning up the script that powers this portion of my site, which was originally Brennan's hlscript, and am now releasing it as "hl--". I'm intending to backport much of the new functionality to hlscript, since hl-- lacks many of the features that hlscript has.

Also, I updated PathSync a few days ago, with an option to help deal with daylight savings time anomalies.


November 6, 2005
freeform jam with brenchr

November 4, 2005
so ronery

...but had some fun when I got a small cheapo R/C helicopter, and made this little video. Now if I can just learn to try not to impress the camera...

1 Comment

October 31, 2005
coming back to life

Had some weird terrible nastiness that I don't what it was. Some sort of flu or food poisoning or some shit, bleh. There went the weekend. At least I had a wonderful wife(!!) to take care of me.

The video from the show is up, currently in three formats (CAUTION: if you lack a sense of humor your probably don't want to watch these): high quality xvid/mp3 AVI, low quality xvid/mp3 AVI, and as a flash video on youtube. Thanks to Newton and Penny for videotaping it. Overall it went pretty decently, we all fucked up a fair amount, but nothing too catastrophic. Forgot to play a Led Zeppelin cover, though.


October 26, 2005
freeform jam with brenchr

October 25, 2005
on mistakes in "web logging"

Apparently in the top 10 things done wrong by web logs (which I will link to here to be mean), I score a 8/10 (meaning I make 8 of the 10 "mistakes" listed in the article). The only ones I miss are 9 ("Forgetting That You Write for Your Future Boss" -- rather, by posting what I post, I ensure that the only people who would hire me are the people who I'd want to work for), and 10, because I have my own domain. hot damn.

Anyway, here's a new topic. Friday night we're playing at the Cherry Bar on Folsom in SF, going on around 10:30 or so I think, in case anybody wants to come by. I don't know why I'd mention it here, since the three people who read this are most likely geographically and/or spatially challenged.


October 24, 2005
freeform jam with brenchr

October 21, 2005

So I'm sitting in the dining room of a friend's house, on my laptop, listening to random music-like things. I think soon I'm going to make something like Debris for audio, specifically for NINJAM recordings, since they are in nice little chunks with some somewhat relevant metadata. Could be interesting, depending on how much intelligence I can build into it.

A little burnt out on the portable console hacking-- primarily because of things that are really hard to debug (for one, it seems that if I do an uncached write (the second to top bit of the address set) to memory, then soon after do an uncached read, it doesn't get the updated value. Which complicates things... The whole process of building, copying, running, repeat is a pain too. Anyway.

Get to move my work space soon, going to get a bunch of bandwidth at the new location, too. Yum.

And after this weekend, we'll have to get practicing for our show.

Speaking of music, got a fretless mexican fender jazz bass. So tasty. It has lines on it, thankfully, so it's not too hard to play, just gotta pay more attention. Here's a little mp3 of me testing it out on NINJAM.


October 19, 2005
freeform jam with brenchr

October 17, 2005
portable console development

Thanks to a lovely birthday present (thanks rOn!), I've started playing around with writing stuff for a certain portable console, we'll just call the XYX. I'm pretty impressed with the XYX thus far, and look forward to learning more about it, woot. Time to learn MIPS assembly and retarget Jesusonic for it--oh wait, this thing lacks audio input, sad.


freeform jam with brenchr


October 15, 2005
jesusonic development

I spent the evening last night and part of today doing something that ended up being very easy, but produced crazy tasty results -- I made Jesusonic support multiple sub-channels, where each one runs concurrently, and their outputs are mixed, and the currently selected channel gets the input from triggers/knobs/audio. This lets me have banks that can be drum machine, bass loop, guitar loop, etc. and switch between them using the footboard, and control each one, and so on. I also made a loopsampler-granul that lets you program the loop granularity, so you can make your loops perfectly timed to synchronize. It's so awesome, for me at least. Tempted to start making songs live with it. Here's a good one of me screwing around (though without the setup, but I'm sure I could get the setup process recorded to sound decent). Anyway, gonna go try it on the actual hardware, which shall I mention, I just added a backlit keyboard too (though I haven't finalized the mounting of yet). Getting my patches worked out for the show on Oct 28th, but tempted to make some for jamming alone, just to mess around at some point.. heh. anyway, fun fun. I'll post Jesusonic 0.992 up with this functionality once I test it some more, so maybe a few days...


October 11, 2005
tastes etc

After reading this comment (from this page): "Dungen were great 60's fun when playing their "proper" songs, but again jumped into too many instrumental jams with flute solos and the like. They need another album of actual tunes to round out their set, IMO."

Funny how different tastes can be.. When I've seen Dungen live, I liked the album songs fine, but the instrumental freakout jams with flutes and everything were JUST INSANELY GOOD. They would stop playing at the end, and I'd want more. MORE!

In other news, I did some more flights of my R/C plane, and recorded this video. I can feel the novelty wearing off (of the video aspect), I wonder how long until I am flying and not videotaping it... Oh yeah, here's my self portrait...

Let's see, what else? I fixed the sustain pedal on the Rhodes I got, seems one of the pins holding the long thing that pushes the dampers down was missing, so I just cut a bolt to fit and reinstalled, and it works like a charm. Woot. Tsk tsk Darren or whatever your name was for selling me this without the sustain rod, so I wouldn't know (just kidding I'm sure he didnt know anyway).

OK so here's something that might actually be interesting to people who read this: I'm planning on GPLing Jesusonic. It's about that time (if anybody has any question as to why I would choose the GPL instead of a BSD license, see my previous article).

Finally, here's a little (extremely rough) take of a song that Dave Wiener and I made back in August, using a poorly maintained (but still lovely) grand piano.


October 9, 2005
(Perhaps Obvious) Thoughts On Being an Individual Software Developer (Part II)

Part II - Making Open Source Work

From my experiences, there really seems to be a right way and a wrong way to begin an open source project.

The Right Way

    + If you haven't already, write a usable working proof of concept of your software.

    + Do NOT create a sourceforge.net project for your software (see below).

    + Make a simple web page for your software. Provide downloads for the source and (if it runs on Windows or Mac) binaries. Perhaps even bundle the source with binaries, if it's not too big.

    + Put an email address on the web page with a link that says "send updates/patches/requests/etc to ". It often is also useful to put a list of things that you are intending to add, i.e. a "todo" list.

    + Continue to update and USE your software.

The big push here is that a sourceforge.net project should only be created for a project once it has enough people working on it to warrant it (i.e. more than a few).

From my experiences it is much easier for developers to get involved with a project if they can download a source tarball or ZIP file, make their changes, and send them back to the project owner, who can then merge changes appropriately. While the project owner should definitely be using some sort of version control, setting up a CVS server for other contributors isn't really that important, at least until other people start doing a very big percentage of the work, and having it as the recommended mechanism for access initially is a really bad idea, because the barrier of entry is higher.

The other things I suggest are:

    + If you use other SDKs/libraries, include a text file with the names, versions, and (preferably) download links for those SDKs/libraries.

    + Try to use only the most common libraries, to make it as easy as possible for other people to run and build your code.

The ideal scenario is, you create the initial version of software and thus begins the cycle:

    + Someone finds out about your software

    + That person wants a particular feature or functionality, so they add it

    + They send you a patch, you merge it into the main release

    + Repeat.

That's really all there is to it. Later on, if you have many people actively working on your project, you might want to consider public CVS etc, but even that isn't really that helpful, as you'll only want people whose code you trust to have commit access.. anyway, hope this helps people! I know it might obvious, but hey, that's why I named this post what I did.

1 Comment

October 7, 2005
I love it when shit works

So I built my power filter for the camera in my plane out of a 1000uF cap and a 2.2ohm resistor, and behold, it worked like a charm. It was extremely windy today (really bad), but I couldn't wait, so I found a field that was at least mostly empty (Balboa Park), and did a couple of test flights. I had to fight to keep the plane in control, the wind was so great and gusty, but I managed to (most of the time). Using this recording setup, I managed to take this lovely video (about 15mb, XVID/MP3 AVI) of 2 of the flights. Tomorrow I hope to do some longer, more controlled flights, if the air is calmer. Woohoo! So much fun.


October 6, 2005
plane stuff

Test flew my RC plane with camera mounted in it today, was fine. Balance good, weight not too bad, added power draw seemed OK, etc. Didn't have the receiver for the camera, though, so I don't have any video footage of it.

The main thing left to fix is that when the motor is on, the power gets so noisy that the camera starts fucking up. So after researching online, I've decided to go to Radio Shack in the morning and buy the appropriate resistors and capacitors (well, just one of each really), and build a lowpass filter. Judging by how the video looks when the noise is there, it appears to be correlated to the speed of the motor (the motor probably spins at upwards of 2000 RPM), so it seems relatively easy to build, say, a 30Hz lowpass (which using a 2.2 ohm resistor and 2200microfarad cap will give me a (workable) voltage drop of 0.2 volts, at 80mA load), which will hopefully take care of it. I'll buy some variety of resistors and capacitors to tweak the filter once I see how it works, too. Fun fun, math meeting electronics, mmm. I'm not sure what the frequency response curve is for a lowpass like this, so I'm shooting really low. Anybody have any experience with doing this? :) I guess I'll find out if I'm completely wrong...


October 6, 2005
(Perhaps Obvious) Thoughts On Being an Individual Software Developer

Part I - Choosing a License

Disclaimer: I am not a lawyer, these are my thoughts as a software developer.

For me, there are three basic licenses I consider when I'm releasing a piece of software.

1. A Proprietary License

This often seems like a safe first step--keep the source code to yourself, let people use binaries, etc. I'm not aware of any "standard" closed-source licenses one can use (are there any?). So it seems a lot of people end up copying other peoples (expensively crufted) legal text, which may or may not be that good, and raises copyright questions for the license itself.

At any rate, releasing software with a proprietary license has benefits, especially since you can completely monopolize the software, giving you potentially more opportunities. You can always open source it later, too.

The drawbacks to keeping source private are obvious, though. You can't get people to work for you for free! (See Part II, below)

2. General Public License (GPL)

When I want to open source my software, and also want to ensure that any derived versions of my software remain open source, I'll usually choose to use the GPL.

Contrary to what many people seem to mistakenly believe, by releasing your software GPL licensed, you do not give up any ownership or other rights. While you grant other people limited permission to your code, you still have rights including the right to license your code under other (potentially lucrative) licenses as well.

Licensing the software under other licenses does get more complicated once other peoples contributions find their way into your codebase, though. If you intend to license your GPL software under other licenses, you will want to control who can contribute to the codebase (See Part II, coming soon), and work out agreements with them.

3. BSD-like license

Using a BSD-like license on code makes it available for everybody to use, with very little restriction on what they can do with it or how (usually the main stipulation is how credit is attributed). It's really not too far from making the code public domain.

The upshot of a BSD-like license is that you (and everybody else) can do just about anything you want with the software. When other people contribute code, they're giving you that permission as well.

The downside of a BSD-like license is that someone else can take your software, and go make it (via big modification, or slight modification and promotion) into something huge-- and all you will be entitled to is a small credit. Now, the reality is that this could happen if the software was GPL licensed as well, but at least then you'd get access to the modified source code.


Ultimately whatever license you choose someone can always go and (rewriting if necessary) make something big out of your software, so (I keep telling myself to) worry more about the upsides and less about the down.

Proprietary licenses are really good for software where you feel you (or your close associates) will be working on the software a LOT, and want to maintain complete monopolistic ownership and control. This is very attractive to many people (myself included) for a lot of projects. It is completely respectable in my opinion, as long as you feel it is justified.

If however, you feel like a project would benefit greatly from having other people contribute, and the project has potential to be bigger than you've made it already, using the GPL can be a good choice.

I find BSD-like licenses to be good for licensing of libraries (or any other software that you generally want to be used as widely as possible), since people can link (and optionally compile) them with their projects, and not worry about the terms. Take zlib, which is used everywhere, or jnetlib, which isn't used as much but I'll mention for selfish reasons.

Coming soon: Part II (or: how to get other people to work on your open source project)


October 5, 2005
musica es muy divertida

Tuned the piano some more today, most everything had gone flat, no doubt due to the wood adapting to the new pressures of being in tune. Lather, rinse, repeat. Here's me and Biderman jamming with the piano and drums a couple of days ago. mmm. And here's me by myself today.

I'm starting to write a individual software developer's guide to software licensing and open sourcing, at least thoughts and tips from my experiences. I should be posting Part I (choosing a license) tomorrow, and Part II (how to make worthwhile open source software, i.e. how to get people to contribute etc) soon after. I know there may be other guides, but this will be my take (AND I AM RIGHT, DAMMIT! JK).


freeform jam with bren

1 Comment

[ present ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ... past ]
search : rss : recent comments : Copyright © 2022 Justin Frankel