PianoCheater stuff I'm workin' on...
web - sheet flipping - screen shots and better descrip of sections stuff
redo videos :p
PianoCheater
THINK - make wait4meEZ catch timer up to ya when ya play too fast...?
ok to skip over 2-3 notes too?
one bar count in to get yer fingers to the keys - only when learn=show2me
DlgSht:
SHEETZ:
Fb in love story should be gb (f# actually!)
check minor scale sharpened M6,M7 too
ksig gettin chopped cuz offset is too high (etc)
STEMZ BABYYY !!
split note.bmp into heads(3), flags(3*2) monochrome; draw stems
notehead white/black+solfege? (stem,flag stay track color)
need intermediate representation to do...
group notes at same start time
combine stems,flags:
make RH stems below 4c go up, LH above go down
beam-ing
tie-ing (across bars)
calc rests
split (held long) notes of a chord (for ex)
offset vertically stacked note heads
calc accidentals to bar end
get spritemap done...
rests - draw w,h blt q,e, calc s,t from e
beams, ties? X,bb? teeny tsig,bar# font? triplet(4,5...)
etc: accent,slur,phrase,portato,legato,fermata?(holder),<,>etc
8va/b, p/f/mp/etc
scale bar w to narrowest that'll fit all the junk (#/b,.,flags,etc)
stem dir rulez:
<=a stem up >=b stem down (middle line in general)
Notes sharing stem (block chords)
stem dir=dir for note furthest away from middle line of the staff
Notes sharing beam
stem dir=dir of note farthest from the center of staff,
to keep beam near staff.
Different rhythms being played at the same time by the same player
write one rhythm with stems up, other stems down
Two parts for different performers written on same staff
If parts have same rhythm, written as block chords.
If not, stems for "high" or "first" part point up and
stems for other will point down.
especially important when two parts cross
otherwise no way for performers to know that "low"
part should be reading the high note at that spot.
horizontal splitting transition similar to page flipping
holding accidental to bar end
beam-ing and tie-ing rules...:/ (beam within a beat)
phrase marks, dyna notes, rec overlay, 8va/b, rests
scribble (text,lines and hilitn?) over sheets (n save txt,xy to mid)
AutoChord
include lowest bass octave
show /bass if lowest key diff than chord bass
show key offset (I,IV,V biz) - but maybe as m2,M2,5,m7,M7,etc
show inversion b=1st c=2nd d,e for 7ths and 9ths
DlgSngL
copy2learn:
wipe pract; stamp a "notes" w packname
tracks w/ sound=piano (and other keyboard sounds)
auto ? it (and if not already, label if left/right)
DlgStat
auto populate dates in pract,notes !! n autosort.
marking song as done doesn't refresh DlgStat
DlgLrn
need to take into account future key changes when drawing solfege color
(not just use current key on future notes)
maybe make current keysig on keyboard look more keyish w/ Red "bracket"
loopin - when hopping back, wait for all notes up before hopping?
how to make keyboard not GAP up the time :/
back to yellow bar? teeny kbd? ...hmmm
what to do bout endtime for rec notes - hmmm :/
if obvious (existing checks), you're done else...
have to check for ANY future noteoffs beyond this sect
if none, use tNow, else sect tEnd
add ctrls picked via tinker app'ing * to name; stuff in 33 px - PER TRAK:/
??show key w/ lt/dk blue hilight instead of lt/dk grey notekey color??
wait4me
what's makin it halt when it SEEMS like it shouldn't?
mayyyybe leave bg tracks on for a very short dur (64th?)
what if midiout doesn't do vol cc? :(
fallback to JUST bg noteoffs? (and leave off probably?)
tinker is getting "overkicked" on beat 1 of bar :/
use a dang CtlList for track display!
in place editing for track,sound,dev instead of dlg. and del trk?
use CERtain devs for sounds- piano esp'ly
often writing a dummy recorded/@ymd.mid :(
Tinkerer
AutoLyrc => melo track=> init'd times for just txt. copy/pastable format
when you add a marker, add a section too... less hassle...
editing overlapping lyrc evs...:/
TrackStamper
store pattern and snippet FNs in song dsc somehow (fit in track name?)
load em upon DlgPat re-opening
how to dir-ize clips? instGroup/timesig/barlen/genre(rock,etc)/
riff2song func to replicate a riff thru the blues progression (for ex)
(stamp it in modulated - 4 I,2 IV,2 I,1 V,1 IV,2 I)
mod TrackStamper to do this...? (cccc ffcc gfcg<, etc, etc)
(add a transpose syntax, velocity adjust too?)
when DlgPat exits, del device\clip.mid and tell pchtr to exit
similar to SHUTUP! in Tinker's Shut() (what about regular clip playin?
EvOps dlg:
add param: offset for copy/paste to move 1st ev to time=0, etc
add param: paste reps to dup clip for a bunch of bars
ksig - show it? editing with Cmbo controls instead of blah text
timesig
trunc time to bar (keysig too)
deleting one doesn't take it out of TIME calcs
timesig still shows in bars, but not in ctrl display
also when copying/killing time; also unroll?
why does printpreview show up in monochrome ?? :(
pcheater can try to open tinker when it has a blocking dialog up... RATS:(
save to .song for use w/ Txt2Mid
when saving a song w sheet dir as a new filename, copy dir too :/
NoteFix
limit to btw BarBgn and BarEnd? adjust noteup velo too??
check that it hasn't introduced overlapping (hung) notes
across tracks that share a channel
fuller editing
COPY to track function similar to "move to track"...
need to be able to delete time (and events in it) less than a bar
need to be able to stamp riffs (at any time pos, not just @bar) and clear
SaveClip - keep tmpo,tsig (all initial ctrls?) in if avail
set velocities over a range of time to crescendo/decrescendo/etc
add control events over a range (w/ different "curves" too?)
for funky pan/wow effects, etc
move ALL events of one track to another w/out having to selct(bounce back)
make some perl scripts to write notes and such ala psl
define whqest61,drumNotes,ctrl,etc
Note=octStep,time,dur,velDn[,velUp=64,fng='']
Ctrl=name,time,valu
TmS, DrS, TmI, etc
RepRpt
put nondated etc notes in too? pic.png for rec'd mp3/mids? n user?
more info? #bars, #sheet/mid,
revisit, sheetsync, solo/lead/comp/riff, quality,
genre\ComposerArrangerArtistYearAlbum_tracknumTrackName,
tempo, avg velo, varying velo(yn)??
MidiConfig'er
window to show midiin on picked in device, button to play chord on out dev
need to make yamaha_xg,roland_gs devtypes (once somebody HAS such a beast)
SFontEditor
Mid2Wav
show stats like current,max #notes/#voices, etc, etc? min,max sample?
is drum treatment ok?
mod code so you can do midi withIN 64 sample dspBuf
WavRip
are loop points ok? or just messed up in .WAVs? i hear clicks :/
find out EXACTLY what endLoop pos SHOULD be
make sure SF2Rip sets correctly and EdiSn edits correctly
reproc'ing already proc'd wavs loops em all :/
dir for noteranged samples/stereo=>single pset (wipe suffixes somehow?)
what about when no SMPL chunk :/
just stick into a SFontBank prefix
Mid2Song
shouldn't allow dup ctrl events (same ctrl same time) - use last one
hmm, what about lyrics, etc at same time... bump time by 1 or somethin?
_____________________________________ l8r ______________________________________
a.pianocheater.com/SongClip dir too?
REALLY consider an array struct instead of RecIns :/
- lyrc,mark are UNchan'd, same for tmpo/tsig/ksig?
- what about "extra" controls? (not in cc.txt) during Song2Mid/Mid2Song
hmmm...
Stv
CtlList - editing - ui glitches
rightmost cell can expand beyond ctl when horiz scrolling
probs w ins at end leaving an empty nonChk cell - del it?
when click down in one cell, and let up in another
how to tab out? (to next/prev control)
scrolling :(
what's with Zord() in Control class??
make a SOLID BSrch instead of plain loops...
Tinkerer
bite into standard notation rendering.
look at "tracker" front end key editing
draw NPrs events as just lines on top of note bg...?
note selecting... hmmm...
drag selection to bounce to an edit track
edit op on that track
bounce whole track back
select all/none buttons, etc, etc?
veloScale , ??
custctrl makes keys do toolbar buttons, etc? Bgn,End,etc...
rats:
how to edit overlapping markers and other ctrls
(same time+trak - 2 events)
tsig editing - what about when we delete drumtrack :/
don't overlap onto notes on OTHER tracks sharing channel
show durs in e,s,t,etc? (with artic? can't?)
move velOn,velOff,moveTrack to "edit defaults" dialog?
menus in tinker instead of a kajillion buttons?
NoteChk: ("sanitize notes")
ons w no offs:
add off for short dur or ending before next on
extra up (off w no on):
rare - toss last off?
dual drums (dup notes on,on,off,off):
lose 2nd (extra) on,offs
overlapping notes on tracks sharing chan:
put on sep chans if avail?
progch probs:
1) progch mid note sep'ing tracks on a chan
- noteon on 1st, noteoff on 2nd:
display prob, but technically correct
move off to track w on
2) [progch nonotes progch] making empty tracks
move controllers to 2nd track
calc fingering somehow? user picks range of time for a hand pos
"Right Now" a good test.
time scaling:
record midi with tempo sways as straight time (only way ya can)
have user tap in beats and use these to
make tempo changes and adjust note start+durs
find some better distinct colors for byTrackNo/SoundNo coloring...
kill - clean up to do only one EvDel
printing
drum notes need thicker velocity color (like nondrum notes)
controllers lines are probably WAY too thin
print preview??? or just a list of "pg 1.. - # cols" text listing?
PianoCheater
add to SongList dialog's Find()
checkboxes:
single instrument song (pick instrument set?)
has drums; has REC track; has sheets; learn on
improve search
solo piano, sounds used (piano? drums?), #bars,
list off this STUPH in song list?
spoonfeeder:
fingering covered by pink rec note trail (for fng switch on same note)
count in - starts just pre "current section" w bg,learn tracks
Hop to a random marker to get a song down completely solid?
editing:
EdCmd controllers - should they "auto take out" assoc'd EdCmd keys ?
SONG pick song in listctrl (0..127 => pos 0..len-1)
strips song< song> song<10 song>10
TMPO set tempo from x..x+127 36..163?, 65..192?
(maybe only resolution of 64?)
strips tmpo< tmpo> tmpo<10 tmpo>10
DRMVOL (sets directly)
strips drmVol< drmVol> drmVol<10 drmVol>10
TIME? SND? maybe using pbend somehow?
CTLMAP? (play w changing devTyp map via MidiCfg before this)
which dev?
CCMap ;Top,<1,1>,Bot (show it where?)
valJ bender - "joggles" pos in Time, SndList?
ModStr - NoRec,ValMax,ValMap,Dev,Chn,Dup?,Time?
for bar#1 evs - config in dev/cc.txt?
"compile" cci+ccmap? - in=rawcc, out=songcc/./cco + mod
...we NEVER want 2 devs' (keys or matching octrls) routed to same track
overlapping notes
split em into 2 preserving all on/off velos?
edit device/channel and changroup(+ vs .) and ins/del/scoot trk?
or just in Tinker?
never record over any existing note ever?
chord symbol markers so tinker can apply a left hand pattern over the
whole song (build left track) (or maybe Txt2Trak?)
strip soundname quietly if unknown to dev in DrumMap load?
songlist editing
transition column l8r
pause after song
wait x bars after song
make a transition song composer thingy that makes a song/drumfill/etc
with tempo transition from old song's tempo to new song's
section editing
trunc markers to bar boundary (on load? in tinker?)
cust CtlCmbo like songlist; show 'section => nxtSection@time' ??
add filtering (mute/noteMod/veloMod) per section per track - in .song fmt
dblclick a section to pop track filter edit
use MCC's init in MidiO.GMInit ? or in pcheater?
use mouse (joystick too?) as extra midiin controller?
paged lyrics (toggled on/off over tracks display) w custom ctrl?
and chord symbols?
store PAGE sync commands in .trak?
GS,XG devices... wierd sysex CCs (GSMidi, XGMidi, combos or each?)
When turning REC on for a track, WHINE if there are rep'd sections in song
if no keymap in midi/device/kbd(whatever), pcheater should whine n kick cfg
keep DevName for save (so uses . instead of resolved devname)?
Mid2Song
rename a song to *_BAD.mid if can't be parsed.
programchange can split a noteDn to track1 and noteUp to track2 :(
ideal fix would be moving noteUp to track1.
check all noteUps for noteDn?
or pair all note Dn/Up evs into note structs?
ulong time, dur; ubyte note, velD, velU, fing;
ulong time; ubyte ctrl, valu, val2, x;
leaving NPrs events wherever :/
similar to what tinker's NoteChk does...
if < 16 chans used and have tracks sharing chan w progch,ungroup from chan
Txt2Trak
put main .txt file into .song (so .txt now has a prefix w song info etc)
riffs within same .txt file (note subroutines? syntax?)
put stuff btw #riff and #riffend in temp file and
map to tmpFN
del temp fns at end
hmm:
how to do double gracenotes ??
for crescendo/decr: ctrl curves (from,to,dur,curvetype)
parallel tracks in same file starting in col40
allowing blank lines n such??
for vocal tracks, some kinda verse2 syntax for
alternate tweaks to melody
(like the teeny notes - on the 2nd rep, etc)
notenotes and lyrics and markers in .txt to go to .song somehow ?
new app - Tab2Song ?? Not really possible due to no timing info ?
actually, just do single bars on each chord?
do more chords and inversions like jfugue: (^ 1st inv, ^^ 2nd, etc)
x maj 0 4 7 x min 0 3 7
x aug 0 4 8 x dim 0 3 6
x dom7 0 4 7 10 x maj7 0 4 7 11
x min7 0 3 7 10 sus4 0 5 7
sus2 0 2 7 x maj6 0 4 7 9
x min6 0 3 7 9 dom9 0 4 7 10 14
maj9 0 4 7 11 14 min9 0 3 7 10 14
dim7 0 3 6 9 add9 0 4 7 14
min11 0 7 10 14 15 17 dom11 0 7 10 14 17
dom13 0 7 10 14 16 21 min13 0 7 10 14 15 21
maj13 0 7 11 14 16 21 dom7<5 0 4 6 10
dom7>5 0 4 8 10 maj7<5 0 4 6 11
maj7>5 0 4 8 11 minmaj7 0 3 7 11
dom7<5<9 0 4 6 10 13 dom7<5>9 0 4 6 10 15
dom7>5<9 0 4 8 10 13 dom7>5>9 0 4 8 10 15
EdiSn
keep in?
keys play wave at preset piano note frqs
button to move to next "post quiet" spot
when going to mag=non0, keep pos of cursor not just leftmost spot on screen
cache the full wav samples at current mag? (depends on W)
loop point view (end of loop on left half, begin loop on right half)
# times to loop - configurable?
fx processing, FFT, yadda yadda yadda, blah, blah, blah
|