Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from master #1280

Closed
wants to merge 64 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
1ffb0a6
Fixed: LV2 Synths like Odin-II not responding to automation
terminator356 Jun 18, 2023
55fa6c4
Rewrite functions for using standard cpp libs
donarturo11 Jul 1, 2023
442e996
Fix conversion from string to double
donarturo11 Jul 1, 2023
5b8b7d4
Merge pull request #1122 from donarturo11/hexfloat-to-cpp
terminator356 Jul 3, 2023
8c106b1
hexfloat changes. WORK IN PROGRESS...
terminator356 Jul 3, 2023
852d88f
Fix error in museStringToDouble
terminator356 Jul 3, 2023
6d856a8
Hexfloat values: Rework code with help from donarturo11
terminator356 Jul 6, 2023
5a26b23
Add some locale diagnostic output
terminator356 Jul 18, 2023
e8b62db
More hexfloat and locale rewrites
terminator356 Jul 22, 2023
8f34616
Avoid conflicts with SP_ERROR in windows
donarturo11 Jul 24, 2023
9976a56
Add WIN32 definition to compile with liblo in Windows
donarturo11 Jul 24, 2023
f3ee082
Fixed midi to log audio controller assignment, such as volume
terminator356 Jul 26, 2023
5a02de2
Merge pull request #1229 from donarturo11/windows-definitions
terminator356 Jul 26, 2023
0befe5e
Add casts to debug substitutions
donarturo11 Jul 24, 2023
9c8bf32
Merge pull request #1230 from donarturo11/debug-substitutions
terminator356 Jul 28, 2023
d0a71eb
Fixed midi remote control: Don't accept note-offs.
terminator356 Jul 31, 2023
7d306bb
Merge branch 'master' of https://github.com/muse-sequencer/muse
terminator356 Jul 31, 2023
01abcb7
Changed all references to the app's site url, help url etc.
terminator356 Jul 31, 2023
c632451
Fixed misc. typos
luzpaz Aug 1, 2023
bd52952
Merge pull request #1231 from luzpaz/typos
terminator356 Aug 1, 2023
2d56c0e
Add follow-up typos
luzpaz Aug 2, 2023
2086dd9
Merge pull request #1232 from luzpaz/typos
terminator356 Aug 2, 2023
5fd1323
Fixed issue 1233: RtAudio 6 compatibility.
terminator356 Aug 3, 2023
53bc9e4
Merge branch 'master' of https://github.com/muse-sequencer/muse
terminator356 Aug 3, 2023
f9425b9
Update hex_float.cpp
terminator356 Aug 9, 2023
fefa4c8
Update CheckIStringStreamHexfloat.cmake
terminator356 Aug 9, 2023
4a05096
Update CheckIStringStreamHexfloat.cmake
terminator356 Aug 9, 2023
aa809c9
Allow building MusE with LV2 and recent kxstudio version
spamatica Aug 18, 2023
2088f4f
Merge pull request #1240 from muse-sequencer/lv2_include_changes
terminator356 Aug 18, 2023
eb96495
New: Midi remote control feature redesigned
terminator356 Aug 29, 2023
f209c29
Slight fix to last commit - new midi remote dialog
terminator356 Aug 29, 2023
131a872
Another slight benign fix to new midi remote
terminator356 Aug 29, 2023
d789787
Fixed issue 1238: Not responding to program MSB from inputs
terminator356 Aug 30, 2023
8faf052
Another fix to Midi Filter dialog and variables
terminator356 Aug 30, 2023
e3446c1
Another midi remote fix, global vs song loading
terminator356 Aug 30, 2023
d39bd17
Another midi remote fix. Not responding to CC step rest.
terminator356 Aug 30, 2023
8dac118
Fixed issue 1106: Running scripts in editors takes way too long
terminator356 Aug 31, 2023
2747fdf
Fix slight typo in lv2host.h
terminator356 Sep 3, 2023
0e6e367
Fluidsynth MESS: Fix deprecated function calls at version >= 2.2
terminator356 Sep 3, 2023
d91e021
Merge branch 'master' of https://github.com/muse-sequencer/muse
terminator356 Sep 3, 2023
61409fc
Remove comments
terminator356 Sep 3, 2023
b116a3a
some updates for MusE 4.2
spamatica Sep 5, 2023
a362f7b
Fix issue 1243 Slow startup. Fix missing simpledrums.
terminator356 Sep 20, 2023
050aa29
Fix issue 1247: Remove 'inline' from 5 mididev.cpp functions
terminator356 Sep 23, 2023
152d863
MusE 4.2.1
spamatica Sep 24, 2023
cb0bce7
LV2: Streamline discovery
terminator356 Sep 25, 2023
08cb89f
Update README
terminator356 Oct 24, 2023
5898f6a
Fix redundant std::move in return statement
Nov 21, 2023
c7600db
Remove comments from last commit
Nov 21, 2023
b7da63c
Added editor scroll up/down, fast up/down + left/right shortcuts
Dec 12, 2023
6b5cbb5
Fixed and enhanced Edirol SD-90 IDF
jkl1337 Jan 14, 2024
eaacde1
Merge pull request #1262 from jkl1337/master
terminator356 Jan 15, 2024
6a4d746
Virtuosity instrument file by Impostor
terminator356 Mar 3, 2024
9bfa8fa
Updated Virtuosity instrument from Impostor
terminator356 Mar 4, 2024
4de7ce2
Add comments to Virtuosity-Drums.idf
terminator356 Mar 4, 2024
0d81ade
Fix issue 1104: Update global pitch shift gui element when loading song
spamatica Apr 26, 2024
7aeb53e
Improve readability
spamatica Apr 26, 2024
52207f8
Merge pull request #1274 from muse-sequencer/issue/issue_1104_globalP…
spamatica Apr 26, 2024
db23769
Fix build with ninja 1.12.0, fix #1276
BSDKaffee May 6, 2024
6131221
Stupid GitHub ui fix.
BSDKaffee May 6, 2024
a038ac2
Merge pull request #1277 from BSDKaffee/ninja-1.12.0-fix
terminator356 May 6, 2024
07bfc4a
Remove more unused headers in confmport.cpp
terminator356 May 6, 2024
41bc8cb
added Roland INTEGRA-7 idf file
spamatica May 13, 2024
8a2cd6a
Merge pull request #1278 from muse-sequencer/instrument_roland_integra-7
spamatica May 13, 2024
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
38 changes: 34 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,27 @@ include (CheckCSourceCompiles)
include(cmake/Summary.cmake)
include(CheckCXXSymbolExists)


# ==================================================================
# Check if C++ istringstream supports hexfloat formatting.
# As of summer 2023, only experimental clang versions support this.
# And C++ is still in the process of adding support.
# ==================================================================
include(cmake/CheckIStringStreamHexfloat.cmake)
# We don't want this variable cached, but the only mechanism for check_cxx_source_runs etc.
# to store in a normal variable (NO_CACHE) is only available in cmake >= 3.25.
# So get rid of the cached variable now.
unset(ISTRINGSTREAM_SUPPORTS_HEXFLOAT CACHE)
check_istringstream_hexfloat(ISTRINGSTREAM_SUPPORTS_HEXFLOAT)
if(ISTRINGSTREAM_SUPPORTS_HEXFLOAT EQUAL 1)
set(HAVE_ISTRINGSTREAM_HEXFLOAT ON)
message("C++ istringstream supports hexfloat.")
else (ISTRINGSTREAM_SUPPORTS_HEXFLOAT EQUAL 1)
message("C++ istringstream does not support hexfloat. Using alternate hexfloat techniques instead.")
endif(ISTRINGSTREAM_SUPPORTS_HEXFLOAT EQUAL 1)
# =========================================================


find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
## FIXME FIXME: For the github automatic build actions:
Expand Down Expand Up @@ -145,9 +166,9 @@ set(CMAKE_SKIP_RULE_DEPENDENCY TRUE)
SET(MusE_VERSION_MAJOR 4)
SET(MusE_VERSION_MINOR 0)
SET(MusE_VERSION_PATCH 0)
SET(MusE_VERSION "4.1")
SET(MusE_VERSION_FULL "4.1")
SET(MusE_INSTALL_NAME "muse-4.1")
SET(MusE_VERSION "4.2.1")
SET(MusE_VERSION_FULL "4.2.1")
SET(MusE_INSTALL_NAME "muse-4.2")
SET(MusE_EXEC_NAME "muse4")

SET(MusE_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
Expand Down Expand Up @@ -453,6 +474,10 @@ if (ENABLE_RTAUDIO)
if (RTAUDIO_FOUND)
include_directories(${RTAUDIO_INCLUDE_DIRS})
set(HAVE_RTAUDIO ON)
# NOTE: RtAudio's package config (.pc) file contains api type flags
# that probably should be used. The header file rtaudio.h needs this.
# set(CMAKE_CXX_FLAGS ${RTAUDIO_CFLAGS} ${CMAKE_CXX_FLAGS})
#add_compile_options(${RTAUDIO_CFLAGS})
endif (RTAUDIO_FOUND)
else (ENABLE_RTAUDIO)
message("RTAUDIO disabled")
Expand Down Expand Up @@ -543,6 +568,11 @@ endif (ENABLE_VST_VESTIGE)
## LV2 support
##

# Whether to use a cache for LV2 plugins.
# This shouldn't be required and should be pointless.
# It is kept as a sort of placeholder for the code in case we ever need it.
#SET (LV2_USE_PLUGIN_CACHE true)

if (ENABLE_LV2)

set (muse_serd_ver "0.30.0")
Expand Down Expand Up @@ -668,7 +698,7 @@ endif ( ENABLE_INSTPATCH )

if ( ENABLE_MIDNAM )
# Ain't much to do here... yet... Looking at you XSD and therefore Xerces,
# to read the offical midnam DTD document.
# to read the official midnam DTD document.
# Can we get away with just generating the hxx/cxx and slapping only them into the project?
# Or will we have to generate the hxx/cxx here for example (or in our midnam cmake file)
# for machine-specific differences?
Expand Down
51 changes: 51 additions & 0 deletions src/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
13.05.2024
- Added instrument file for the Roland INTEGRA-7 sound module, made by Cookston (rj)
26.04.2024
- Fix issue 1104: Fixed update of UI element for globalPitchShift upon loading song (rj)
11.12.2023
- Shortcuts: Forum request: Added editor scroll up/down, fast up/down + left/right. (Tim)
25.09.2023
- LV2: Streamline discovery. Eliminate duplicate load_world and load_all_plugins. (Tim)
This might make only slightly faster startup time. But code is more proper now.
24.09.2023
*** MusE 4.2.1 ***
23.09.2023
- Fix issue 1247: compilation only succeeds with MODULES_BUILD_STATIC=1 (Tim)
Five undefined symbols. Remove 'inline' from five functions in mididev.cpp
20.09.2023
- Fixed issue 1243 Slow startup: Always rescanning when file contains no plugins. (Tim)
File ladspa_dsp.so was causing rescanning all the time because it is normally empty
until a configuration file is hand-entered by the user.
- Fixed missing simpledrums MESS synth: Moved files automation_mode_toolbar.h/.cpp
from widgets folder to components folder because it contains icons, and simpledrums
uses our widgets library and it is not supposed to contain icons.
10.09.2023
*** MusE 4.2 ***
03.09.2023
- Fluidsynth MESS: Fixed deprecated function calls at version >= 2.2 (Tim)
31.08.2023
- Fixed issue 1106: Running scripts in midi editors takes waaay too long. (Tim)
In Scripts::executeScript(): Changed from applyOperation for each event
which is very slow, to applyOperationGroup just once for the whole lot.
30.08.2023
- Fixed issue 1238: Not responding to program MSB from inputs. (Tim)
Ancient bug, 20 years? Problem with Midi Filter and midiFilterCtrlxxx globals.
28.08.2023
* New: Midi remote control feature redesigned. (Tim)
Now with learning, port, channel, value type trigger/toggle/momentary, global/song settings.
- Also rewrote midi-to-audio controller assignment learning code, to follow these changes.
03.08.2023
- Fixed issue 1233: RtAudio 6 compatibility. (Tim)
Tested OK with RtAudio 6.0.1
31.07.2023
- Fixed midi remote control: Don't accept note-offs. (Tim)
Symptoms were: Double step-record entries, transport record toggling, double play etc.
- Changed all references to the app's url, help url etc. (Website has changed).
Created ORGANIZATION_URL, ORGANIZATION_HELP_URL, ORGANIZATION_CODE_REPO_URL in config.h.in
26.07.2023
- Fixed broken midi to logarithmic audio controller assignment, such as volume. (Tim)
06.07.2023
- Hexfloat values: Rework code with help from donarturo11. (Tim)
Avoid per-thread thread-safe locale calls (uselocale etc). Not available on mingw for ex.
17.06.2023
- Fixed: LV2 Synths like Odin-II not responding to automation since around 29.04.2023. (Tim)
15.06.2023
- Fixed issue 1121: Undefined symbol ipatch_close. (Tim)
ipatch_close was introduced in libinstpatch 1.1.0
Expand Down
17 changes: 14 additions & 3 deletions src/README
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ details.
MusE is a realtime program which requires special rights to work properly.

- Check if you are running a sufficiently new linux kernel > 2.6.x
A modern, standard destop kernel should suit virtually all needs.
A modern, standard desktop kernel should suit virtually all needs.
For even stricter realtime performance a so-called 'low latency'
or 'realtime' kernel may be available. Check your distro's packages
for availability.
Expand Down Expand Up @@ -425,7 +425,18 @@ details.

Run MusE in a terminal to see what it picks. -D option gives more info.



NOTICE ABOUT 'BAD TIMING' MESSAGE:
----------------------------------
If a message appears at startup informing of 'bad timing' and that the
timing source frequency is too low, try manually loading the ALSA module
snd-hrtimer before starting MusE if you have not started Jack yet.
Like this:
"sudo modprobe snd-hrtimer"
That step should not be necessary if Jack has already been started.
----------------------------------


(The following is old information! But may work for those without udev.)
Make sure you can access the realtime clock (RTC)
chmod 660 /dev/rtc
Expand All @@ -439,7 +450,7 @@ details.
Known bugs:
=============================

The odd weirdness happens and some things may not be completely implemeneted
The odd weirdness happens and some things may not be completely implemented
though we hope it is as stable for you as it is for us!

If you differ in this opinion we are grateful for all reported issues.
Expand Down
2 changes: 1 addition & 1 deletion src/audio_convert/src_resampler/src_converter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ int SRCAudioConverter::process(
{
ERROR_AUDIOCONVERT(stderr,
"SRCAudioConverter::process handle:%p stretch list:%p Too may attempts to process! totalOutFrames:%ld frames:%d\n",
sf_handle, sf_stretch_list, totalOutFrames, frames);
sf_handle, sf_stretch_list, (long int) totalOutFrames, frames);
}

// If we didn't get the desired number of output frames.
Expand Down
15 changes: 15 additions & 0 deletions src/cmake/CheckIStringStreamHexfloat.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
include(CheckCXXSourceRuns)

function(check_istringstream_hexfloat varname)
check_cxx_source_runs("
#include <sstream>
#include <clocale>
int main() {
std::istringstream ss(\"0x1.8p+0\");
ss.imbue(std::locale(\"C\"));
double value = 0.0;
ss >> value;
return value != 1.5;
}
" ${varname})
endfunction()
12 changes: 11 additions & 1 deletion src/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#cmakedefine DSSI_SUPPORT
#cmakedefine LV2_SUPPORT
#cmakedefine LV2_MAKE_PATH_SUPPORT
#cmakedefine LV2_USE_PLUGIN_CACHE
#cmakedefine PYTHON_SUPPORT
#cmakedefine MIDNAM_SUPPORT
#cmakedefine HAVE_INSTPATCH
Expand All @@ -47,12 +48,16 @@
#cmakedefine HAVE_EXP10F
#cmakedefine HAVE_EXP10L
#cmakedefine ALLOW_LEFT_HIDDEN_EVENTS
#cmakedefine HAVE_ISTRINGSTREAM_HEXFLOAT
// #cmakedefine HAVE_M_PI

#define VERSION "${MusE_VERSION_FULL}"
#define GITSTRING "${MusE_GITSTRING}"
#define ORGANIZATION_NAME "MusE"
#define ORGANIZATION_DOMAIN "muse-sequencer.org"
#define ORGANIZATION_DOMAIN "muse-sequencer.github.io"
#define ORGANIZATION_URL "https://muse-sequencer.github.io/"
#define ORGANIZATION_HELP_URL "https://muse-sequencer.github.io/docs/"
#define ORGANIZATION_CODE_REPO_URL "https://github.com/muse-sequencer/muse/"
#define PACKAGE_NAME "MusE"
#define APP_DISPLAY_NAME "MusE"
#define APP_DESCRIPTION "MusE: Linux Music Editor"
Expand All @@ -61,4 +66,9 @@
#define LIBDIR "${MusE_LIB_DIR}"
#define BINDIR "${MusE_BIN_DIR}"
#define VST_SDK_QUIRK_DEF "${VST_SDK_QUIRK}"
#ifdef _WIN32 // in liblo windows code is in WIN32 definition
#ifndef WIN32
#define WIN32
#endif
#endif
#endif // _MUSE_CONFIG_H_
2 changes: 1 addition & 1 deletion src/doc/developer_docs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
%% state in the commit log that you "only" rearranged things.
%%
%% please adhere to the "User's manual" / "Internals" / "Design"
%% partitioning (genereally, don't change the chapters until there
%% partitioning (generally, don't change the chapters until there
%% is a really good reason for doing so (adding a chapter like
%% "feature requests" as flo did in r1497 IS one).
%% Below that, feel free to change the logical arrangement
Expand Down
4 changes: 2 additions & 2 deletions src/doc/documentation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
%% state in the commit log that you "only" rearranged things.
%%
%% please adhere to the "User's manual" / "Internals" / "Design"
%% partitioning (genereally, don't change the chapters until there
%% partitioning (generally, don't change the chapters until there
%% is a really good reason for doing so (adding a chapter like
%% "feature requests" as flo did in r1497 IS one).
%% Below that, feel free to change the logical arrangement
Expand Down Expand Up @@ -223,7 +223,7 @@ \subsubsection{Installation from binaries}
distribution. The drawback of this is that it may not be the most recent
version, though often there is a more recent package from a private packager.
\subsubsection{Installation from source}
Building MusE from source is not hard, there are a number of prerequistes
Building MusE from source is not hard, there are a number of prerequisites
that must be met but the actual building should be painless (ha, famous
last words).\\
Please follow the README in the source package and/or read the instructions
Expand Down
4 changes: 2 additions & 2 deletions src/libs/mpevent/mpevent.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ class MPEventList : public MPEL {
void add(const MidiPlayEvent& ev);
// Optimize to replace duplicate events at ANY time starting from the end of the list.
// Replaces event if it already exists.
// This looks backwards for the first occurance of a similar event and replaces it if found.
// This looks backwards for the first occurrence of a similar event and replaces it if found.
// This is mainly designed for a MidiDevice's queue buffer when the device is 'off' to avoid
// large backlog of events waiting to be sent when the device comes back on. Some event types
// are ignored or handled differently.
Expand Down Expand Up @@ -278,7 +278,7 @@ class SeqMPEventList : public SMPEL {
void add(const MidiPlayEvent& ev);
// Optimize to replace duplicate events at ANY time starting from the end of the list.
// Replaces event if it already exists.
// This looks backwards for the first occurance of a similar event and replaces it if found.
// This looks backwards for the first occurrence of a similar event and replaces it if found.
// This is mainly designed for a MidiDevice's queue buffer when the device is 'off' to avoid
// large backlog of events waiting to be sent when the device comes back on. Some event types
// are ignored or handled differently.
Expand Down
6 changes: 5 additions & 1 deletion src/libs/plugin/plugin_cache_reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,8 +392,9 @@ bool readPluginScanInfo(MusECore::Xml& xml, PluginScanInfoStruct* info, bool rea
// return true on error
//---------------------------------------------------------

bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts, bool readEnums)
bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts, bool readEnums, int *numPlugins)
{
int plugins = 0;
for (;;) {
MusECore::Xml::Token token(xml.parse());
const QString& tag(xml.s1());
Expand All @@ -412,6 +413,7 @@ bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts, bo
{
// We must include all plugins.
list->add(new PluginScanInfo(info));
++plugins;
}
break;
}
Expand All @@ -428,6 +430,8 @@ bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts, bo
case MusECore::Xml::TagEnd:
if (tag == "muse")
{
if(numPlugins)
*numPlugins = plugins;
return false;
}
return true;
Expand Down
4 changes: 2 additions & 2 deletions src/libs/plugin/plugin_cache_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ bool readPluginScanInfoPortEnum(MusECore::Xml& xml, PluginPortInfo* port_info);
bool readPluginScanInfoPort(MusECore::Xml& xml, PluginScanInfoStruct* info);
// Return true on error
bool readPluginScanInfo(MusECore::Xml& xml, PluginScanInfoStruct* info, bool readPorts = false, bool readEnums = false);
// Return true on error
bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts = false, bool readEnums = false);
// Return true on error. If successful, numPlugins, if valid, is set to the number of plugins found.
bool readPluginScan(MusECore::Xml& xml, PluginScanList* list, bool readPorts = false, bool readEnums = false, int *numPlugins = nullptr);

// Read the plugin cache text file to a plugin list.
bool readPluginCacheFile(
Expand Down
Loading