Posts Tagged ‘tech’

PortaMod – MOD/XM/S3M library for Processing

Monday, November 23rd, 2009
http://www.vimeo.com/8146425

FINALLY, I’ve got a release-worthy build of my MOD/XM/S3M replayer library for Processing! PortaMod is based on a very high-quality (but bare-bones) pure Java replayer engine by Martin Cameron called IBXM. IBXM had been around for a few years, but I wanted to implement it for Processing and make it available to that lovely little sketching language that’s been so helpful to me in my effort to learn OOP.

I’ve been working on this in a couple of different ’strands’, and if you’re following my sporadically-documented, mad-scientist crap to any degree, you’ll know that they include:

  • Chipdisco (a dual-deck module DJ application with MIDI control, headphone cue-mix, module-loading from URL and dual playlists) – click here for a work-in-progress
  • PortaMod Player (a single-deck player with scrolling tracker-style patterndata display and various other nice features – interface similar to Chipdisco)
  • PortaMod Single (a very very compact single-tune player intended for embedding on websites, particularly websites that archive modules)
  • PortaMod itself – the library which will make projects like these easy for others to make. Usage can be basic, e.g. doing a soundtrack for a sketch when you want to avoid bundling a massive mp3 file, or more complex, e.g. driving a series of visual effects triggered by note-events in the music.

Anyway, just click here to get all the details.
Please discuss it or ask any questions you might have using the comments on this thread – it’s probably the easiest way to get an answer to a question and it’s good to have discourse that’s publicly visible (especially when bugtesting!).

Updates (10th December 2009):

  • Fixed the transpose function so that it works only on each PortaMod instance’s channels, rather than on the static Channel (and therefore all instances globally) at the same time. The transpose function will also allow transposition for individual channels!
  • loopAdjust and loopReset do just that, for specific samples/instruments, following a feature-request from goto80.  As well as the instrument number, you pass the desired loop start-point and the desired loop length as percentage values: start-point is a percentage of the entire sample size, while length is a percentage of the size that remains once the start-point has been set. To cut a long story short, mapping these to X/Y mouse values in Processing allows for crazy amounts of glitchtastic fun :) Oh, and loopReset resets it…either to zero, if there was no loop to begin with, or to whatever it was originally set to in the MOD. Coming soon: bidirectional (ping-pong) looping.
  • Improved the still-experimental notedata override thingy. Now you can pass certain hex effects, as well as custom notes to cause specified instruments to play on specified channels at specified volumes. It’s based on a keydown/keyup idea, where you can set the state per-channel. There’s a lot of bug-ironing to be done with that, as I haven’t decided the best way of doing the various things it does. It does E9X (retrigger) commands pretty well, though!
  • sampleDump – does what it says. Dumps RAW 8-bit/mono/22050hz samples to your sketch’s data directory, ready to be loaded into a tracker of your choice. This is a bit buggy – mysterious extra bytes appear from nowhere, and I haven’t figured out how to handle 16-bit XM samples properly yet, plus loop-data and finetuning info is lost, but we live and we learn. I did this as a by-product of trying to learn how to write MODs to disk, which could be cool for saving messed up versions of extant mods – with samples replaced and new loop-points set, etc. – or maybe even for writing new ones, if I was ever able to write a tracker. But, er, that’s hardly on the horizon…it’d be vastly complicated and would waste *all* of my time, instead of just half of my time like PortaMod is ;) In the meantime, this could be fun either for wholesale ripping or maybe to save from a MOD that’s being played in one PortaMod instance and load it into the MOD being played in the other PortaMod instance.

Ghettosette – C64 Datasette/audioplayer conversion

Tuesday, March 24th, 2009

C64 Datasette – you remember it. The Datasette embodies Commodore cheapskatery from start to finish: it was a cheapo alternative to a proper disk drive, it’s got a crudely thrown-together connector with wires hanging out and it’s even got a skinflint mono drive head apparatus. All expenses spared, so that Jack could keep the costs down!

dsc00308

So it turns out they last pretty well. And in this age of 1541 emulators, MMC64 interfaces and the like, it’s sad to see a Datasette sitting unused and unloved. So I decided to lavish about four quid on mine and turn it into a block-rocking pimp star supreme with:

# an internal speaker
# internal 9v battery power
# an external in (for when I eventually get the recording head to work)
# a line/headphone output
# a switch/knob for power and drive motor speed control (though this doesn’t really work yet)
# an unfeasible amount of mystery line noise, which I’m going to pretend is intentional and adds ‘character’.

(more…)

Well I finally finished my self-indulgent little script for…

Thursday, October 23rd, 2008

Well I finally finished my self-indulgent little script for converting embed code from Demoscene.tv into the sort of embed code offered by Capped.tv. And now all the demos I want to post are on both sites anyway…but I remain optimistic it’ll come in handy one day. Besides, Demoscene.tv has far more vids on it.

This one was released at Function’08 and I really liked it. That is all.

Grafx2 redux, or whatever

Monday, October 13th, 2008

This is really cool – some guys found a bit of sourcecode for the old Grafx2 edit tool and they’ve been working it up into an SDL app with extra features, open source and, most importantly, proper documentation (for the first time ever).

For those who don’t know, Grafx2 was an MS DOS app designed to be a lot like the legendary Deluxe Paint series on the Amiga, with pixelartists specifically in mind. Anyway, PulkoMandy (one guy? Two? I’m not sure) has been describing his progress in this pouet thread and he reckons that when the config tool is finished, keyshortcuts will be customisable. Hooray!

Anyway, a full nine years after the unfinished Win32 beta first appeared, here is the 97% finished up-to-date release :D

Backpedal

Wednesday, October 8th, 2008

Hmm… It was a nice little excercise – trying to get recently posted vids thumbnailed up in a sidebar – but I think I’ll back down. Due to the way tumblr’s markup system works, once vids leave the currently-displayed page, they can’t be displayed in a sidebar anyway. The solution that would instantly solve all complexities would be to write up the whole thing as an external site, then use the Tumblr API to fill it with my tumblr’s stuff…but do I want to leave tumblr.com? Not really.

Still, I learnt how to use PHP to rewrite a block of shittily prepared embed code as a block of nicely prepared embed code, so that’s something. It’s just a shame to waste that nice mouseover shading thing…maybe I can use that in my vid posts?

soundtoys.net -

Wednesday, October 8th, 2008

soundtoys.net -

myspace RSS feeds to save time | typewriting

Tuesday, October 7th, 2008

myspace RSS feeds to save time | typewriting: This is well fucking handy. Respect to this bloke.

Manifesto

Sunday, October 5th, 2008

So I’m basically up and running now. In order to get me into the habit of regular posting, and away from my previously held conviction that the greatest blog-orientated contribution I could make to the world would be never to post at all, I’ll be throwing up embedded FLV screencaps of classic/new/crap-but-favourite demos with total abandon and glee. PC stuff; Amiga stuff; C64 stuff – even Atari stuff!

This won’t be:

  • A ‘one-post-a-day-for-a-year’ thing (unsustainable, due to the fluctuating quality/quantity of both the source material and my daily quota of inspiration)
  • An outreach project, where I try to disrobe the seductive demoscene before an audience of potential voyeurs (pointless, since a) art should be able to stand on its own two feet and b) screencaptures are always a tenth of the quality of the real thing, so impressiveness takes an immediate dive in most instances)
  • A detailed, autistic, programmer-style breakdown of inherently creative principles, OR a pretentious, superfluous, pseudo-analysis of fundamentally technical paradigms.

Although I reserve the right to piss all over those caveats whenever I please!

I’ll tag all this stuff ‘demoscene’, so that it’ll be available from the demoscene category in the sidebar. Let’s go!