Changelog - v0.3 - 28.08.2011 Massive overhaul, which will probably soon be followed by a much more well-organised info page. I'll also update the changelog when I get around to it, but the most significant changes are pretty obvious just from looking at the GUI. It's not quite there yet - I have a bit of rearranging to do so I can use the space a bit more efficiently and get rid of those big gaps - but it's much prettier and makes a little bit more sense. Yes, I know the exclamation mark buttons don't make any sense, but I'll find an alternative. Currently, they slave the opposing deck to the target deck's tempo. So: drop Deck A's tempo to 50bpm, hit Deck A's exclamation mark button; Deck B's tempo becomes 50bpm. Then you can use spacebar to sync them! KNOWN BUGS as of 28.08.2011: # Play/pause button acts weird the first time you click it - maybe a focus issue? # I replaced the old 'remove from playlist ' system with a new, much worse one. Will find a better solution. # 'Save m3u to clipboard' is broken for unzipped modules; it saves the local temp path instead. Hopefully an easy fix. Changelog - v0.26 - 14.12.2010 Dearie me...another little update. Joystick - I wasted a significant portion of my life implementing rather awesome joystick control, but then discovered not just that it was mildly troublesome, as expected, but that Java makes an absolute, total, unqualified mess of it. A Windows-only version exists for my private use, but I don't want to fork the codebase in two so I won't pursue it. Anyone wanting to be as awesome as me should investigate a Joystick-2-MIDI app for their system (which will have the advantage of working in the browser too, with a MIDI loopback driver installed). Crossfader - Today's efforts weren't totally in vain; we now have four possible crossfader curves to choose from. Fade is a smooth dipped crossfade (volumes are always diametrically opposed), Beatmatch is undipped (both volumes are at 100% when fader is in the middle), while the biased Cut fades are sharp, gated fades close to the A deck or B deck ends of the fader. This is what you need for hip-hop/scratch-artist style fast beat cutting. There's now proper support for a secondary MIDI input device, intended to be used for note-hijacking. Select a device (ideally a keyboard - something that sends MIDI notes), select an instrument (occasionally they're named properly, but most composers replace those samplenames with infotext) and play along! Existing notes aren't cut out, like they are in most trackers while jamming during playback, thanks to the 'ghost' jam-channels I create for every mod. Changelog - v0.25 - 12.12.2010 Final final final feature, this time, really. They didn't work earlier, but I fixed them just in time :) The ChipdiscoDJ browser-based applet can now take playlist locations and config options as URL arguments - see the guide on the left for details. Changelog - v0.25 - 11.12.2010 Final few features for this round of development. Theoretically, any near-future updates should just be bugfixes. On startup, ChipdiscoDJ loads a playlist that's stored on the server, so I can periodically change them around without having to rebuild. You can easily remove these tunes and load your own. Channel Bars - these semi-transparent bars correspond to volumedata for each channel. Aside from looking pretty, they're a workaround for the issue that - despite being much more stable - the new crossfading system stops showing a spectrum display for one deck when the fader is towards the other. Volume data is the next best thing; at the least, it reminds you that the mod's playing and at best, it gives you a clue as to what's going on in the song. Actually, it's sometimes more helpful in that regard than the spectrum (which is only a fake spectrum anyway;) Hate the channel bars? Double-click on them to make them disappear. Channel Boxes - sitting beneath the channel bars, these boxes act as channel-mute toggle buttons. Click 'em. Save Playlist To Clipboard - this saves a bunch of module paths (both URLs and local computer filepaths) to your clipboard so you can paste them into a text/m3u file. Swap button - this one's simple. Select a tune with a single-click and then clicking 'swap' will send it to the other deck. Other Stuff - fixes, tweaks, stuff I've forgotten. Changelog - v0.23 - 07.12.2010 FONTS - easier to read now. Ahem... GUI - massive overhaul; snipped about 1000 lines of code and replaced them with about 100 ;) Everything works a lot better now, too. BPM +/- 1 buttons for fine adjustment of tempo (suggested by Emar) NARROWER screen res (1024pixels, suggested by Emar). Should be fine for most modern netbooks and older laptops; can't really go smaller than this... TRANSPOSE controls are now on-screen (previously only MIDI) OSX/Linux - cue-mix should work on Mac and Linux now, honest! If you have a second output, of course. Selecting an invalid output will still cause an error. VARIOUS little tweaks and fixes... Changelog - v0.22 - 06.12.2010 Minor update. Chipdisco can now read from local or remote ZIP, GZ and LHA archives! Current limitations are as follows: Reading from LHAs will only work if the module/s are in the root of the archive - if they're in subdirectories, it won't work. That means no Exotica.org.uk music for now, but individual tunes from Aminet.net load fine. Reading from ZIP/GZ, similarly, doesn't work if tunes are in a subdirectory. Loading modules and archived modules from remote sites is robust, but ChipdiscoDJ can't see through redirects yet - this means that Modarchive.org and AMP links won't load directly. I'm working on it. Also, ChipdiscoDJ should now run ok on Mac OSX. Changelog - v0.21 - 05.12.2010 Major update, but all stuff I should have added yesterday. The browser version of ChipdiscoDJ is now a signed app; you need to give it permission (one-off), but once you do, all the great new features become possible :) Now you can use the File Menu to choose and queue a tune from your computer or load an m3u playlist from your computer. The playlist must contain full paths (not relative paths or simply filenames), but it can also contain full URLs to load tunes from websites. If you copy the URL of a tune from another browser window (e.g. from the address bar, or Copy Link Location in Firefox), clicking on Load From Clipboard in the File Menu will load and queue that song! Easier than typing, though in the future there'll be a means of handling bulk remote loading. It used to be that only files with the extensions '.mod', '.xm' and '.s3m' were allowed, but that prohibited Amiga-style filenames (e.g. 'mod.somesong'). That's no longer the case - ChipdiscoDJ now checks the files themselves (not just the names) and ignores invalid files. Changelog - v0.2 - 04.12.2010 Peter (Swimm) reminded me to do a changelog - thanks Peter! Now...believe it or not, I don't keep the world's best notes as I go along so this will be mostly prose. All previous versions of Chipdisco were hackyhackyhacky. The (relatively clean and solid) PortaMod library for Processing actually started life as Chipdisco, until I realised I needed to sort things out. Now it's come full circle and I've rewritten Chipdisco to use the PortaMod library's functions in a totally legit way - and because PortaMod is freely available (http://crayolon.net/portamod), anyone could make an app like ChipdiscoDJ without too much difficulty. I won't bother listing them all, but tonnes of original Chipdisco features would cause exceptions or crashes about 40% of the time. Now, I'd say exceptions arise maybe 5% of the time and crashes hardly ever. This is largely thanks to my having abandoned most of Javasound's features - volume controls, gain controls, panning, etc. That stuff causes problems all the time, especially with the abuse my software gives it. After all, I'm running two player instances, each with a separate audio mixing engine and output line, and crossfading between them. Oh, *and* quadrupling the mixing engine in order to get the cue mix feature. So now, all volume-related functions inject tracker commands into the playback engine just before playback (to put it in layman's terms) and though there's slightly less resolution (volume now goes from 0 to 63), it's hardly noticeable and it's MUCH more stable. Most of the fixes derive from that reworking of Chipdisco's guts, but a lot's been done on the GUI which speaks for itself. Now you can choose from a load of colour-schemes, use a file menu to load local files in the native application versions (though drag'n'drop is easier!), use dropdown menus to quickly and easily select MIDI devices or secondary soundcard outputs, click+drag on the progress bar to seek through the song, right-click on playlist entries to remove them, loadsa stuff. So that's my changelog for v0.2! I promise I'll keep a better log for future versions (I've already noticed a few bugs in this one :)