Skip to content

Commit

Permalink
Some fixes to issue #97, added paste box and progress-bar Ctrl-arrow …
Browse files Browse the repository at this point in the history
…movement to pattern editor.
  • Loading branch information
ahlstromcj committed Aug 3, 2022
1 parent b52b3dc commit 510d020
Show file tree
Hide file tree
Showing 14 changed files with 184 additions and 86 deletions.
36 changes: 20 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# README for Seq66 0.98.11

Chris Ahlstrom
2015-09-10 to 2022-08-01
2015-09-10 to 2022-08-03

__Seq66__ is a MIDI sequencer and live-looper with a hardware-sampler-like
grid-pattern interface, sets and playlists for song management, a scale and
Expand Down Expand Up @@ -88,24 +88,28 @@ Windows, and using a conventional source tarball.
## Recent Changes

* Version 0.98.11:
* Revisited issue #78 (pattern-box sizes would become 0 and the
progress boxes disappeared). Now the 'usr' show option is boolean
("pattern-boxes-shown", default = true), and the sizes are kept within
reasonable limits. Also added a "--locale" option so that the user
can, for example, set the Seq66 global locale to "en_US.UTF-8".
* Fixed issue #89, where MIDI control display was not always
reflecting the status of each pattern, especially during queuing.
Tightened up pattern arming/disarming processing.
* Improvements for issue #90, where Save does not get enabled. Surely
some remain. Also, in some cases there is no way to "unmodify".
* Fixed issue #93, the window of a deleted pattern remains open.
* Mitigation of issue #94, long song in song editor cannot be scrolled
to the right. Added more padding, and a button to expand the grid
when desired. For the pattern editor, the workaround is to increase
the length in the pattern editor.
* Issue #78 revisited. Pattern-box sizes would become 0 and the
progress boxes disappear. Now the 'usr' show option is boolean
("pattern-boxes-shown", default = true), and the sizes are kept
within reasonable limits. Also added a "--locale" option so that
the user can, for example, set the Seq66 global locale to
"en_US.UTF-8".
* Issue #89 fixed. The MIDI control display not quite reflecting the
status of each pattern, especially during queuing.
* Issue #90 improvements. Save was not always enabled. Surely some
issues remain. Also, in some cases there is no way to "unmodify".
* Issue #93 fixed. The window of a deleted pattern now closes.
* Issue #94. Long song in song editor could not be scrolled to the
right. Added more padding and a button to expand the grid when
when desired. For the pattern editor, the workaround is to increase
the "length" in the pattern editor.
* Issue #97. Pattern editor fixes. Added paste box when pasting notes,
an oversight from the Seq24 reboot. Added Ctrl-Left/Right to move
the progress bar in the pattern editor.
* Muted pattern slots show a short progress bar, to aid in the timing
of queuing.
* Improved the handling of the MIDI 'ctrl' file.
* Tightened up pattern arming/disarming processing.
* Implemented left/right arrow keys to move the selected trigger in
the song editor. Ctrl moves multiple triggers. Moving a trigger past
END moves END.
Expand Down
16 changes: 14 additions & 2 deletions RELNOTES.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
# Seq66 Release Notes 0.98.10 - 2022-07-18
# Seq66 Release Notes 0.98.10 - 2022-08-03

This file lists __major__ changes from version 9.98.0 to 0.98.10 (to catch up).
This file lists __major__ changes from version 9.98.0 to 0.98.11 (to catch up).

## Changes

* Version 0.98.11:
* Issue #78 revisited to tighten pattern box display.
* Added a --locale option.
* Issue #89 fixed so that MIDI control display reflects queuing status.
* Issue #90 improvements so that Save is activated for changes.
* Issue #93 fixed. The window of a deleted pattern now closes.
* Issue #94. Improvements to scrolling in the song editor.
* Added a button to expand the song editor in time.
* Issue #97. Added a paste box when pasting notes.
* Added L/R arrow keys to move the selected trigger in song editor.
* Improved the handling of the MIDI 'ctrl' file.
* Tightened up pattern arming/disarming processing.
* Version 0.98.10:
* Revisited issue #83: [midi-input]: in-bus data line error, to improve
GUI editing of automation port.
Expand Down
25 changes: 22 additions & 3 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
TO DO for Seq66 0.98.11 (Sequencer64 refactored for C++14 and Qt)
Chris Ahlstrom
2019-04-13 to 2022-08-01
2019-04-13 to 2022-08-02

Hot:

Expand All @@ -18,8 +18,27 @@ Hot:
further).
- Issue #95 Velocity screen does not fully refresh when scrolling
left or right.
- Arrows keys on trigger: Works, but need to move drop-tick along with
the pattern.
- Issue #96 MIDI learn (and wizard) for creating controller maps?
- Issue #97 Investigate/resolve differences from Seq24:
- When copying and pasting notes in the piano roll. I take it you
should see a selection box after hitting ctrl+v as is supposed to
happen in sequencer64. I don't see the box and can also only use the
mouse for changing the paste location. Arrow buttons do nothing. Is
that something that will come back?
- I would like to advance the red cursor in the piano roll as I
did with seq24. As the arrow buttons are newly assigned, is there
another way to do this with keys? Also when I input a note with my
midi keyboard the cursor doesn't advance forward which it should
if I read the manual correctly.
- Issue #98: More features.
- Metronome
- Count-in note recording

1. Seq24: L/R arrow keys move progress bar by snap size.
2. Seq24: Ctrl-V shows a selection box matching the extent of the copied
notes.
3. Seq24: Input from a keyboard when not playing advances like one-shot
mode, but doesn't stop when looped back.
Pattern Editor, Main Window:
Expand Down
5 changes: 4 additions & 1 deletion contrib/git/git.text
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Quick Reference for Git Processes on GitHub
Chris Ahlstrom
2015-09-09 to 2022-06-28
2015-09-09 to 2022-08-02

Creating a GitHub Repository:

Expand Down Expand Up @@ -242,10 +242,13 @@ Tagging:

He also notes the the GitHub "Create Release" feature can be used.
Install the "hub" app; it is the official command-line version of GitHub.
(It also pays to install "gitsome", which adds the "gh" application
also useful in creating releases.
Then:

$ hub release create --copy -F RELNOTES.md v2.3.0
$ hub release create -a 0.9.9 -F RELNOTES.md v2.3.0
$ gh release -F RELNOTES.md create <tag> <assetfiles>

See https://hub.github.com/ for more information.

Expand Down
20 changes: 4 additions & 16 deletions libseq66/include/util/rect.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,20 +91,14 @@ class rect
return m_x;
}

/**
* \setter m_x
* The width is assumed to be unchanged by this function.
*/

void x (int v)
{
m_x = v;
}

/**
* \setter m_x
* Provides a setter that uses the parameter to increment the member.
* The width is assumed to be unchanged by this function.
* Provides a setter that uses the parameter to increment the member.
* The width is assumed to be unchanged by this function.
*/

void x_incr (int v)
Expand All @@ -117,20 +111,14 @@ class rect
return m_y;
}

/**
* \setter m_y
* The height is assumed to be unchanged by this function.
*/

void y (int v)
{
m_y = v;
}

/**
* \setter m_y
* Provides a setter that uses the parameter to increment the member.
* The height is assumed to be unchanged by this function.
* Provides a setter that uses the parameter to increment the member.
* The height is assumed to be unchanged by this function.
*/

void y_incr (int v)
Expand Down
4 changes: 2 additions & 2 deletions libseq66/src/os/shellexecute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2022-05-19
* \updates 2022-06-28
* \updates 2022-08-02
* \license GNU GPLv2 or above
*
* Provides support for cross-platform time-related functions.
Expand Down Expand Up @@ -110,7 +110,7 @@ open_local_url (const std::string & url)
bool
open_pdf (const std::string & pdfspec)
{
return command_line(cmd);
return command_line(pdfspec);
}

bool
Expand Down
15 changes: 9 additions & 6 deletions libseq66/src/play/performer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
* \library seq66 application
* \author Chris Ahlstrom and others
* \date 2018-11-12
* \updates 2022-07-31
* \updates 2022-08-03
* \license GNU GPLv2 or above
*
* Also read the comments in the Seq64 version of this module, perform.
Expand Down Expand Up @@ -2741,12 +2741,15 @@ performer::activate ()
void
performer::set_tick (midipulse tick, bool dontreset)
{
m_tick = tick;
if (dontreset)
if (tick >= 0)
{
m_dont_reset_ticks = true;
set_start_tick(tick);
set_needs_update();
m_tick = tick;
if (dontreset)
{
m_dont_reset_ticks = true;
set_start_tick(tick);
set_needs_update();
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion seq_qt5/forms/qpatternfix.ui
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@
<property name="title">
<string>Quantization</string>
</property>
<widget class="QWidget" name="layoutWidget">
<widget class="QWidget" name="layoutWidgetQuan">
<property name="geometry">
<rect>
<x>17</x>
Expand Down
28 changes: 28 additions & 0 deletions seq_qt5/forms/qseqeditframe64.ui
Original file line number Diff line number Diff line change
Expand Up @@ -952,6 +952,34 @@ zooms 'in'.</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_button_loop">
<property name="minimumSize">
<size>
<width>48</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>48</width>
<height>28</height>
</size>
</property>
<property name="text">
<string>Loop</string>
</property>
<property name="iconSize">
<size>
<width>33</width>
<height>12</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_button_lfo">
<property name="enabled">
Expand Down
9 changes: 8 additions & 1 deletion seq_qt5/include/qseqeditframe64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2018-06-15
* \updates 2022-07-29
* \updates 2022-08-03
* \license GNU GPLv2 or above
*
*/
Expand Down Expand Up @@ -293,6 +293,7 @@ private slots:
void update_scale (int index);
void reset_scale ();
void editor_mode (bool ischecked);
void loop_mode (bool ischecked);
void events ();
void data ();
void show_lfo_frame ();
Expand Down Expand Up @@ -372,6 +373,12 @@ private slots:

bool m_short_version;

/**
* Hold the current L/R looping status.
*/

bool m_is_looping;

/**
* The LFO window object that might used by the pattern editor.
*/
Expand Down
2 changes: 1 addition & 1 deletion seq_qt5/include/qsmainwnd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ class qsmainwnd final : public QMainWindow, protected performer::callbacks
bool m_song_mode;

/**
* Hold the current looping status.
* Hold the current L/R looping status.
*/

bool m_is_looping;
Expand Down
25 changes: 24 additions & 1 deletion seq_qt5/src/qseqeditframe64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2018-06-15
* \updates 2022-08-01
* \updates 2022-08-03
* \license GNU GPLv2 or above
*
* The data pane is the drawing-area below the seqedit's event area, and
Expand Down Expand Up @@ -128,6 +128,7 @@
#include "pixmaps/finger.xpm"
#include "pixmaps/follow.xpm"
#include "pixmaps/key.xpm"
#include "pixmaps/loop.xpm"
#include "pixmaps/length_short.xpm" /* not length.xpm, it is too long */
#include "pixmaps/menu_empty.xpm"
#include "pixmaps/menu_empty_inv.xpm"
Expand Down Expand Up @@ -274,6 +275,7 @@ qseqeditframe64::qseqeditframe64
performer::callbacks (p),
ui (new Ui::qseqeditframe64),
m_short_version (shorter), /* short_version() */
m_is_looping (false),
m_lfo_wnd (nullptr),
m_patternfix_wnd (nullptr),
m_tools_popup (nullptr),
Expand Down Expand Up @@ -480,22 +482,31 @@ qseqeditframe64::qseqeditframe64
ui->m_map_notes->hide();
ui->spacer_button_4->hide();
ui->spacer_button_5->hide();
ui->m_button_loop->hide();
}
else
{
/*
* Drum-Mode Button. Qt::NoFocus is the default focus policy.
* Also includes the new loop button, which does the same function
* as in the main window.
*/

ui->m_toggle_drum->setAutoDefault(false);
ui->m_toggle_drum->setCheckable(true);
qt_set_icon(drum_xpm, ui->m_toggle_drum);
qt_set_icon(loop_xpm, ui->m_button_loop);
connect
(
ui->m_toggle_drum, SIGNAL(toggled(bool)),
this, SLOT(editor_mode(bool))
);
connect
(
ui->m_button_loop, SIGNAL(toggled(bool)),
this, SLOT(loop_mode(bool))
);
connect
(
ui->m_map_notes, SIGNAL(clicked(bool)),
this, SLOT(remap_notes())
Expand Down Expand Up @@ -1287,6 +1298,11 @@ qseqeditframe64::conditional_update ()

ui->m_combo_bw->setEditText(qt(mstring));
}
if (m_is_looping != perf().looping())
{
m_is_looping = perf().looping();
ui->m_button_loop->setChecked(m_is_looping);
}
if (track().check_loop_reset())
{
/*
Expand Down Expand Up @@ -2715,6 +2731,13 @@ qseqeditframe64::editor_mode (bool ischecked)
set_dirty(); /* modified for issue #90 */
}

void
qseqeditframe64::loop_mode (bool ischecked)
{
perf().looping(ischecked);
set_dirty();
}

void
qseqeditframe64::set_editor_mode (sequence::editmode mode)
{
Expand Down
Loading

0 comments on commit 510d020

Please sign in to comment.