Skip to content

Commit

Permalink
Merge branch 'master' into pin-connector
Browse files Browse the repository at this point in the history
  • Loading branch information
messmerd committed Dec 22, 2024
2 parents d4b9b43 + 6b494bd commit 5bd1ec3
Show file tree
Hide file tree
Showing 18 changed files with 107 additions and 62 deletions.
1 change: 1 addition & 0 deletions Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ brew "libsoundio"
brew "libvorbis"
brew "lilv"
brew "lv2"
brew "pkgconf"
brew "portaudio"
brew "qt@5"
brew "sdl2"
Expand Down
65 changes: 32 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,39 @@
# ![LMMS Logo](https://raw.githubusercontent.com/LMMS/artwork/master/Icon%20%26%20Mimetypes/lmms-64x64.svg) LMMS

[![Build status](https://github.com/LMMS/lmms/actions/workflows/build.yml/badge.svg)](https://github.com/LMMS/lmms/actions/workflows/build.yml)
[![Latest stable release](https://img.shields.io/github/release/LMMS/lmms.svg?maxAge=3600)](https://lmms.io/download)
[![Overall downloads on Github](https://img.shields.io/github/downloads/LMMS/lmms/total.svg?maxAge=3600)](https://github.com/LMMS/lmms/releases)
[![Join the chat at Discord](https://img.shields.io/badge/chat-on%20discord-7289DA.svg)](https://discord.gg/3sc5su7)
[![Localise on transifex](https://img.shields.io/badge/localise-on_transifex-green.svg)](https://www.transifex.com/lmms/lmms/)
<div align="center">
<h1>
<img src="https://raw.githubusercontent.com/LMMS/artwork/master/Icon%20%26%20Mimetypes/lmms-64x64.svg" alt="LMMS Logo"><br>LMMS
</h1>
<p>Cross-platform music production software</p>
<p>
<a href="https://lmms.io/">Website</a>
⦁︎
<a href="https://github.com/LMMS/lmms/releases">Releases</a>
⦁︎
<a href="https://github.com/LMMS/lmms/wiki">Developer wiki</a>
⦁︎
<a href="https://lmms.io/documentation">User manual</a>
⦁︎
<a href="https://lmms.io/showcase/">Showcase</a>
⦁︎
<a href="https://lmms.io/lsp/">Sharing platform</a>
</p>
<p>
<a href="https://github.com/LMMS/lmms/actions/workflows/build.yml"><img src="https://github.com/LMMS/lmms/actions/workflows/build.yml/badge.svg" alt="Build status"></a>
<a href="https://lmms.io/download"><img src="https://img.shields.io/github/release/LMMS/lmms.svg?maxAge=3600" alt="Latest stable release"></a>
<a href="https://github.com/LMMS/lmms/releases"><img src="https://img.shields.io/github/downloads/LMMS/lmms/total.svg?maxAge=3600" alt="Overall downloads on Github"></a>
<a href="https://discord.gg/3sc5su7"><img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Join the chat at Discord"></a>
<a href="https://www.transifex.com/lmms/lmms/"><img src="https://img.shields.io/badge/localise-on_transifex-green.svg"></a>
</p>
</div>

What is LMMS?
--------------

LMMS is a free cross-platform alternative to commercial programs like
FL Studio®, which allow you to produce music with your computer. This includes
the creation of melodies and beats, the synthesis and mixing of sounds, and
arranging of samples. You can have fun with your MIDI-keyboard and much more;
all in a user-friendly and modern interface.

[Homepage](https://lmms.io)<br>
[Downloads/Releases](https://github.com/LMMS/lmms/releases)<br>
[Developer Wiki](https://github.com/LMMS/lmms/wiki)<br>
[Artist & User Wiki/Documentation](https://lmms.io/documentation)<br>
[Sound Demos](https://lmms.io/showcase/)<br>
[LMMS Sharing Platform](https://lmms.io/lsp/) Share your songs!
LMMS is an open-source cross-platform digital audio workstation designed for music production. It includes an advanced Piano Roll, Beat Sequencer, Song Editor, and Mixer for composing, arranging, and mixing music. It comes with 15+ synthesizer plugins by default, along with VST(i) and SoundFont2 support.

Features
---------

* Song-Editor for composing songs
* Song-Editor for arranging melodies, samples, patterns, and automation
* Pattern-Editor for creating beats and patterns
* An easy-to-use Piano-Roll for editing patterns and melodies
* A Mixer with unlimited mixer channels and arbitrary number of effects
Expand All @@ -37,22 +45,13 @@ Features
Building
---------

See [Compiling LMMS](https://github.com/LMMS/lmms/wiki/Compiling) on our
wiki for information on how to build LMMS.

See [Compiling LMMS](https://github.com/LMMS/lmms/wiki/Compiling)

Join LMMS-development
----------------------

If you are interested in LMMS, its programming, artwork, testing, writing demo
songs, (and improving this README...) or something like that, you're welcome
to participate in the development of LMMS!
If you are interested in LMMS, its programming, artwork, testing, writing demo songs, (and improving this README...) or something like that, you're welcome to participate in the development of LMMS!

Information about what you can do and how can be found in the
[wiki](https://github.com/LMMS/lmms/wiki).
Information about what you can do and how can be found in the [wiki](https://github.com/LMMS/lmms/wiki).

Before coding a new big feature, please _always_
[file an issue](https://github.com/LMMS/lmms/issues/new) for your idea and
suggestions about your feature and about the intended implementation on GitHub,
or ask in one of the tech channels on Discord and wait for replies! Maybe there are different ideas, improvements, or hints, or
maybe your feature is not welcome/needed at the moment.
Before coding a new big feature, please _always_ [file an issue](https://github.com/LMMS/lmms/issues/new) for your idea and suggestions about your feature and about the intended implementation on GitHub, or ask in one of the tech channels on Discord and wait for replies! Maybe there are different ideas, improvements, or hints, or maybe your feature is not welcome/needed at the moment.
16 changes: 16 additions & 0 deletions data/themes/classic/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ lmms--gui--PianoRoll {
qproperty-noteModeColor: rgb( 255, 255, 255 );
qproperty-noteColor: rgb( 119, 199, 216 );
qproperty-stepNoteColor: #9b1313;
qproperty-currentStepNoteColor: rgb(245, 3, 139);
qproperty-noteTextColor: rgb( 255, 255, 255 );
qproperty-noteOpacity: 128;
qproperty-noteBorders: true; /* boolean property, set false to have borderless notes */
Expand Down Expand Up @@ -796,6 +797,21 @@ lmms--gui--SubWindow > QPushButton:hover{
border-radius: 2px;
}

/* Instrument */

/* Envelope graph */
lmms--gui--EnvelopeGraph {
qproperty-noAmountColor: rgb(96, 91, 96);
qproperty-fullAmountColor: rgb(0, 255, 128);
qproperty-markerFillColor: rgb(153, 175, 255);
qproperty-markerOutlineColor: rgb(0, 0, 0);
}

/* LFO graph */
lmms--gui--LfoGraph {
qproperty-noAmountColor: rgb(96, 91, 96);
qproperty-fullAmountColor: rgb(0, 255, 128);
}

/* Plugins */

Expand Down
16 changes: 16 additions & 0 deletions data/themes/default/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ lmms--gui--PianoRoll {
qproperty-noteModeColor: #0bd556;
qproperty-noteColor: #0bd556;
qproperty-stepNoteColor: #9b1313;
qproperty-currentStepNoteColor: rgb(245, 3, 139);
qproperty-noteTextColor: #ffffff;
qproperty-noteOpacity: 165;
qproperty-noteBorders: false; /* boolean property, set false to have borderless notes */
Expand Down Expand Up @@ -835,6 +836,21 @@ lmms--gui--SubWindow > QPushButton:hover{
border-radius: 2px;
}

/* Instrument */

/* Envelope graph */
lmms--gui--EnvelopeGraph {
qproperty-noAmountColor: rgb(96, 91, 96);
qproperty-fullAmountColor: rgb(0, 255, 128);
qproperty-markerFillColor: rgb(153, 175, 255);
qproperty-markerOutlineColor: rgb(0, 0, 0);
}

/* LFO graph */
lmms--gui--LfoGraph {
qproperty-noAmountColor: rgb(96, 91, 96);
qproperty-fullAmountColor: rgb(0, 255, 128);
}

/* Plugins */

Expand Down
11 changes: 11 additions & 0 deletions include/EnvelopeGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ namespace gui

class EnvelopeGraph : public QWidget, public ModelView
{
Q_OBJECT
Q_PROPERTY(QColor noAmountColor MEMBER m_noAmountColor)
Q_PROPERTY(QColor fullAmountColor MEMBER m_fullAmountColor)
Q_PROPERTY(QColor markerFillColor MEMBER m_markerFillColor)
Q_PROPERTY(QColor markerOutlineColor MEMBER m_markerOutlineColor)

public:
enum class ScalingMode
{
Expand Down Expand Up @@ -68,6 +74,11 @@ class EnvelopeGraph : public QWidget, public ModelView
EnvelopeAndLfoParameters* m_params = nullptr;

ScalingMode m_scaling = ScalingMode::Dynamic;

QColor m_noAmountColor;
QColor m_fullAmountColor;
QColor m_markerFillColor;
QColor m_markerOutlineColor;
};

} // namespace gui
Expand Down
6 changes: 6 additions & 0 deletions include/LfoGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ namespace gui

class LfoGraph : public QWidget, public ModelView
{
Q_OBJECT
Q_PROPERTY(QColor noAmountColor MEMBER m_noAmountColor)
Q_PROPERTY(QColor fullAmountColor MEMBER m_fullAmountColor)

public:
LfoGraph(QWidget* parent);

Expand All @@ -56,6 +60,8 @@ class LfoGraph : public QWidget, public ModelView
QPixmap m_lfoGraph = embed::getIconPixmap("lfo_graph");

float m_randomGraph {0.};
QColor m_noAmountColor;
QColor m_fullAmountColor;
};

} // namespace gui
Expand Down
2 changes: 2 additions & 0 deletions include/PianoRoll.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class PianoRoll : public QWidget
Q_PROPERTY(QColor noteModeColor MEMBER m_noteModeColor)
Q_PROPERTY(QColor noteColor MEMBER m_noteColor)
Q_PROPERTY(QColor stepNoteColor MEMBER m_stepNoteColor)
Q_PROPERTY(QColor currentStepNoteColor MEMBER m_currentStepNoteColor)
Q_PROPERTY(QColor ghostNoteColor MEMBER m_ghostNoteColor)
Q_PROPERTY(QColor noteTextColor MEMBER m_noteTextColor)
Q_PROPERTY(QColor ghostNoteTextColor MEMBER m_ghostNoteTextColor)
Expand Down Expand Up @@ -471,6 +472,7 @@ protected slots:
QColor m_noteModeColor;
QColor m_noteColor;
QColor m_stepNoteColor;
QColor m_currentStepNoteColor;
QColor m_noteTextColor;
QColor m_ghostNoteColor;
QColor m_ghostNoteTextColor;
Expand Down
5 changes: 0 additions & 5 deletions include/StepRecorder.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@ class StepRecorder : public QObject
return m_isRecording;
}

QColor curStepNoteColor() const
{
return QColor(245,3,139); // radiant pink
}

private slots:
void removeNotesReleasedForTooLong();

Expand Down
4 changes: 2 additions & 2 deletions plugins/VstBase/RemoteVstPlugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ endif()

project(RemoteVstPlugin
LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD 17)

include(CheckCXXPreprocessor)
include(CheckCXXSourceCompiles)
Expand Down Expand Up @@ -73,7 +73,7 @@ if(MSVC)
endif()

if(IS_MINGW)
SET(CMAKE_REQUIRED_FLAGS "-std=c++20")
SET(CMAKE_REQUIRED_FLAGS "-std=c++17")
endif()

if(LMMS_BUILD_WIN32)
Expand Down
2 changes: 1 addition & 1 deletion plugins/ZynAddSubFx/zynaddsubfx
Submodule zynaddsubfx updated 1 files
+4 −0 src/UI/common.H
4 changes: 0 additions & 4 deletions src/core/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -367,10 +367,6 @@ int main( int argc, char * * argv )
printf( "LMMS cannot be run as root.\nUse \"--allowroot\" to override.\n\n" );
return EXIT_FAILURE;
}
#endif
#ifdef LMMS_BUILD_LINUX
// don't let OS steal the menu bar. FIXME: only effective on Qt4
QCoreApplication::setAttribute( Qt::AA_DontUseNativeMenuBar );
#endif
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QCoreApplication * app = coreOnly ?
Expand Down
2 changes: 1 addition & 1 deletion src/gui/MixerChannelView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ bool MixerChannelView::confirmRemoval(int index)
ConfigManager::inst()->setValue("ui", "mixerchanneldeletionwarning", state ? "0" : "1");
});

QMessageBox mb(this);
QMessageBox mb;
mb.setText(messageRemoveTrack);
mb.setWindowTitle(messageTitleRemoveTrack);
mb.setIcon(QMessageBox::Warning);
Expand Down
1 change: 1 addition & 0 deletions src/gui/MixerView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ MixerView::MixerView(Mixer* mixer) :
newChannelBtn->setObjectName("newChannelBtn");
newChannelBtn->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
newChannelBtn->setFixedWidth(mixerChannelSize.width());
newChannelBtn->setFocusPolicy(Qt::NoFocus);
connect(newChannelBtn, SIGNAL(clicked()), this, SLOT(addNewChannel()));
ml->addWidget(newChannelBtn, 0);

Expand Down
5 changes: 4 additions & 1 deletion src/gui/editors/PianoRoll.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,9 @@ PianoRoll::PianoRoll() :
m_lineColor( 0, 0, 0 ),
m_noteModeColor( 0, 0, 0 ),
m_noteColor( 0, 0, 0 ),
m_stepNoteColor(0, 0, 0),
m_currentStepNoteColor(245, 3, 139),
m_noteTextColor(0, 0, 0),
m_ghostNoteColor( 0, 0, 0 ),
m_ghostNoteTextColor( 0, 0, 0 ),
m_barColor( 0, 0, 0 ),
Expand Down Expand Up @@ -3596,7 +3599,7 @@ void PianoRoll::paintEvent(QPaintEvent * pe )
// we've done and checked all, let's draw the note
drawNoteRect(
p, x + m_whiteKeyWidth, noteYPos(note->key()), note_width,
note, m_stepRecorder.curStepNoteColor(), m_noteTextColor, m_selectedNoteColor,
note, m_currentStepNoteColor, m_noteTextColor, m_selectedNoteColor,
m_noteOpacity, m_noteBorders, drawNoteNames);
}
}
Expand Down
17 changes: 8 additions & 9 deletions src/gui/instrument/EnvelopeGraph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ namespace gui

EnvelopeGraph::EnvelopeGraph(QWidget* parent) :
QWidget(parent),
ModelView(nullptr, this)
ModelView(nullptr, this),
m_noAmountColor(96, 91, 96),
m_fullAmountColor(0, 255, 128),
m_markerFillColor(153, 175, 255),
m_markerOutlineColor(0, 0, 0)
{
setMinimumSize(m_envGraph.size());
}
Expand Down Expand Up @@ -206,9 +210,7 @@ void EnvelopeGraph::paintEvent(QPaintEvent*)

// Compute the color of the lines based on the amount of the envelope
const float absAmount = std::abs(amount);
const QColor noAmountColor{96, 91, 96};
const QColor fullAmountColor{0, 255, 128};
const QColor lineColor{ColorHelper::interpolateInRgb(noAmountColor, fullAmountColor, absAmount)};
const QColor lineColor{ColorHelper::interpolateInRgb(m_noAmountColor, m_fullAmountColor, absAmount)};

// Determine the line width so that it scales with the widget
// Use the minimum value of the current width and height to compute it.
Expand All @@ -221,14 +223,11 @@ void EnvelopeGraph::paintEvent(QPaintEvent*)
p.drawPolyline(linePoly);

// Now draw all marker on top of the lines
const QColor markerFillColor{153, 175, 255};
const QColor markerOutlineColor{0, 0, 0};

QPen pen;
pen.setWidthF(lineWidth * 0.75);
pen.setBrush(markerOutlineColor);
pen.setBrush(m_markerOutlineColor);
p.setPen(pen);
p.setBrush(markerFillColor);
p.setBrush(m_markerFillColor);

// Compute the size of the circle we will draw based on the line width
const qreal baseRectSize = lineWidth * 3;
Expand Down
8 changes: 4 additions & 4 deletions src/gui/instrument/LfoGraph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ namespace gui

LfoGraph::LfoGraph(QWidget* parent) :
QWidget(parent),
ModelView(nullptr, this)
ModelView(nullptr, this),
m_noAmountColor(96, 91, 96),
m_fullAmountColor(0, 255, 128)
{
setMinimumSize(m_lfoGraph.size());
}
Expand Down Expand Up @@ -143,9 +145,7 @@ void LfoGraph::paintEvent(QPaintEvent*)

// Compute the color of the lines based on the amount of the LFO
const float absAmount = std::abs(amount);
const QColor noAmountColor{96, 91, 96};
const QColor fullAmountColor{0, 255, 128};
const QColor lineColor{ColorHelper::interpolateInRgb(noAmountColor, fullAmountColor, absAmount)};
const QColor lineColor{ColorHelper::interpolateInRgb(m_noAmountColor, m_fullAmountColor, absAmount)};

p.setPen(QPen(lineColor, 1.5));

Expand Down
2 changes: 1 addition & 1 deletion src/gui/tracks/TrackContentWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ void TrackContentWidget::updateBackground()

// draw coarse grid
pmp.setPen( QPen( coarseGridColor(), coarseGridWidth() ) );
for (float x = 0; x < w * 2; x += ppb * coarseGridResolution)
for (float x = 0; x <= w * 2; x += ppb * coarseGridResolution)
{
pmp.drawLine( QLineF( x, 0.0, x, h ) );
}
Expand Down
2 changes: 1 addition & 1 deletion src/gui/tracks/TrackOperationsWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ bool TrackOperationsWidget::confirmRemoval()
ConfigManager::inst()->setValue("ui", "trackdeletionwarning", state ? "0" : "1");
});

QMessageBox mb(this);
QMessageBox mb;
mb.setText(messageRemoveTrack);
mb.setWindowTitle(messageTitleRemoveTrack);
mb.setIcon(QMessageBox::Warning);
Expand Down

0 comments on commit 5bd1ec3

Please sign in to comment.