Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5e74e3c
Removed the first record button from the Song Editor
steven-jaro May 20, 2025
6cbd25f
Removed commented lines in SongEditor
steven-jaro May 20, 2025
621e69b
Fixed regulus request about inverted bool name and removed an unneces…
steven-jaro May 22, 2025
73d5293
Modified editor buttons construction logic
steven-jaro May 22, 2025
2915379
Fixed recordAccompany as false by default
steven-jaro May 22, 2025
21fece4
Fixed szeli1 request for consisten documentation
steven-jaro May 25, 2025
b981b53
Fixed too much comments and implementation of a lambda to simplify th…
steven-jaro May 26, 2025
036f4b4
Fixed use of new function for all buttons and step_record to recordStep
steven-jaro May 29, 2025
14eb1de
Fixed 4 tab size instead of 4 spaces
steven-jaro May 30, 2025
0ccb8ff
Update Song.h
steven-jaro May 30, 2025
1bfa2a6
Update Song.h
steven-jaro May 30, 2025
c1b4178
Update Song.cpp
steven-jaro Jun 2, 2025
2f5416b
Merge branch 'feature/recording-stage-one' into feature/recording-sta…
steven-jaro Sep 3, 2025
bf0a44f
Removed the first record button from the Song Editor
steven-jaro May 20, 2025
415dd40
Removed commented lines in SongEditor
steven-jaro May 20, 2025
65dfab6
Fixed regulus request about inverted bool name and removed an unneces…
steven-jaro May 22, 2025
094d31f
Modified editor buttons construction logic
steven-jaro May 22, 2025
614be09
Fixed recordAccompany as false by default
steven-jaro May 22, 2025
0c1e2f5
Fixed szeli1 request for consisten documentation
steven-jaro May 25, 2025
6dd45e0
Fixed too much comments and implementation of a lambda to simplify th…
steven-jaro May 26, 2025
f7e787c
Fixed use of new function for all buttons and step_record to recordStep
steven-jaro May 29, 2025
b277794
Fixed 4 tab size instead of 4 spaces
steven-jaro May 30, 2025
db68986
Update Song.h
steven-jaro May 30, 2025
7f8ddb6
Update Song.h
steven-jaro May 30, 2025
e903b5a
Update Song.cpp
steven-jaro Jun 2, 2025
aafedd7
fixed spaces into tabs
steven-jaro Nov 22, 2025
62f5365
Fixed conflicts with new changes
steven-jaro Nov 22, 2025
8051313
Merge branch 'feature/recording-stage-one' of https://github.com/stev…
steven-jaro Nov 22, 2025
6e02059
Showed record accompany into patterneditor and removed whitespaces
steven-jaro Nov 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion include/Editor.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ private slots:
///
/// \param record If set true, the editor's toolbar will contain record
/// buttons in addition to the play and stop buttons.
Editor(bool record = false, bool record_step = false);
Editor(bool record = false, bool recordAccompany = false, bool record_step = false);
~Editor() override = default;


Expand Down
1 change: 0 additions & 1 deletion include/Song.h
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,6 @@ class LMMS_EXPORT Song : public TrackContainer

public slots:
void playSong();
void record();
void playAndRecord();
void playPattern();
void playMidiClip( const lmms::MidiClip * midiClipToPlay, bool loop = true );
Expand Down
1 change: 0 additions & 1 deletion include/SongEditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,6 @@ class SongEditorWindow : public Editor

protected slots:
void play() override;
void record() override;
void recordAccompany() override;
void stop() override;

Expand Down
8 changes: 0 additions & 8 deletions src/core/Song.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -506,14 +506,6 @@ void Song::playSong()



void Song::record()
{
m_recording = true;
// TODO: Implement
}




void Song::playAndRecord()
{
Expand Down
58 changes: 33 additions & 25 deletions src/gui/editors/Editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ void Editor::toggleMaximize()
isMaximized() ? showNormal() : showMaximized();
}

Editor::Editor(bool record, bool stepRecord) :
Editor::Editor(bool record, bool recordAccompany, bool stepRecord) :
m_toolBar(new DropToolBar(this)),
m_playAction(nullptr),
m_recordAction(nullptr),
Expand All @@ -104,36 +104,44 @@ Editor::Editor(bool record, bool stepRecord) :
m_toolBar->widgetForAction(action)->setObjectName(objectName);
};

// Set up play and record actions
m_playAction = new QAction(embed::getIconPixmap("play"), tr("Play (Space)"), this);
m_stopAction = new QAction(embed::getIconPixmap("stop"), tr("Stop (Space)"), this);
// Play action setup
m_playAction = new QAction(embed::getIconPixmap("play"), tr("Play (Space)"), this); // Setup play action
connect(m_playAction, SIGNAL(triggered()), this, SLOT(play())); // Setup connection for play action
addButton(m_playAction, "playButton"); // Add actions to toolbar for play action

m_recordAction = new QAction(embed::getIconPixmap("record"), tr("Record"), this);
m_recordAccompanyAction = new QAction(embed::getIconPixmap("record_accompany"), tr("Record while playing"), this);
m_toggleStepRecordingAction = new QAction(embed::getIconPixmap("record_step_off"), tr("Toggle Step Recording"), this);

// Set up connections
connect(m_playAction, SIGNAL(triggered()), this, SLOT(play()));
connect(m_recordAction, SIGNAL(triggered()), this, SLOT(record()));
connect(m_recordAccompanyAction, SIGNAL(triggered()), this, SLOT(recordAccompany()));
connect(m_toggleStepRecordingAction, SIGNAL(triggered()), this, SLOT(toggleStepRecording()));
connect(m_stopAction, SIGNAL(triggered()), this, SLOT(stop()));
new QShortcut(Qt::Key_Space, this, SLOT(togglePlayStop()));
new QShortcut(QKeySequence(combine(Qt::SHIFT, Qt::Key_Space)), this, SLOT(togglePause()));
new QShortcut(QKeySequence(combine(Qt::SHIFT, Qt::Key_F11)), this, SLOT(toggleMaximize()));

// Add actions to toolbar
addButton(m_playAction, "playButton");
// Record action setup
if (record)
{
addButton(m_recordAction, "recordButton");
addButton(m_recordAccompanyAction, "recordAccompanyButton");
m_recordAction = new QAction(embed::getIconPixmap("record"), tr("Record"), this); // Setup record action
connect(m_recordAction, SIGNAL(triggered()), this, SLOT(record())); // Setup connection for record action
addButton(m_recordAction, "recordButton"); // Add actions to toolbar for record action
}

// RecordAccompany action setup
if (recordAccompany)
{
m_recordAccompanyAction = new QAction(embed::getIconPixmap("record_accompany"), tr("Record while playing"), this); // Setup recordAccompany action
connect(m_recordAccompanyAction, SIGNAL(triggered()), this, SLOT(recordAccompany())); // Setup connection for recordAccompany action
addButton(m_recordAccompanyAction, "recordAccompanyButton"); // Add actions to toolbar for recordAccompany action
}
if(stepRecord)

// StepRecord action setup
if (stepRecord)
{
addButton(m_toggleStepRecordingAction, "stepRecordButton");
m_toggleStepRecordingAction = new QAction(embed::getIconPixmap("record_step_off"), tr("Toggle Step Recording"), this); // Setup stepRecord action
connect(m_toggleStepRecordingAction, SIGNAL(triggered()), this, SLOT(toggleStepRecording())); // Setup connection for stepRecord action
addButton(m_toggleStepRecordingAction, "stepRecordButton"); // Add actions to toolbar for stepRecord action
}
addButton(m_stopAction, "stopButton");

// Stop action setup
m_stopAction = new QAction(embed::getIconPixmap("stop"), tr("Stop (Space)"), this); // Setup stop action
connect(m_stopAction, SIGNAL(triggered()), this, SLOT(stop())); // Setup connection for stop action
addButton(m_stopAction, "stopButton"); // Add actions to toolbar for stop action

// Setup shortcuts for actions
new QShortcut(Qt::Key_Space, this, SLOT(togglePlayStop()));
new QShortcut(QKeySequence(combine(Qt::SHIFT, Qt::Key_Space)), this, SLOT(togglePause()));
new QShortcut(QKeySequence(combine(Qt::SHIFT, Qt::Key_F11)), this, SLOT(toggleMaximize()));
}

QAction *Editor::playAction() const
Expand Down
2 changes: 1 addition & 1 deletion src/gui/editors/PianoRoll.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4728,7 +4728,7 @@ void PianoRoll::changeSnapMode()
}

PianoRollWindow::PianoRollWindow() :
Editor(true, true),
Editor(true, true, true),
m_editor(new PianoRoll())
{
setCentralWidget( m_editor );
Expand Down
15 changes: 2 additions & 13 deletions src/gui/editors/SongEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -911,7 +911,7 @@ ComboBoxModel *SongEditor::snappingModel() const


SongEditorWindow::SongEditorWindow(Song* song) :
Editor(true, false),
Editor(false, true, false),
m_editor(new SongEditor(song)),
m_crtlAction( nullptr ),
m_snapSizeLabel( new QLabel( m_toolBar ) )
Expand All @@ -927,7 +927,6 @@ SongEditorWindow::SongEditorWindow(Song* song) :

// Set up buttons
m_playAction->setToolTip(tr("Play song (Space)"));
m_recordAction->setToolTip(tr("Record samples from Audio-device"));
m_recordAccompanyAction->setToolTip(tr("Record samples from Audio-device while playing song or pattern track"));
m_stopAction->setToolTip(tr( "Stop song (Space)" ));

Expand Down Expand Up @@ -1033,11 +1032,7 @@ SongEditorWindow::SongEditorWindow(Song* song) :
// disable the record buttons.
if (!Engine::audioEngine()->captureDeviceAvailable())
{
for (auto &recordAction : {m_recordAccompanyAction, m_recordAction})
{
recordAction->setEnabled(false);
recordAction->setToolTip(tr("Recording is unavailable: try connecting an input device or switching backend"));
}
m_recordAccompanyAction->setToolTip(tr("Recording is unavailable: try connecting an input device or switching backend"));
}
}

Expand Down Expand Up @@ -1099,12 +1094,6 @@ void SongEditorWindow::play()
}


void SongEditorWindow::record()
{
m_editor->m_song->record();
}




void SongEditorWindow::recordAccompany()
Expand Down
Loading