Skip to content

Conversation

@sriseley
Copy link

Motivation

The first time I used Qtractor 1.2.0 (installed from dnf), I was clicking the record button with a track armed, and from my perspective nothing was happening, I was confused and unsure if Qtractor was working correctly. I realised that starting a recording actually required two steps: 1. clicking record and 2. clicking play. This did not meet my expectations as a user accustomed to audio recording software eg Audacity.

I have decided to implement the feature and raise a PR to invite discussion. I am curious to understand if there are historic or Qtractor-specific reasons why starting a recording requires two clicks as opposed to one.

Feature description

This pull request starts playback as well as recording when the record button is pressed.

Implementation details

  • The Record button (m_ui.transportRecordAction) now also programmatically controls the Play action (m_ui.transportPlayAction) to synchronize recording and playback.
  • respects the action-slot architecture: instead of calling the Play slot directly, the code triggers the QAction.
  • any other UI elements or functionality bound to Play automatically respond because they share the same QAction.

Development environment

Developed and built on Fedora Linux 42 using the following build parameters:

cmake -B build -DCONFIG_VST3=OFF -DCONFIG_VST3SDK=OFF -DCONFIG_CLAP=OFF -DCONFIG_DSSI=OFF -DCONFIG_LV2=OFF
cmake --build build --parallel $(nproc)

Testing

1) Pressing record starts recording and playback

Steps:

  • Add audio track with default input/ output.
  • Arm track for recording by clicking R button (alt text: "Track 1 Record")
  • Click record button (alt text: "Record")

Expected outcome:

  • Record button moves to pressed/ active state ✅
  • Play button moves to pressed/ active state ✅
  • waveform appears in track 1 ✅
  • stop button no longer greyed out ✅

2) Pressing record button during recording and playback stops recording and playback

Steps:

  • steps for test case 1. Pressing record starts playback
  • Click record button again

Expected outcome:

  • stop button becomes greyed out/ not clickable ✅
  • Record button no longer pressed/ active ✅
  • Play button no longer pressed/ active ✅
  • Waveform stops being recorded ✅

3) Pressing stop button during recording and playback stops recording and playback

Steps:

  • steps for test case 1. Pressing record starts playback
  • click stop button (alt text: "Stop")

Expected outcome:

  • Same as test case 2. Pressing record button during recording and playback stops recording and playback ✅

4) Pressing play button during recording and playback stops recording and playback

Steps:

  • steps for test case 1. Pressing record starts playback
  • click play button (alt text: "Play")

Expected outcome:

  • Same as test case 2. Pressing record button during recording and playback stops recording and playback ✅

…usly user needed to click play after clicking record.
@rncbc
Copy link
Owner

rncbc commented Jan 25, 2026

I am curious to understand if there are historic or Qtractor-specific reasons why starting a recording requires two clicks as opposed to one.

mainly historic: it follows the old tape-recorder action model of yore which is/was set right from the beginning two decades ago :)

really appreciate the effort in taking to explain so simple feature change, however, to be just perfect it should be taken as an user option or preference; old and most current users are or seem to be comfortable with the record button action model, so seeing to change so abruptly might raise some eyebrows to say the least.

@sriseley sriseley marked this pull request as draft January 26, 2026 01:11
@sriseley
Copy link
Author

Hi @rncbc thanks very much for the info, I've marked as draft and I'll refactor into a user configurable option 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants