shazware.com - ditty ...Deal with it!

intro
download
did
do
design
tut_Config
tut_Play
tut_View
tut_Metronome
tut_Record
tut_Edit
tut_Print
tut_SFont
ref_MidiPath
ref_MidiCfg
ref_Ditty
ref_Tinker <=
ref_DrumTrak
ref_Txt2Trak
ref_SF2Lst
ref_SF2SFont
ref_SFontBank
ref_PsetEdit
ref_EdiSn
Tinker - for viewing and editing a song's tracks' events.

   Main Display:

   

   We'll get to the toolbar and controls at the top in a bit, but mostly...

   Notes are displayed in piano roll style.
      - Durations are shown horizontally in time.
           See the bar lines and beat lines?  This song has a time sig of 2/4

      - Notes are shown vertically in black and white (like piano keys).
           See the black keys and white keys?
           C notes are a little whiter, and middle C is the whitest.

      - Note velocities shown in color.
           There's a thin rainbow-y color scale at the top of the note area.
           showing the colors that map to velocities 1..127
              So green..blue means -barely- touched and
              red..yellow means BANGED on, etc.

      - You can also color notes by track or by sound.  (via the Col: droplist)

      You can click on the Track droplist to pick which tracks to look at.
      The default is "all of em at once" - kinda gory sometimes.

   Drums are displayed just below notes.
      I give the drums short 4 character labels.  Kinda cryptic, but oh well.
      The ones above stand for TomFloorLow, CrashCymbal2, CrashCymbal,
         RideCymbal2, RideCymbal, SnareDrum2, SnareDrum.
         (No KickDrum in this song)

   Controllers are displayed below the drums.
      Click in the Ctrl: droplist to pick the ones you want to see.
      Some are shown as text,
      Some with a teeny square around each individual event with lines between

   Play around with the fields at the top of the window to scroll and zoom, etc.
________________________________________________________________________________

Controls:
   Toolbar:
      open      open a new song to tinker with
      save      save the current song
      print     print previews and prints the song
                (current clip/selected stuff - described below)
      help      gets ya here (docs)
      clipBgn   sets clip begin bar to last hovered "Pos" time
      clipEnd   "    "    end   "   "  "    "       "     "
      clipAll   sets clip begin and end times to full song duration
                   AND selects all tracks and controllers
      copy      copy clip to last hovered "Pos" time
      delete    deletes clip and scoots later events earlier in time
      clipPlay  plays current clip (between clip start/end time for selected
                                    tracks and controllers)
      clipSave  saves current clip (ditto)
      barRep    gives you a report of repeating bars (see below)
      listEdit  edit the list of tracks/drums/controls

   

   Pos: display
      shows current position in time.
      if only 1 track is selected,
         also shows note+onTime+offTime+duration+onVelocity+offVelo
                 or control+onTime+value

   Track: droplist
      lets you pick the tracks to display via checkboxes.
      If the track is a Drum track (sound=Drum\*), you'll see a drum grid.
      For melodic tracks, you'll see a piano roll display.
      When you've dropped down the Track: droplist,
         left click to toggle the check.
         right click to pick a single track.  Right click again to pick em all.

      If more than one track is displayed, they'll be overlayed.
      But event editing can only happen when a SINGLE track is picked.

   Snap: droplist
      Lets you enter notes at exact times.
      You may want to leave this off when editing events that don't fall on
         exact times (those recorded live, etc.)

   Bar: editbox
      lets you scroll left and right by bar in time.
      I usually use the ole mouse scroll wheel when in this field.

   Zoom: editbox  (under Bar: editbox)
      lets you compress more time onto the display.
      0 gives you full one "tick" resolution.  (a 256th note triplet)
      1 compresses 2 ticks into 1 pixel.
      2 compresses 4 ticks into 1 pixel...
      Etc...      (powers of 2 city)

   Oct: editbox
      lets you scroll up and down by octave.
      (Sets the lowest note in the piano roll display)

   Zoom: editbox  (under Oct: editbox)
      lets you compress more piano roll notes on screen.  (drum notes are fixed)
      0..7 for plenty tall/fewer notes .. squished height/more notes

   Ctrl: listbox
      lets you pick the controls to display in the line graph at the bottom.
      checks work the same as with Tracks: listbox.

   Zoom: editbox  (under the Ctrl: listbox)
      lets you compress more controllers onto the display.
      0=full resolution/less controllers .. 3=cheezy resolution/more controllers

   Col: listbox
      lets you color the notes according to velocity, sound or track

   Mov: listbox
      picks which track to move right mouse button lasso'd notes to.
      (or to delete em)

   VelOn: editbox
      lets you set the note on velocity for drawn in notes
      (described later)

   VelOff: editbox
      lets you set the note off velocity for drawn in notes
________________________________________________________________________________

Printing:

   Tinker can print out your midi file in piano roll format.
   Including fingering numbers - HANDY !!

   

   warning - the dang print preview can currently take up a LOT of memory and
             thrash the heck out of older machines.
             Sorry bout this, I'll optimize it when I get time :(

   Printing uses the 2 Zoom controls just like the screen does.
      Try with different magnification.
      I'd advise using zoom of 3 for note and time on your 1st print preview.
         Higher zoom amounts squish things more.
         Lower amounts expand the notes/time.

   You probably want to "color" by track when printing.
      Having left hand in one track and right in another and coloring by
         track helps you see left versus right hand.

   Once printed, you can staple the printouts together into a sort of "scroll".
      Maybe fanfold the right end if it's huge...

   (better resolution on your printer, of course:)
   

   "Columns" of piano roll bars are printed out
      with note position ALIGNED with finger position.
      Not bent 90 degrees like standard sheet music.

      Time goes DOWN the page.

      Only the notes of the "staff" that are actually USED are printed.

      As many "columns" as possible will be put on a page.

      At the top of each "column"
      - on the left side is the leftmost note your left pinky will need to play.
        This tells you which notes you're looking at.
        Remember, keys are colored according to piano key.
        Cs are a little whiter.  Middle C (if displayed) is whitest.

      - On the right side at top of column,
        is the 1st bar number of that "column".


   Imagine your 2 hands going straight down the left hand page column then
      starting again at the top of the next column to the right.

      (thin rainbow-y lines seperate the columns.)

   I use the printouts for piano practice.
   It works pretty good for me.  You got ideas?  I =WANNA= hear em...;)
________________________________________________________________________________

Editing:
   First off, you need to tell Tinker which
      tracks and controls and drums (oh my!) to let you edit.
   Click the "Edit Track, Drum, and Control lists" toolbar button
   (rightmost one).
   to see...
   
   Just click one of the 3 tables, insert a line and get going...

   
   Once you're set up you can draw in events:
   You must have ONLY ONE track selected in the Track: droplist to edit events.
   The Snap: droplist will help you draw in "neat" notes.

   for notes and drum notes:
      click to drag in new notes with note velocities of VelOn: and VelOff:
      click on the left  half of an existing note to update it's start time
      click on the right half "  "  "        "    "  "      "    end   "

      When the note area HAS FOCUS (the => rectangle is GREEN),
      Hover over a note and the scroll wheel adjusts the on or off velocity.
         (if over the left end or right end.)
      Hover over the middle of the note and the scroll wheel edits the note's
         fingering.  from 1..5 then transition fingering (ex: 15)

      right-click and drag a rectagle to move it to the track picked in the
      Mov: droplist  (or to delete if if that's picked in the Mov: droplist)

   For Controllers:
      click to add a control point in time/valueScale
      click an existing control point to modify it.  (careful of Snap:)

      right-click and drag a rectagle on an existing control
      (watch Pos: display) to Move/Delete it's control point (per Mov: listbox)

   Sorry, but I don't yet have group selection/modification of stuff :(
   Much construction to do in this area.
   Got any ideas about how to set up the user interface???  I'm all ears!!!
________________________________________________________________________________

Split notes :(

   Split notes are a notorious problem with midi files...
   Sometimes, you'll find a note down (noteon) with no note up (noteoff).
   Or visa versa.

   So one half the note is missing.

   Tinker does a little bit of "filtering" of the inbound midi file, but it's
   not perfect (yet).

   Also, when Ditty/Tinker receive there tracks split by program changes
   "automagically", well, when a program change happens during the middle of
   a note, the noteon MAY be in the first track, and the noteoff in the second
   track.
   Ditty will play this just fine.
   But in Tinker, you'll see "messy notes" where the note keeps going forever.
   Or starts WAY at the first bar.

   I'm working on logic to fix this.  But it ain't done yet :(

________________________________________________________________________________

Repeating bars report:

This is VERY handy report to analyze a track's repetition patterns.
It breaks the (currently selected) track into bars and looks for repeats.

VERY useful for drum, bass and rhythm tracks - to see how they repeat.
Unfortunately, it's not smart enough to compare velocities.
(And you might not want it to do that anyway.)

But any bars that match exactly will be pointed out in this little report!

Here's a quick descrip:
The lines starting with -- are my comments


song=D:\Midi\Compose\Txt\CantWait\CantWait.song
trak=Drum   snd=Drum\Drum

bars=80:  empty=0, norep=0, pats=6
-- 80 bars total, none of them empty, no unrepeating bars (they ALL repeat)
-- 6 distinct pattern bars that are repeated later

bar - bar we're on
pat - pattern id (unique set of notes in a bar)
info has...
   quiet[n] = bars with no notes for n bars
   norep[n] = bars that don't repeat for n bars
   rep'd    = this bar will be repeated later (1st time seen)
   nnnn     = this is a repeated pattern first stated in bar nnnn

 bar  pat info
   1    1 rep'd              -- first time pattern1 is used
   2    2 rep'd              -- "     "    "      2
   3    1    1               -- so you can see 12121213
   4    2    2               --             or AB AB AB AFill
   5    1    1
   6    2    2
   7    1    1
   8    3 rep'd
   9    1    1
  10    2    2
  11    1    1
  12    2    2
  13    1    1
  14    2    2
  15    1    1
  16    3    8
  17    1    1
  18    2    2
  19    1    1
  20    2    2
  21    1    1
  22    2    2
  23    1    1
  24    3    8
  25    4 rep'd              -- Oops!  Hit the chorus CD CD CD CFill2
  26    5 rep'd
  27    4   25
  28    5   26
  29    4   25
  30    5   26
  31    4   25
  32    6 rep'd
  33    1    1               -- back to verse drum pattern...  you get the idea
  34    2    2
{--CHOP--}
  77    4   25
  78    5   26
  79    4   25
  80    6   32
Updated: ; stephen.hazel over at gmail.com