1
Fork 0
Commit Graph

232 Commits

Author SHA1 Message Date
EvanR 9144b0211a Added loading and importing via argv[1]. 2009-01-14 17:48:11 -06:00
EvanR 47eb5f7ccf Added button to add tracks.
Another button to subtract tracks does not yet work.
2009-01-14 17:42:05 -06:00
EvanR 1ad4070c71 Progress toward paste. Fixed some scroll bugs and segfaults.
Now it lets you scroll while playing and follow playback
mode is selected and the play position is before the
current edited block.

Blocks that do not start at zero now auto scroll correctly.

A stupid error in namecb was fixed. Caused segfaults when
changing track names.
2009-01-11 07:24:07 -06:00
EvanR 8e7a6ba571 Fixed some split tool klunk. Better split/join colors.
Move the split tool from block to block vertically
was not working if it did not pass through empty space.
Now it does.

Split and join generated random colors for the blocks.
Now they dont.
2009-01-07 11:05:43 -06:00
EvanR 1445c275fd Updated webpage. 2009-01-07 01:28:01 -06:00
EvanR 7d6dbd2060 Update TODO/BUGS. Adjusted GUI. Disabled undo debug messages. 2009-01-07 00:48:48 -06:00
EvanR 0ea8dbdcb5 Added join tool.
Select the glue and click on a block to fuse it
with the block to its immediate left.
2009-01-07 00:06:02 -06:00
EvanR 02e35f6ec6 Added split tool.
Select the scissors in the song editor, then click
on a block to cut it into two pieces.
2009-01-06 23:07:45 -06:00
EvanR 012212925d Fixed zoom so it centers on current general area. 2009-01-06 21:27:26 -06:00
EvanR 948d908a3d Updated TODO. 2009-01-06 21:16:04 -06:00
EvanR d178723f1e Rearranged the GUI. 2009-01-06 19:21:42 -06:00
EvanR 506afe49e0 Fixed right to left line tool in event editor. Again. 2009-01-06 19:08:42 -06:00
EvanR 56c532adad Windows untoggle the main panel button on close. 2009-01-06 18:33:45 -06:00
EvanR 17da45d623 Fixed right to left line tool in event editor.
Write this before had the habit of using SWAP.
2009-01-06 18:23:45 -06:00
EvanR bb84743c16 Fixed right to left deleting in event editor.
That code was before I had the habit of swapping.
2009-01-06 18:17:13 -06:00
EvanR b24cd8b842 Added confirmation on quit.
This is a feature request by AudioFranky.
2009-01-06 17:58:38 -06:00
EvanR af7382652a Moving the mouse in the piano roll highlights keys.
This is a feature request from AudioFranky.
2009-01-06 17:46:53 -06:00
EvanR 29c199d4fc Fixed one segfault during undo.
It was caused by a wrong algorithm to erase the
future commands when committing from inside the
undo history.
2009-01-06 16:51:26 -06:00
EvanR 365ed7e7cd Fixed modifiers, again. 2009-01-06 16:29:30 -06:00
EvanR dc59f0967f Fixed modifiers again. 2009-01-06 16:06:52 -06:00
EvanR 6aa1325193 Enabled undo and redo. Buggy. Fixed key modifiers.
Undo and redo are activated with control z and
control r, and cannot be remapped yet.

It certainly will fail and eventually crash if
you fool with layers. I also got it to crash
when doing heavy editting in the piano roll.

Undoing recorded commands is currently klunky
and unusable.
2009-01-06 15:57:02 -06:00
EvanR c9ef939c47 Rewrote overwrite and layer operations to be undoable.
New Commands were created to overwrite a block on
re-record and to push a blank layer.
2009-01-06 11:43:56 -06:00
EvanR 7dd9c4f9a2 Removed unused source file.
The custom scroll group subclass is not necessary
now that I removed the fltk::ScrollGroups from the
program.
2009-01-06 10:50:14 -06:00
EvanR 1126efd0ec Added icon for join.
But join does not yet work.
2009-01-06 01:25:14 -06:00
EvanR 1c0d8fa06a Added icon for split.
But split does not yet work.
2009-01-06 01:01:40 -06:00
EvanR ed39a82f91 Added unclone tool. Adjusted GUI. Added icons.
Added edit icon. Edit mode is the default mode.
Added color icon. The color tool changes block colors.
Added fork icon. The unclone tool hard-copies blocks.

I made some adjustments to includes in some files
that did not need to know about the UI. Changing
the GUI at this time causes almost all the files
to be recompiled, and it is starting to take too
long.
2009-01-06 00:23:38 -06:00
EvanR 0d67f709eb Fixed x-ray graphics again. 2009-01-05 21:50:50 -06:00
EvanR 43b4ff2978 Resize arrows in arranger work again. 2009-01-05 21:35:56 -06:00
EvanR 02dfd28dc9 Repaired option always hard copy.
Which was broken when I added all the editting operations
to the arranger. Paste is still not fully working.
2009-01-05 21:10:36 -06:00
EvanR c7789bd567 Added conf icon. 2009-01-05 20:58:44 -06:00
EvanR b37057e2cf Fixed remaining known use of uninitialized data. 2009-01-05 20:00:39 -06:00
EvanR 772fee62aa Improved drawing performance.
Arranger, event editor, and piano roll have faster
drawing by not drawing stuff outside the clip region.
The program was slowing down on a large midi file.
2009-01-05 19:51:20 -06:00
EvanR 3cd8dd0bc4 Fixed x-ray graphics when scrolling vertically. 2009-01-05 18:33:58 -06:00
EvanR a7427770e8 Fixed dereferencing NULL pointer in piano roll. 2009-01-05 17:46:35 -06:00
EvanR 9adae6909f Fixed division by zero when using extend block. 2009-01-05 17:25:20 -06:00
EvanR 39dc47c163 Fixed minor problems with pattern scroll.
I had to use the layout method to update the
scrollbar on resize window. This required the
kludge variable. Hopefully this does not lead
more terrible effects.
2009-01-05 17:01:42 -06:00
EvanR 47b8847e5f Restored pattern editor functionality. 2009-01-05 16:14:46 -06:00
EvanR b34a78829c Arranger scrolling works again.
All previous functionality works in the arranger.
2009-01-05 12:29:13 -06:00
EvanR 889831146c Improved horizontal scrolling and follow playback.
There is no longer any jitter when attempting to
scroll away from the play head when follow playback
option is selected.
2009-01-05 11:35:02 -06:00
EvanR e8ac0b4d97 Fixed timeline drawing problem at extreme range.
The problem was that giving fltk drawing commands
that are very far negative will have the effect of
wrapping around. Fixed by not giving coordinates
that are very large negative.
2009-01-05 01:27:11 -06:00
EvanR 4999cac727 Song vertical scroll works.
It now acts like the old scroll bar from the scrollgroup.
I added a layout function to the arranger which serves
as the only way that widgets will get updates about the
window resizing. It required a kludge similar to the
scrollgroup. The fact that the magic kludge value is 2
rather than 4 means the current scheme is twice as good.
2009-01-05 00:53:30 -06:00
EvanR 98ee848915 Replaced horizontal scroll bars with thumbwheels.
The reasoning is that there is no limit to how far
you can scroll to the right in the song view or
pattern editor.
2009-01-04 23:52:22 -06:00
EvanR df6f51ee11 Replaced pattern_scroll.
Now the problems with the pattern editor's graphics
are gone. But it has lost the ability to scroll and
also draw notes.
2009-01-04 23:40:39 -06:00
EvanR 1abc40e239 Initial refactoring of the scroll stuff.
The good news is that the graphical gliches are gone
and the layout kludge is obliterated. The bad news
is that you cannot scroll in the song editor.

The point of this branch is to replace both the
song_scroll and pattern_scroll fltk::ScrollGroups
with two scroll bars which simply control the widgets
using their callback.

The resulting sanity will make the graphical problems
trivially evaporate.
2009-01-04 23:17:59 -06:00
EvanR 66d2dbd3ca Fixed some GUI bugs. Arranger GUI temporarily fixed.
The scroll group widget is beyond repair. I tried
my best to make it do what it should be doing by
using kludges and an almost trivial subclass. The
bottom line is that the scroll group widget is broken.

Details: When the scroll group is manipulated, it does
not call its own callback. It does call relayout on
its children. However, when the window is maximized,
the scroll group itself does not fully relayout itselt
correctly. In corrects itself if it scrolls twice more.
In some circumstances the scroll group will get caught
in a strange loop if the children are at the very edge
of the scrolling region, and fooling with it enough
will fix it, but it is still broken. In this program,
maximize, scrollTo, and other factors lead to graphical
breakage.

The scroll group widget will be dumped in a new branch
soon. It will be replaced with two scroll bar widgets
that simply use the regular callback api, which the
scroll group should be doing, and control the main
canvases just like layout was controlling the timelines,
event editor, virtual keyboard, and track info.
2009-01-04 22:34:24 -06:00
EvanR 6b03b5dd46 Updated TODO. 2009-01-04 18:27:04 -06:00
EvanR 6ccc1e4ebb Updated BUGS. Fixed initial bpm bug. 2009-01-04 18:23:40 -06:00
EvanR 90107c3cf0 Merge branch 'file'
Conflicts:

	src/ui.cpp

The file branch introduced the following changes.

Standard midi files are now importable, more or
less. Track names are use as... track names. Text
events are appended to the song info. Initial
tempo change events are used as the song tempo.
More work needs to be done when loading midi files
that do not put all events for a channel on one
track. Currently those events are removed. This
will be fixed later.

The text file format for songs was changed, for
the better, in a backward incompatible way. There
is now a header with magic numbers so that
accidentally opening a foreign file will not crash.
Event duration is no longer stored in the file.
Time, in ticks, is stored as delta ticks rather
than absolute ticks. There is a version field in
case a future change needs to be made to the format
that will render it incompatible. Hopefully this
does not happen for a long time.
2009-01-04 17:27:42 -06:00
EvanR a1cc1be3f6 Absolute times changes to delta times in format. 2009-01-04 16:22:59 -06:00
EvanR cd061b39e7 Swapped tick and type fields in format. 2009-01-04 16:17:26 -06:00