Offline
Newcastle, UK
Lazerbeat wrote:

I actually have things rather nicely set up by midi, the only thing which was slightly unusual was the pattern scan not working quite how I expected but that is no major problem. I posted a whole bunch of (probably impractical and annoying) suggestions on the release thread on Crayolon if you have time to look things over.

Great, I'll have a look. Pattern scan - yes, this has a choice of two behaviours: one immediately jumps to row 0 of the next pattern, while the other immediately jumps to the next row of the next patter, if you see what I mean. So if you're on row 12 of pattern 2 and you jump to pattern 3, it'll pick up on row 13 of pattern 3, thus keeping perfectly in time with the beat. I need to implement a third behaviour type, whereby jumping to a new pattern waits until the current pattern has finished playing...or did I already implement that? I can't remember sad

Offline
Newcastle, UK

Sorry, only just noticed your comments - bloody shitting Wordpress has decided to relinquish its duty to email me whenever somebody's posted. NOW I'll read 'em...

Edit:

So, I think what your comments tell me is that I need to go back and implement something I toyed with early on and then gave up on - proper configurable controls smile I'd need a practical but universal way to save them, so I'll have a think about that problem...

But yes, I'd originally been using arrowkeys for patternscan and tempo, with SHIFT as a modifier to control the second deck. Abandoning that sort of keycontrol for users with MIDI controllers who'd prefer to dedicate the keyboard to interface stuff makes sense, though I think I'll keep the default roughly in place so that the base-level, unmodified ChipdiscoDJ can always be controlled via a laptop keyboard by someone who's only got a laptop and a few MODs.

Extra channel mutes - yes! I think they exist, and may or may not have phantom MIDI CC values applied to them, but I was probably thinking to myself "well I'm not going to have 32...so I may as well just have 4". But you're right, 8 makes sense and doesn't hog too many keys/buttons.

Move the info display to somewhere more visible; gotcha.

Option to load MODs with the first pattern looping - possible, but I think it'd frequently be troublesome. I'd have to do a load of fiddly logic checks on incoming MODs, whereas I wonder if the block loop feature would help you here? After all, a loaded MOD is unlikely to be playing out to the room straight away, so you could bash the block loop, adjust the pattern if necessary, then depending on the song you'll probably have a 1 or 2 bar loop of its main beat.

Non-transparent dropdowns - I think it's possible; I'll have to check. I'm using somebody else's (notoriously fiddly) GUI library for that, so I'll play around.

Auto BPM - I swear I've had that...or something similar...if it still exists in the code, it might have got orphaned from the controls, or it might just not have been written up in the docs.

Auto restart - yup, that's very easy, and would be handy.

The retrigger - I think that's just a row scrub which I'm using to leap back to the previous row, every row, if you see what I mean. Although no...I did used to have a MIDI button assigned, as you saw in the vid, and it's just a really simple thing that - again - might just be orphaned from the controls. Perhaps I thought nobody would want it tongue

Autodivide, slices - not sure what you mean here. Are you talking about the aforementioned block loop? Yet again, I think there's a control to choose the division factor, though I'm not sure if it ever worked too well...another thing to look at.


Thanks for the feedback! And don't be sorry - the more I can polished I can get this, the better!

Last edited by syphus (Jul 19, 2011 7:02 pm)

Offline
Tokyo, Japan
syphus wrote:

Extra channel mutes / Auto BPM / Auto restart / The retrigger

If these could make it into a future release it would be AWESOME

syphus wrote:

Move the info display to somewhere more visible; gotcha.

Another thing which would be great would be a slight color offset behind the progress bar something like this might make it a little easier to see where you are in a song. Say the background behind blocks 1-8 and 17-24 being a slightly lighter grey or something.

syphus wrote:

Option to load MODs with the first pattern looping / Non-transparent dropdowns - I think it's possible; I'll have to check. I'm using somebody else's (notoriously fiddly) GUI library for that, so I'll play around.

These might be handy but are far from deal breakers.

syphus wrote:

Autodivide, slices - not sure what you mean here. Are you talking about the aforementioned block loop? Yet again, I think there's a control to choose the division factor, though I'm not sure if it ever worked too well...another thing to look at.

Re reading what I wrote I notice it makes almost no sense. Where I said slice I should have said "block"

I wasn't thinking of the block loop (which would be useful though), I was thinking along these lines. Each mod is divided in to 32 blocks, mapping each block to a keyboard location, for example :

Block 1 - 1
Block 2 - 2
...snip....
Block 8 - 8
-------------
Block 9 - Q
Block 10 - W
...snip....
Block 16 - I
-------------
Block 17 - A
...snip...
Block 24 - K
-------------
Block 25 - Z
...snip...
Block 32 -, (comma key under "k")
-------------

Would allow you to hit for example Left Shift + "T" Instantly play Block 11 on Deck A or Right Shift + "S" would Instantly play block 18 on Deck B.

Then you would be able to instantly jump to different parts of the mod with a great deal of precision. I found myself missing blocks I wanted to select when using the mouse.

Lastly unless I am doing something wrong, which is likely, these mappings

DECK A TRANSPOSE UP - cc47 (momentary)
DECK A TRANSPOSE DOWN - cc49 (momentary)
DECK B TRANSPOSE UP - cc48 (momentary)
DECK B TRANSPOSE DOWN - cc44 (momentary)

Seem to be fine tempo up and down, not pitch/transpose up and down, is transpose mapped to anything?

Thanks very much for taking the time to look at these ideas man!

Last edited by Lazerbeat (Jul 20, 2011 3:27 am)

Offline
Tokyo, Japan

A SUPER dirty screen cast, never ever done one before and the mic picked up loads of background noise. However you will be able to see CDDJ in action doing stuff.

Offline
Newcastle, UK

Thanks! But...it made me realise...that the downloadable exe version seems to be slightly out of date! Oh dear! The current Applet one has a dropdown menu between the pitch/vol bars which lets you choose between different crossfader types. Oh dear...I'd better sort this out. Take a look at the Applet version anyway, just in case there are any other differences that I've forgotten about wink

Offline
Tokyo, Japan

Heh, I just snagged it from this link http://crayolon.net/chipdisco/Chipdisco … _Linux.zip

Looks like the zip was there but the page links to the old one.

Offline
Newcastle, UK

Ta, fixed those links.

Right, I'm just getting my head around your request. Yes - the reason you're having difficulty when clicking the progress bar is that, in order to get a higher resolution, you're choosing the nearest pattern to 'number-of-patterns' divided by 'progress-bar-width-in-pixels'. The visual representation merely follows the current song position on the basis of 'number-of-patterns' divided by '32' smile This means that the progress bar always looks nice whether a song contains 4 or 40 patterns, and mouseclicking still does a reasonable job of getting you where you want to be in the song in terms of percentage.

But I see your problem! I'm just not certain I can solve it in a way that accommodates tiny as well as huge modules. But maybe that's not a problem and I'm just being thick about it...hmm. Anyway, your actual request is about key-mapped block triggering.

So that sort of thing is probably quite easy, but I'm going to sit down now and think about how best to manage keyboard controls in Chipdisco; once I've got a good system, everything's straightforward. I'd like to have defaults in place, similar to what exists now, but maybe I could have a file selector to read a textfile... To the drawing board!

[Update]

Following good advice from you and Starpause, I've nuked the second playlist - now there's a single playlist in the middle and you can either drag'n'drop entries onto either deck where they play automatically or use the arrowkeys - up/down to highlight the one you want, left/right to load it into a deck and play. Now that I'm reacquainted with my code it should be easier to implement other things smile

Last edited by syphus (Jul 23, 2011 1:38 am)

Offline
Tokyo, Japan

Awesome, thanks a lot. I do have a quick question would I be right in thinking loop relates to blocks rather than patterns where as spacebar sync and pattern scan both relate to pattern?

Offline
Newcastle, UK

Currently...er...yes, loop pertains to sub-pattern blocks, while the spacebar sync (when it works) only ever bumps both decks to row 0 of their current pattern. By the way, the 'hold' function that exists in the version you're using ('H' for Deck A) should help to nudge the deck back if spacebar-sync didn't quite do the job. Literally speaking, what it does is instruct the player that Deck A's next row should be the same as Deck A's current row (this his how tracker replayers think tongue ) and so it's just slowed a little - much like if you hammer the Up arrow during playback in Protracker, Fasttracker, Renoise etc.

(Also, I updated my last post while you were posting yours)

Offline
Tokyo, Japan
syphus wrote:

Following good advice from you and Starpause, I've nuked the second playlist - now there's a single playlist in the middle and you can either drag'n'drop entries onto either deck where they play automatically or use the arrowkeys - up/down to highlight the one you want, left/right to load it into a deck and play. Now that I'm reacquainted with my code it should be easier to implement other things smile

Great, that should free up some UI space so you could put the play / cue / loop buttons on either side of the playlist or something.

Edit - Adding a keybinding/midimapping for Loop left/right deck would be super handy.

Last edited by Lazerbeat (Jul 23, 2011 5:09 am)

Offline
Newcastle, UK

Okay, still making progress. However...I'm still having difficulty wrapping my head around this. Remembering that those 32 'blocks' are really just a consequence of the width I decided each 'spectrum' bar should be (it's not a true spectrum visualisation, but let's pretend for now), suppose I load a module that's 45 patterns long. 45/32 = ~1.4, so each bar is about a pattern and a half long. The problem is, for me to seek to a point in the module's pattern sequence, I need to give it a round number...so if you want to seek visually to 'block 8' by pressing a mapped key, the elapsed proportion of the module that you want is actually pattern 11.25, or a quarter of the way down pattern 11. So if I'm rounding that, I round down to 11...whereupon you're not where you wanted to be in the song. That inaccuracy might be tolerable, but different module lengths will give wildly varying results.

The inaccuracy you suffer now when you click on the progress bar is, I think, just a visual one: auditorily, you're hearing the pattern you chose, but the visuals do the maths from scratch - how many patterns are there, how many have elapsed, how many pixels wide is the spectrum, how many divisions (bars) do we have - and then fill the bars with colour to the nearest one. Make any sense? It works, but doesn't look like it works wink

So can you give me more info on how you'd use the feature? That might help me to understand better. Does existing DJ software do this; are there any references I can look to? I haven't used Traktor for some years, but I don't remember whether it had 'jump-to' points...or bookmarks, I suppose we could call them? Am I completely missing the point (very possible!)?

Or maybe I'm just being pedantic and what you want is a rounded-off percentage-based system where '16' gets you as close to the middle of the song as possible?

I'm also thinking about other ways to give you pattern-accurate seeking. Modplug, which I haven't used for years, has a big horizontal line of numbered boxes corresponding to patterns which you can drag/drop to reorder the sequence, or just click to jump to that point. Would something like that help, so you could instantly jump without having to zip through intervening patterns, and with greater accuracy?

Change of subject, in your last post you mentioned loop left/right deck: what do you mean? The block-loop function that's controlled by the 'L' button on the GUI? If you meant looping the entire song, that's sort of a moot point now - I've removed next/prev song controls for each deck, because a) this is a performance tool rather than a player, and there are other programs out there that'll run through playlists of modules and b) I want to reduce the margin for DJ error by making it less easy to inadvertently stop a tune or load a new one while it's playing out to the dancefloor.

If you did mean the blook-loop, I need to have a good look at that because it seems like it's fucked. It's never worked exactly like it's supposed to and I think I've got some logic tangles to sort out.

Please, feel free to bombard me with info - hammer away at me until you're convinced I understand smile I want to be sure I do before I devote a large number of keyboard keys to something that I might be getting fundamentally wrong...or something that there might be an easier alternative to.

Last edited by syphus (Jul 24, 2011 5:53 am)

Offline
Tokyo, Japan
syphus wrote:

So can you give me more info on how you'd use the feature? That might help me to understand better. Does existing DJ software do this; are there any references I can look to? I haven't used Traktor for some years, but I don't remember whether it had 'jump-to' points...or bookmarks, I suppose we could call them? Am I completely missing the point (very possible!)?

Or maybe I'm just being pedantic and what you want is a rounded-off percentage-based system where '16' gets you as close to the middle of the song as possible?

Heh, sorry, I guess I should have explained this from the start, would have made a bit more sense. I like CDDJ a lot and have two ideas of how to use it. One obviously being DJing other peoples mods. The other being I have never really been able to strike a balance between the three different things I like about chip/scene music, portability, authenticity and performance, none of the following is in ANY way critical of how anyone does music, nor do I think it is correct, just my take on things for me poersonally. For example, gameboy is "authentic" and portable but not much to it live. My Midibox SID is "authentic", portable but not really something I would want to use live. A combination of Milky / CDDJ would give me a really nice balance of all three, I can sample anything I want from my synths, I can compose in Milky, the live set up is a netbook and a Nanokontrol and CDDJ is super fun to use live.

I would actually be writing in Milky tracker with a view to specifically performing in CDDJ, for example, always putting kicks on channel 1, snares and hats on channel 2, bass on channel 3 so I knew what to mute/fade. Second I would write songs as more or less collections of loops and pad the song if I need to so it would be be 32 patterns long which would mean that the progress bar WOULD be exactly 32 blocks.

The aim would be to make a really heavily on the fly mixable live set and I would always know which blocks were which part of the song and have an almost Ableton like (I actually don't like ableton at all other than the live triggering of loops in performance mode) control over the mod.

I think a combination of 2 of the features I suggested, "play block 1-32" and "restart current block" would still give you pretty fine control over your set. Assuming CDDJ users spend a few minutes listening to their mods and working out where parts of the track they are interested in using in the set are, say they wanted Pattern 11 of a 45 pattern song they could hit for example. "Shift Q -> Restart current block" and be at the start of pattern / block 11 in 3 key strokes.

syphus wrote:

I'm also thinking about other ways to give you pattern-accurate seeking. Modplug, which I haven't used for years, has a big horizontal line of numbered boxes corresponding to patterns which you can drag/drop to reorder the sequence, or just click to jump to that point. Would something like that help, so you could instantly jump without having to zip through intervening patterns, and with greater accuracy?

Something like that would be awesome, if it isn't too impractical. My main thing is I like the idea of having fast and accurate access to different parts of the song. I fell that would make CDDJ a really powerful too for live performance. You could play snatches of patterns or whole patterns in different sequences, repeat the same pattern with different instruments muted etc etc. It might also solve the problem of the progress bar blocks and the number of patterns not matching up.

syphus wrote:

Change of subject, in your last post you mentioned loop left/right deck: what do you mean? The block-loop function that's controlled by the 'L' button on the GUI?

Yes that was what I meant.

Thanks for keeping the conversation open on this!

Offline
Newcastle, UK

No probs. By the way, have you tried ChipdiscoDJ on a netbook? I have to admit that it's just short of being usable on my Eee 901 with 1.6Ghz Atom...but maybe netbooks have moved along since. The only time I've used ChipdiscoDJ live, I used my old-ish Core2Duo VAIO just to be on the safe side. Good luck with that, anyway wink

Per-deck Loop keys - they're mapped to 'k' and 'l', though I might not have documented that wink

Now that I think about it, the Modplug-style scrolling horizontal button list would be seriously troublesome to do, just because of limitations of ChipdiscoDJ's structure (and my time, apart from anything - it would probably double the project's already weighty 5000 lines!). I'll keep brainstorming it though.

Yes, your description makes a lot of sense to me, and yes - I did anticipate that conscientious users would want to tweak or tailor-make their live performance modules for use in ChipdiscoDJ. My dilemma is that I don't want to fork CDDJ down two paths, even if the difference is just one of keyboard layout, and your requirements pretty much hog the whole keyboard big_smile So maybe a toggle button switches between the current (albeit tidied in v0.3) layout and the trigger-buttons-aplenty layout that you've suggested... Of course, I've got about 100 MIDI CCs to play with, so that's no problem, but the nanoKontrol doesn't have enough for what you want. So maybe you use the nanoKontrol for the stuff that's duplicated on the keyboard, press that hypothetical toggle button to switch the keyboard to slice trigger mode (or whatever we'll call it), and away you go.

Anyway, here's a glance at what's what so far:
http://www.youtube.com/watch?v=nBL7R4HP … d_policy=1

Last edited by syphus (Jul 24, 2011 8:51 am)

Offline
Newcastle, UK

Oh, and if you're a glutton for tedium, here's my working doc that I try to maintain as I go, or use for rough notes. No real need for it to be private, and maybe you'll spot something that sounds daft or could be improved upon.

https://docs.google.com/document/pub?id … 6VDlQ6YRM0

Offline
Tokyo, Japan

Huge progress here, this is really shaping up to be something rather awesome.

syphus wrote:

My dilemma is that I don't want to fork CDDJ down two paths, even if the difference is just one of keyboard layout, and your requirements pretty much hog the whole keyboard big_smile So maybe a toggle button switches between the current (albeit tidied in v0.3) layout and the trigger-buttons-aplenty layout that you've suggested... Of course, I've got about 100 MIDI CCs to play with, so that's no problem, but the nanoKontrol doesn't have enough for what you want. So maybe you use the nanoKontrol for the stuff that's duplicated on the keyboard, press that hypothetical toggle button to switch the keyboard to slice trigger mode (or whatever we'll call it), and away you go.

Forgive me if I am missing something here but I pretty much always envisioned CDDJ as something which was controlled by Keyboard/Midi controller kind of in harmony, I mean, you are always going to have a keyboard available if you are using the software. I totally appreciate my idea is pretty button use heave but unless I am mistaken, you aren't using any "shift" / "alt" / "ctrl" commands for any of your keyboard shortcuts.

Would it not be possible to use "Left/right Shift (or alt or ctrl)" + one of the 32 keyboard buttons to trigger slices in the respective deck without interfering with the existing keyboard set up?

Offline
Newcastle, UK

Ah, CDDJ has been fairly shift/ctrl heavy up until now, but that creates problems with Macbooks (everything causes problems with goddamn Macbooks). I even had a 'shift' button on the nanoKontrol so I could get more functionality on a single scene, but I'm trying to avoid that. If you think you'd be happy using LShift + <key> for the kind if triggering you're after, cool - I'll proceed.

LShift should be okay... Ctrl can be weird on Macbooks, Windows keys and AltGr can be weird on some Linux distros (especially XFCE and occasionally even Gnome) and Java - for all it's supposed to be wonderfully cross-platform - can be a pain in the arse about interpreting things properly. I'll experiment and see what works - got a few Ubuntu VMs knocking about. But ultimately you'll be my main Linux tester, I'm afraid wink