Sunday, 7 October 2012

My New Case Has Arrived

2 x 84HP. The lid detaches. Beautiful.

Tuesday, 28 August 2012

Rack Planner Update - New Video

I've uploaded a new video of version 1.20 in action...
Best watched actually on the YouTube site with large (not full) screen option and 480p.

Saturday, 25 August 2012

Rack Planner Big Update 1.20

New Features: Show/Hide Screws, Show/Hide Rails, Show/Hide Screw Holes
Several new options have beeen added to the Options panel:
These new options - used in conjunction with the existing border thickness selector, hide feet and hide shadows - allow for a more minimalist appearance, should that be your thing...
New Feature: Snap To Sockets
Now it's going to start to get very interesting... Imagine if the rack planner knew where the sockets were on each module and automatically snapped your patch cables accurately to the correct place as you drew each of them onto your plan. Well, now it does. OK, you're going to need to teach it where the sockets are once for each module, but once done it's done. I plan on building a tool into the program that allows you to load a module in and interactively map it's sockets (and other controls). In the case of the uLFO below that would be just 13 clicks for the sockets.
I entered some coordinates for the uLFO's sockets to test this new idea and it works really well. It currently highlights any known 'hotspots' in green until you patch into one then it turns red. This red/green thing is purely a debug feature so I can see how well it's working, but I think you'll see how much easier this makes patching. Just click near a hotspot and the cable end snaps to it - same when you release. If no hotspots are defined, or you click/drop away from any hotspots then the cable just stays where you drop it.
New Feature: Knob Overlays
For patch notation a way of representing knob positions is required. Introducing 'Knob Overlays'. As with yesterday's 'socket hotspots' the knob positions need to be defined once per module. After that just drag a 'Knob Overlay' out from the still-to-be-coded 'Overlays Palette'. It would snap into place over the desired knob hotspot. Once placed a click and drag of the mouse will set the pointer position. The hotspot will also 'know' what the knob does so the descriptive 'Patch Sheet' will be able to say something like "Set uLFO FM2 knob to '8'". Switches, buttons and sliders (and maybe even LEDs with a 'Nighttime View' to see how blinky any given layout will be!) will be other overlays available from the palette. Overlays will be able to be turned on or off as per n0rd's suggestion to have the ability to hide patch cables.
Some kind words on tonight's progress from Muff's forum...
"I really want to use this thing, but every time you post it gets more awesome so I'll just shut up and keep being patient."
"Damn RichyHo. You're turning something cool, into something epically legendary. Hells yes!"


Thursday, 23 August 2012

Rack Planner Update

You can now select one module then press 'M' on the keyboard to highlight all modules from the selected module's manufacturer. All of the Doepfer modules in the rack below have been selected in this way:

You can now select one module then press 'W' on the keyboard to highlight all modules of the same width as the selected module. All of the 4 HP modules in the rack below have been selected in this way:

Wednesday, 22 August 2012

Rack Planner Update

I couldn't sleep so I did some work on the patch cables. The new black outlining and centre dots make them much more visible and defined against the (usually) grey module panels. I've also added a nice little function to snap any new patch cables created to the positions of existing ones if they are near enough. This makes for a much neater picture. There's still work to do on the cables, but they are headed in the right direction now...

Tuesday, 21 August 2012

Rack Planner Update 1.19

Thanks to a great idea from my Dad you now get a visual preview of each module if you hover your mouse over the module's 'module tree' button for more than half a second. The preview is scaled nicely to fill the free area of screen to the right of the module tree.

I've also added keyboard shortcuts to the main options (feet [F], shadows [S], rounded corners [R], rack info [I], lock [L])

And I've added single module cut, copy and paste using the [X], [C] and [V] keys.

Rack Planner Update

Yesterday I started work on the options panel:

The options are currently global (ie they affect every rack), but I intend to make each rack's settings individually customizable. The settings below turn off the rack borders, shadows and feet while also allowing overlap and locking the layout:

This allows for really close alignment of the racks as shown below:

Tuesday, 14 August 2012

Rack Planner Update 1.18

Tonight's work included several bug-fixes, some subtle cosmetic changes, changes to the clear/delete rack routines and right click drag to select racks for horizontal alignment. In the picture below, right-click-dragging from the top-left corner of the pink rectamgle to the bottom right and releasing left-aligned the racks. Come at it from the other side and they right-align. The module chooser now defaults to whatever format the currently selected rack is rather than having to explicitly choose 'EURO' for instance each time.

Wednesday, 8 August 2012

Rack Planner Update - Wiard

Tonight I added the following:

1) Definitions for what a module width is called per format (HP, U, MU etc.). These are used in the rack data (currently shown to the right of each rack) and in the 'Add Rack' dialog box.

2) Definitions for a default rack width per format (84HP for Euro, 6U for Wiard, 8MU for Dotcom etc.)

3) Beginnings of rack overlap detection and auto-relocation to free space.

4) A couple of little nice touches that (probably) nobody except me will ever notice, but would bug me if I didn't add them!

5) 6U/Wiard format is now catered for:


Wednesday, 25 July 2012

Rack Planner Update 1.16

Tonight I added a power overview mode that shows the current drawn by each module as well as total current used for the whole rack. (if the current draw is unknown or not specified in the module's XML file the module will be highlighted in red so you know your overall power figure is missing this module - see the Mutamix in the image below). Also displayed are space usage stats and the space used by each module.

Rack Planner Update

The 'add rack' code now allows you to select the format, number of 'module units' wide and number of rows for the rack you want to add to the plan. It then creates a new rack to those specs. The screenshot shows 4 racks created very quickly in succession. Some more error checking code is required around this, but this is a key chunk of work done (there's no use having a rack planner that you can't add a rack to!). 'Show Rack Feet' will be an option :-)

Monday, 23 July 2012

Rack Planner Update

Some further work on the Add Rack routines, adding hp per row and number of rows controls:

Sunday, 22 July 2012

Rack Planner Update 1.15

Just starting work on the 'Add Rack' routines. You'll be able to choose rack format, width, number of rows and various other properties:

Wednesday, 18 July 2012

Rack Planner Update - OSX

It took quite a bit of work rejigging the way paths to files were held, but it now works on my iMac. I have to admit to being rather pleased with this.

Rack Planner Update

Some work has been done on the row of menu buttons at the top of the main view:

  • Delete Module - This replaces pressing 'D' on the keyboard to delete selected modules. It requires at least one module to be selected before it is enabled.
  • Add Rack - This currently adds a 2 row, 84HP Euro rack to the plan. It will eventually display an interface to choose a rack format and size. It is always enabled.
  • Clear Rack - This deletes all modules and their attached patch cables from the currently selected rack. It requires the current rack to have at least one module in it for it to be enabled.
  • Delete Rack - This deletes the currently selected rack. It requires the rack to be empty before being enabled.

Saturday, 14 July 2012

Rack Planner Update

You can now keep selecting and adding modules from the 'Module Tree' until you click away from it when you are taken back to the main plan screen. This makes building up a rack so much quicker. In the picture below I had just clicked repeatedly on the A-160 list entry:


I've also added a 'Clear Rack' button which clears the currently selected rack.

Thursday, 12 July 2012

Rack Planner Update

Further enhancements to the 'Add Module' code. You can now scroll the manufacturer and module lists vertically (by dragging them up/down with the mouse) if they don't fit on the screen (great for the long list of Doepfer modules). It also remembers where you last added a module from and takes you straight back there the next time you click 'Add'. Format and manufacturer remain highlighted while you choose the module.

Modules no longer stack up in the top left corner of the rack as they are added. They start at the top left, moving across each row in turn looking for a space big enough for the chosen module. If such a a space is found then the module is put there. If not it reverts to top left as before. This works really nicely and saves alot of dragging around when first building up a plan. It'll be an option in the final version (for those of you that want a stack of modules in the top left corner).

Rack Planner Update

I haven't had much time for coding this evening, but I did make some progress with the module selection routines. You can now select Add - Format - Manufacturer - Module as shown below:

Tuesday, 10 July 2012

Rack Planner Update 1.14

Today I started development of the module chooser interface. This is based on a hierarchical arrangement of module files line FORMAT - MANUFACTURER - MODULE. The Doepfer list is working nicely and is shown below:

I decided not to use the standard windows file chooser as a) it is slow and b) in Processing it remembers the last folder and you can't specify the new folder in code so you have to click around to get to where you want to be every time. More work for me, but at least it'll be quick and unique. 

Monday, 9 July 2012

Rack Planner Update 1.13 + Video #2

Today I fixed a few bugs and added button functionality for the Add, Load and Save menus and toggle buttons for the Debug and FreeDrop options. These look alot neater:

I also made a second YouTube video:

Sunday, 8 July 2012

Rack Planner Update - Video #1

Here's a video overview of the features implemented to date.

Rack Planner Update

I've added hole size, hole position, number of holes per unit width (Buchla has 2, the others so far have one) and mounting rail thickness definitions to the rack class. The results can be seen in the image below which shows one of each format I've implemented so far - Euro, Frac, Dotcom and Buchla.

Saturday, 7 July 2012

Rack Planner Update 1.12

Today was a big day in my rack planner's development. A very big day. Today's the day we went multi-format. The planner can now handle Buchla and modules as well as Eurorack - in the same plan. Other formats should present few challenges - just a matter of inputting the dimensions of a standard width panel for each. I'm really pleased with how well this has worked out.

Please ignore the nonsense patch - it's purely a test to make sure that all the previously coded functionality works with the new rack sizes.

Also added today were proper load and save routines (before it just loaded and saved a single hard-coded file as a proof of concept) and autoloading of a default rack (rack.xml  as per Doug's planner) if found.

Thursday, 5 July 2012

Rack Planner Update 1.11

Code has been completed to link the patch cables to the modules they are drawn on. This means that when a module is moved either within a rack, or across to another rack, the cables stay attached. There's no point showing a picture to illustrate this as it needs a video to do it justice (although in the pic below you can see that the Choices joystick is being moved and its connection to the left Plague Bearer is being maintained). I'll make a short vid at the weekend to show all progress to date.

I've added to the dropzone code to show not only how wide a module is, but also how big the gap you are failing to drop it into is.

Tuesday, 3 July 2012

Rack Planner Update

It is now possibleto draw patch leads onto the racks by holding down CTRL and dragging the mouse between the two points you want the lead to join. The patch leads' ends are currently linked to a rack, meaning if you move the rack, the leads move with it. I'll be doing further coding to make the leads module- rather than rack-based so when you move a module its leads stay with it, wherever you drag it to.

Today I also added some code to only spend time drawing modules that are actually visible (ie. not those outside the bounds of the window - remember, we can zoom in as shown above). This should speed things up as racks become more complex.

Sunday, 1 July 2012

Rack Planner Update 1.10

Z-ordering implemented to decide which module to pick up if an overlap occurs. Graphics tidy-ups with improvements to the HP Rulers (they now show the selected module's hp width as well as the space either side - see pic below).

Right-click to select modules - they turn blue - pressing 'D' deletes them. This will also eventually be used to drag a group of modules around rather than single ones, and allow any selected modules to be moved by cursor keys as well as the mouse.

Anybody notice the screws? When a module's in the rack it gets bolted in. When it's being dragged around the screws don't show. This makes me smile!

There are currently no bugs so I'm ready to move onto new features tomorrow. I'm leaving the 'housekeeping'-type tasks for now (add rack, delete rack, cut, copy, paste etc.) in order to rejig the XML files and prepare for mixed-format plans.

Thursday, 28 June 2012

Rack Planner Update 1.09

This is starting to come togethr really nicely now. The hardest part of today's coding was freeing each module from the confines of the rack it was originally dropped into (you select a rack then click 'Add Module' and the module drops into the top of the selected rack). But hey, it's done, and it works, and I'm pleased! You can now drag a module from one rack to another. Once dropped into place it sticks with that rack while you move it around in relation to other racks. The patch cables stay hooked-up as you drag things around too.

As mentioned earlier, you can zoom out...

And right in...

Rack Planner Update

Last night I got multiple rack save/load working along with zoom in/out (mouse wheel) and pan (click and drag a non-rack-occupied area to scroll the whole plan up/down/left/right). I also had an initial tinker with representing patch cables, getting them to move nicely as the racks are rearranged.

Tuesday, 26 June 2012

Rack Planner Update 1.08

One line of description, many many more lines of code!

"Multiple independent, movable racks"

Euro-only so far, but working a treat. Clicking and dragging either a rack's border or an empty part of the rack will allow you to move it around. Modules are currently confined to the racks they sit in (no dragging between racks), but this is on the to-do list.

The picture below represents a Doepfer 9U LC9 case, a Doepfer 6U LC6, a Doepfer 32hp 'Beauty Case' and a 3U 168hp 'skiff'.

Monday, 25 June 2012

Rack Planner Update 1.07

Today was hard work. A near-total rewrite. A more object-oriented approach was needed so better classes were designed to describe racks, modules and their relationships to eachother. The big win is that as well as being able to have multiple racks in a single plan, multiple format racks will be able to co-exist in the same plan too! You'll be able to have, for example, a Buchla rack next to your Euro setup. A Serge with your dotcom etc. etc. I feel that this work really sets the project up nicely for the future plans I have for it.

The screen below shows just a single rack sitting in the new interface. Tomorrow (or soon after) I hope to show two racks sharing the space.

Sunday, 24 June 2012

Rack Planner Update

Today's main addition was 'Smart Drop'. Dropping a module on a position occupied totally or partly by another module now not only gives the red warning rectangle, but also moves the module once it's actually dropped. If the nerest space big enough to accommodate the module without an overlap is to the right of the existing module then the dropped module is moved there. If there is a nearer space for it to the left then it is moved there. If there is no space big enough on the row in question then the module reverts to the original position it was dragged from.

In the screenshot below you can see a Z3000 being dropped to the right of, but overlapping, a PEG:

As there is available space to the right of the PEG and the module is neearer to that side then the result is shown below, with the Z3000 being automatically shifted 5 HP to the right:

This new function (particularly in combination with 'HP Rulers') allows for new rack layouts to be put together very quickly as modules can be roughly dropped where they need to be rather than having to be carefully aligned.

Tomorrow, if I get chance, I would like to work on multiple module selection, deselection and movement.

Saturday, 23 June 2012

Rack Planner Update

Today I created a splash screen (above) for the app and the mechanism to display it. The picture will change when I have time to render something more appropriate.

Also new today is 'FreeDrop' mode where modules can be placed anywhere on the virtual rack - even on top of eachother. This makes rearranging a full rack possible (and is the default mode on the other two commonly used rack planners). In this mode the 'DropZone' box is white rather than red or green (see image below), indicating that the module can be dropped wherever you want. Anywhere where two or more modules overlap is highlighted in orange so that these mistakes can be easily seen and fixed.

Oh and I fixed a bug that reported the available HP incorrectly (see yesterday's second screenshot).

Thursday, 21 June 2012

Rack Planner Update

Once again, not a massive amount to see that's new on the interface, but the code has grown from 300 to 600 lines today. It's alot more robust now. New functions for today:
  • Save - the output is called rack.xml. It conforms to the expected structure so loads successfully into dougcl's planner
  • Load - re-reads in the rack.xml file. I haven't tried loading in a dougcl-planner-created file yet, but it should work.
  • Delete module - richt-clicking on a module now deletes it
  • 3 new code functions to better manange the rack array.
  • Debug mode on/off
 Here's a picture of it loaded with what's in one of my LC9 cases: