Paul Davis
617fcd660c
add operator% and operator%= to Temporal::Beats (taken from nutempo)
2021-08-13 12:51:27 -06:00
Paul Davis
93d2f6f433
remove debug output
2021-08-13 12:51:27 -06:00
Paul Davis
b18aaf0c7c
Rectangle border/sizing behaves like CSS border-box
2021-08-13 12:51:27 -06:00
Paul Davis
27919fec61
items should not round their bounding box when requesting a redraw
2021-08-13 12:51:27 -06:00
Paul Davis
9c071cd6ef
Canvas::queue_draw_item_area() now expands the passed-in rect appropriately
...
This means that a request to (re)draw the Rect (0.5,0.5,9.5,9.5)
will actually generate an expose event for (0,0,10,10)
Note: the above rects are of the form (x0,y0,x1,y1)
2021-08-13 12:51:27 -06:00
Paul Davis
35a9bcc409
add Rectangle::size_request() which returns actual rectangle size, not bounding box
2021-08-13 12:51:26 -06:00
Paul Davis
a9c2e2f7e5
expose step sequencer's step's index
2021-08-13 12:51:26 -06:00
Paul Davis
60f3985957
replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
...
::pack_start() was removed
2021-08-13 12:51:26 -06:00
Paul Davis
210702481b
add required virtual method to Push2Canvas
2021-08-13 12:51:26 -06:00
Paul Davis
12b4807bc9
add a very (very) basic resize/layout design to the canvas
...
Items call ::queue_resize(), which sets a flag in the canvas; at next idle, we call
Canvas::layout() which walks the item tree and recursively calls layout (depth first)
on all items needing a resize.
Only Container types implement layout, and so far only Box
2021-08-13 12:51:26 -06:00
Paul Davis
03e32a22d0
make Item::add() virtual
2021-08-13 12:51:26 -06:00
Paul Davis
2ae616bf44
fix incorrect location of step sequencer request object "deletion" (really: pool return)
2021-08-13 12:51:26 -06:00
Paul Davis
1edcc3d279
remove debug output
2021-08-13 12:51:26 -06:00
Paul Davis
c9e4d3f045
alter note off handling in step sequencer to be global to the whole sequencer
2021-08-13 12:51:26 -06:00
Paul Davis
eb139acab6
change API to adjust note timing
2021-08-13 12:51:26 -06:00
Paul Davis
aceec18510
adjust StepSequence API(s) to meet needs
2021-08-13 12:51:26 -06:00
Paul Davis
9869b0266b
add support for rounded corners to Canvas::Rectangle
2021-08-13 12:51:26 -06:00
Paul Davis
4f671a0950
make ArdourCanvas::Rectangle render its children
...
it is common to want to pack things inside a rectangle, so make it work
2021-08-13 12:51:26 -06:00
Paul Davis
c0edd61d75
more redesign of beatbox fundamentals, adding back RT-safe modifications to sequencer
2021-08-13 12:51:26 -06:00
Paul Davis
8fb67e15ea
steps in the evolution of beatbox
2021-08-13 12:51:26 -06:00
Paul Davis
ba84a1ccc7
API to set step velocity to absolute value
2021-08-13 12:51:26 -06:00
Paul Davis
62eb966dae
comment updates
2021-08-13 12:51:26 -06:00
Paul Davis
25f67e3f16
use rational number for step durations
2021-08-13 12:51:26 -06:00
Paul Davis
870b142f9b
API for adjusting step duration (gate length)
2021-08-13 12:51:26 -06:00
Paul Davis
b9c26ee4c4
add octave shifting and other API changes to better support beatbox GUI
2021-08-13 12:51:26 -06:00
Paul Davis
07a60ecb8b
some API changes to help support developing GUI
2021-08-13 12:51:26 -06:00
Paul Davis
d37a61707b
extend parts of StepSequencer API for better coding
2021-08-13 12:51:26 -06:00
Paul Davis
a5fd4c0c8a
velocity editing games
2021-08-13 12:51:26 -06:00
Paul Davis
b2e111f491
extend step sequencer API to start data mods
2021-08-13 12:51:26 -06:00
Paul Davis
07640ff488
add missing file
2021-08-13 12:51:26 -06:00
Paul Davis
c41c622b37
another BBT comparator fix
2021-08-13 12:51:26 -06:00
Paul Davis
d682e61b99
step sequencer now follows tempo map precisely; beatbox loses some functionality (for now)
2021-08-13 12:51:26 -06:00
Paul Davis
be831c6870
fix logic error in BBT_Time::operator>=
2021-08-13 12:51:26 -06:00
Paul Davis
2d6eaad775
missing header file, added
2021-08-13 12:51:26 -06:00
Paul Davis
a38677cfd4
compiling and running, but not working step sequencer
2021-08-13 12:51:26 -06:00
Paul Davis
6905a705a9
initial landing of new internal StepSequencer object
2021-08-13 12:51:26 -06:00
Paul Davis
91de7ba60b
do not double-translate Canvas::Rectangle by _position; item_to_window() already includes it by calling item_to_canvas()
2021-08-13 12:51:26 -06:00
Paul Davis
b2e3df9fda
actually add and position a beatbox processor to midi tracks
2021-08-13 12:51:26 -06:00
Paul Davis
aca1db2d06
add step_button to wscript
2021-08-13 12:51:26 -06:00
Paul Davis
e35e5ff3e5
step button for Canvas (used by BeatBox GUI)
2021-08-13 12:51:26 -06:00
Paul Davis
6b39febabc
meet the beatbox
2021-08-13 12:51:26 -06:00
Paul Davis
9e5354a65e
tweak a minor issue with canvas API
2021-08-13 12:51:26 -06:00
Paul Davis
783e33dc0c
new implementations for Gtkmm2ext::HSV::{darker,lighter} that follow "common sense" rather than Google.
...
HSV::shade() still follows the google model
2021-08-13 12:51:26 -06:00
Paul Davis
ff6fe51d76
Canvas: improve implementation/design of ConstraintPacker::preferred_size()
2021-08-13 12:51:26 -06:00
Paul Davis
502a9e80dc
Canvas: add a nice new syntax for constraint packing
2021-08-13 12:51:26 -06:00
Paul Davis
d6745f043c
Canvas: clean up Constraint expressions to avoid compiler warnings
2021-08-13 12:51:26 -06:00
Paul Davis
aa62460081
Canvas: re-use Solver as much as possible, with possible (but not substantive) speedup; remove debug output
2021-08-13 12:51:26 -06:00
Paul Davis
815eb82882
Canvas: partially improve/fix cBox rendering
2021-08-13 12:51:26 -06:00
Paul Davis
2598bdef2c
Canvas: mark constraint-layout containers as layout-sensitive (like their children)
2021-08-13 12:51:26 -06:00
Paul Davis
f5d67e6520
Canvas: temporary easy way to get debug output from Canvas::render() in a test program
2021-08-13 12:51:26 -06:00