Friday, 16 October 2009

Rant in 0x0e minor...

This has bugged me for a LONG time. First of all this... my first machine didn't have "characters" at all. It was a KIM1 and characters were just a pattern on the 8 style LED read out - you couldn't even draw some letters like Z or X - yeah, very strange. After this I had a ZX81 - this didn't use ASCII either, in fact not at all, but plugged into the telly and displayed 8 by 8 pixel chars (a whole 64 of them).

The CPU of this machine and others had some very odd assembler ops to cope with converting "raw" numbers to displayable ones. Many CPUs did, it required extra flags and extra instructions... they were only there cos' it was quicker than software. The x86 still has them.

Eventually I had a real machine that had ASCII(ish).

So, I posit the question. Why isn't number 0 (0x00) the character '0', 0x01 is '1' up to 0x09 for '9' THEN A-Z...

Think about this. When we convert from integers to text strings we no longer have to add 0x30 to the output characters. It's worse still if you're printing hex as there's a gap between '9' and 'A' so you have to detect this and add a little more.

How many machine cycles have been wasted doing this? It might not seem important on a quad core, nitrogen cooled behemoth under your desk but when you study the problem the problem is still there.

This has carried on, we've inherited this baggage in the UNICODE spec... Strange...

Maybe that '0x00' was useful as a string terminator... fact is, you SHOULD remember the length of the string. Blimey 0xff is just as easy to detect in HW as 0x00 is if you want a terminator.

Yours,

Ranty 'burnttoy' MacRant.

Wednesday, 29 July 2009

Awful sorry!

I've had my Vaio die on me so I've got a cheapo Mac Book (the white one). I _will_ fix the old Vaio shortly after getting paid! Having just moved jobs I'm doing that "blimey... how long between pay cheques?" thing... *argh!*. Anyway, it has to get fixed so I can recover http://www.archway-london.co.uk and the canvas projects amongst other things (like all my SSE DSP code!)

Anyways - I've spent a huge amount of time working with Qt - which, as always, doth truely rock thy world (native C++ components in Webkit? Very bumpers!).

It even supports the HTML "Canvas" element.. cripes (very useful test bench). There are bugs... but then, ain't there always?

Been working on some QObject <-> Table Model stuff and autogenerated XML output of any QObject. Priddy sweet. More later.

Tuesday, 25 November 2008

Not Dead!

The project is going great (honest!) in theory I will "soon" (I anticipate New Year as I've a nice tasty chunk of chrimbo holiday coming up). So, what do I expect to deliver... the following.

The basic canvas/bauhaus font (scalable with various stroke/fill effects).

* MCP:NOTE:The font will be extended with various diacritics. Umlaut, circumflex, acute, grave, cedilla an dot.

Matrix math class with optimiser - a "simple" piece of code that supports various transforms (please note that this is not a replacement for a JS library such as Slyvester. It does not have that scope instead supporting scaling, translation, shear, rotation, identity, multiply and can also "optimise" a matrix multiply by creating a chunk of JS code that has multiply by 0, 1 and -1 optimised (away in the case of 0 or reduced to add or sub if the input is 1 to -1). Also, the entire multiply is loop unrolled so do NOT use this for large matrices! A vulgaris multiply is available. Matrices can also be output to an HTML table (very handy).

* MCP:NOTE:This will probably need "inverse" eventually.

Canvas based control point and control point view with grid and user grid. A "fake" canvas that can record canvas activity (somewhat like ExplorerCanvas). A canvas JS program can be used to supply the editing surface (although some metadata may be unavailable - MCP to confirm). Colour gradient editing _will_ work! This will include "in place" (that is actually on the screen) editing of linear and radial colour gradient positions. A property window that offers a colour gradient "ruler" and colour selector. However, I may not be able to offer anything other than RGB for the colour selector (yet) and probably no bitmap patterns either (yet - eventually more advanced Canvas effects will be possible such as using a Canvas as a pattern). In place editing of all control points with rubber banding, snap to user grid and shared user grids (with ruler). A property window and code output window (interactive) will be displayed.

Note system - pulled from the old "COD2" project - little more than a tree of notes really with a few clever pruning/renaming methods. Should let me write code on my crackberry via Opera Mini (seems to be holding together).

Tuesday, 21 October 2008

Update to Canvas Bauhaus Font

Simple as...

http://canvas.burnttoys.net/bauhaus.html

L8rz,
Matthew.

Sunday, 19 October 2008

HTML Canvas Fonts.

Quite a bit has been written about this for sure...

Like this

http://canvaspaint.org/blog/2006/12/rendering-text/

and very usefully this

http://canvaspaint.org/blog/2006/12/rendering-text/

SOOOOooo..

I started hacking around and made this http://canvas.burnttoys.net/bauhaus.html

And (with just a small shake of the code) this http://canvas.burnttoys.net/bauhaus-outline.html

L8rz,
BT

Thursday, 16 October 2008

Nintendo DS Korg DS-10 Forums Now Available

I've set up forums for chatting, tips, tricks, toots and links right here at

DS-10 Forums

Enjoy!

Matthew.

Monday, 13 October 2008

Korg DS-10

Ah man! Got back from FOWA on Friday night to find the latest love of my life lying motionless and unhassled in the front hallway.... oh god...

Nevermind. I picked her up stripped her naked and shoved her in the back slot of my DS. Then she turned me on....

Lovely piece of kit for the 25 quid it cost.

It's roughly 2 MS-10's and an analogue drum machine. For the muso techy (like me) it has most of what you'd expect. Each monosynth has a single ADSR, selectable HPF, LPF, BPF filter, 2 oscillators and all the lovely modes you'd expect (such as oscillator syncing, VCO2 offset) each oscillator is tri, saw, square or noise.

The drum machines 4 sounds are roughly the same. Nice.

There are 3 sequencers. 1 each for the monosynths and another which controls the 4 drum sounds.

Each drum sound or monosynth also has a patch bay allowing you to connect various oscillators or other outputs to various inputs... Eventually you'll understand what I mean!

There's no cross patching that is it doesn't seem that synth 1 can affect synth 2 in anyway - shame but then I didn't expect a Radias.

Then there's loadsa effects - 1 effect per drum sound and 1 effect that can be applied to a selection of outputs (synth 1 and/or 2, drums or all of 'em).

All of the above is replicated 16 times in each "song" as a 16 step pattern.... yeah.... just push the buttons and listen!

TBH The whole thing fits really nicely and I would give it full props except for the following which I'm find annoying (but not enough to stop me playing!)

1 - I can't name a song which makes it difficult to remember what and where I'm doing things.

2 - Number of songs is limited - maybe annoyingly so

3 - When in drum edit mode playback ceases except for the drum sound - annoying as I can't hear my newly edited drum in my mix.

4 - In keyboard mode I should be able to trigger the sound by clicking the keyboard

5 - In synth edit and synth patch mode I'd like a button that just played middle C. Otherwise I must go and create a sequence when all I want to do is edit a sound

6 - I can't copy sequences from one pattern to another (or haven't figured it out yet). DEEPLY irritating... seriously. Especially when ones sequences have got quite complicated.

7 - AH... that's enough for now... I've got to go and play!