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

Recording after rebase to master #4994

Closed
wants to merge 112 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
8fd89ee
SampleTrack: Uncomment disabled recording-related code.
Reflexe Nov 6, 2017
e86fd69
SampleTrack: Fix TCO not being played on the first tick (if it starts on
Reflexe Nov 6, 2017
34eb63c
AudioJack: Basic implementation of capture (without AUDIO_PORT_SUPPORT)
Reflexe Nov 6, 2017
1720fcd
Mixer & PlayHandle: Support PlayHandle without audioPort and set
Reflexe Nov 6, 2017
7074ac8
Mixer -> pushInputFrames: Add an option to automaticly normalize input
Reflexe Nov 7, 2017
86eb13f
AudioPulseAudio: Switch playback sample type to float and add capture
Reflexe Nov 8, 2017
45a484a
Track -> SampleTrack: Do not save start time offset for empty
Reflexe Nov 8, 2017
c4b69a3
AudioJack: Allocate and deallocate m_tempInBufs.
Reflexe Nov 8, 2017
0a9debc
SampleTrack: Make sure an empty TCO with isRecord would still be
Reflexe Nov 8, 2017
f72c5d9
SampleTrack: Reset the start time offset when importing a new
Reflexe Nov 8, 2017
5241b4b
SampleRecordHandle: Apply start offset to reocrded TCO.
Reflexe Nov 9, 2017
55029bd
Track, TrackView: Instead of trying every possible `dynamic_cast` in
Reflexe Nov 11, 2017
5229868
SampleTrack Recording: Add per SampleTrack and a global fallback for the
Reflexe Jul 30, 2018
e290203
Editor -> Style: Reorder editor buttons.
Reflexe Nov 11, 2017
48fea61
SampleTrack -> RecordingChannel: Remove the default option, instead, all
Reflexe Nov 12, 2017
6feeb4a
SampleTrack: Change recordingChannel menu label.
Reflexe Nov 12, 2017
1bb14b5
SampleTrack: In a case of recording, play a sample TCO even if its
Reflexe Nov 17, 2017
cbd669c
SampleRecordHandle: Obtain the offset to the record with a parameter
Reflexe Nov 17, 2017
ef9d9e8
AudioJack: Fix a deadblock on exporting a sample with different sample
Reflexe Dec 2, 2017
31a69dd
SongEditor: Hide the global channel selection toolbox when capture
Reflexe Dec 2, 2017
52eef80
SongEditor: Hide the record button.
Reflexe Dec 9, 2017
1e9845f
Bugfix - SampleTrack -> Load & Save: Fix recorded sample track not being
Reflexe Dec 16, 2017
7b49167
Bugfix - SampleTrack -> Play: Fix sample track not being played in the
Reflexe Dec 16, 2017
333ba57
SampleTrack -> Recording: Enable per-track record setting and
Reflexe Dec 16, 2017
16dc30b
SampleTrack: On project save, save the values of SampleTrack::m_record
Reflexe Dec 17, 2017
0b2d8a7
SampleTrack -> Minor: Reorder the constructor initialization order to
Reflexe Dec 17, 2017
75f84d6
Travis: Use SDL2 on Windows.
Reflexe Dec 23, 2017
70f2046
Travis -> InstallRaw: Fix Shellcheck warnings.
Reflexe Dec 25, 2017
96ccbfe
Travis -> Linux: Use SDL2 by default.
Reflexe Dec 25, 2017
5f68c8b
CMake -> Install: Install SDL2.dll instead of SDL.dll.
Reflexe Dec 25, 2017
acc1b8e
AudioJack: Connect capture stream to LMMS by default.
Reflexe Feb 24, 2018
715778f
AudioSdl -> Recording - Bugfix: Due to spec.sampleRate being wrong,
Reflexe Feb 24, 2018
79cddac
Style -> SampleTrack Recording: Paint recorded sampletrack red (intead
Reflexe Mar 31, 2018
c881c14
basics: Change sampleFrame to `std::array<sample_t, DEFAULT_CHANNELS>`
Reflexe Apr 9, 2018
84cea2b
SampleBuffer: Internally change buffer to std::vector and support
Reflexe Apr 9, 2018
f394a59
SampleRecordHandle and SampleTrack: Support in-recording updating and
Reflexe Apr 9, 2018
e47cdd2
SampleBuffer: Work around compilation error with libsamplerate 0.1.8
Reflexe Apr 29, 2018
ad3a03e
Recording and SampleTrack: Remove setSampleBuffer and introduce
Reflexe May 7, 2018
7e9a578
MemoryManager: Add == and != operators for MmAllocator.
Reflexe May 7, 2018
ee5981d
Recording: Don't apply masterGain for input frames.
Reflexe May 8, 2018
7118380
SampleTCO -> recording: Export is_record attribute for future loading.
Reflexe May 8, 2018
d588c56
SampleBuffer: fix resampleing error: null output data.
Reflexe May 9, 2018
1b7660d
Cleanup for next commit: Remove the unused AudioSampleRecorder.
Reflexe May 17, 2018
a5b684c
SampleBuffer: Remove the god function "update" and split it into a
Reflexe May 18, 2018
53d3b4c
Mixer: Fix another crash with play handle without an audioPort.
Reflexe May 18, 2018
c615235
SampleRecordHandle: Tell mixer to remove us when we done. With
Reflexe May 18, 2018
58314a4
AudioPortAudio: Support recording.
Reflexe May 19, 2018
0aab43a
SampleTrack: Move per-track slots from SampleTCO to SampleTrack.
Reflexe May 19, 2018
c39ccbb
Song -> Recording with loop: support creating of recording tcos in
Reflexe May 19, 2018
3d9efbb
SampleRecordHandle: Fix a bug when even when not recording, a track set
Reflexe May 19, 2018
f4a70a7
SampleBuffer -> Samplerate - Fix two sample rate issues:
Reflexe May 22, 2018
b1ffa19
AudioJack: Use std::vector for buffer
Reflexe May 23, 2018
210423f
SampleBuffer: Don't use sharedObject
Reflexe May 23, 2018
90c9b74
SampleBuffer: Use JournallingObject
Reflexe Jul 30, 2018
79c20bc
SampleBuffer: Don't normalize any SampleBuffer's sample rate to the
Reflexe May 23, 2018
a26a8df
Windows -> Recording: Enable jack.
Reflexe May 24, 2018
196f000
Travis: Install jack on win32 builds for its headers.
Reflexe May 26, 2018
d0385d6
Song: Fix loops and recording.
Reflexe May 26, 2018
0132e33
Win32 Installer -> Jack: Try to bundle jack installer.
Reflexe May 26, 2018
2ccd530
Support Jack on Windows + Bundled jack Installer (#6)
Reflexe May 26, 2018
ab9a2a3
SampleBuffer: Use `resetData` instead of `beginBufferChange` when
Reflexe Jun 1, 2018
8166e95
SampleBuffer: Make `frames()` thread-safe.
Reflexe Jun 1, 2018
0ba71ca
SampleBuffer & SampleTCOView: Cache visualization while recording.
Reflexe Jun 2, 2018
a356e78
PulseAudio: Disable recording since it produces voices from hell.
Reflexe Jun 2, 2018
6fe3267
AudioSdl: Disable recording in linux since it have a very high latency
Reflexe Jun 2, 2018
3a43158
SampleTrack: Avoid crashes while recording by locking the mixer before
Reflexe Jun 2, 2018
a056dfb
SampleTrackView: Fix visualization not being cleared between recording
Reflexe Jun 2, 2018
d11c826
SamplePlayHandle: Fix export issues by correctly calculating
Reflexe Jun 2, 2018
09f0b0d
SampleTCOView: Implement caching for visualization.
Reflexe Jun 9, 2018
d2d8bd7
SampleTCO -> Recording: Block resize and move actions while recording.
Reflexe Jun 9, 2018
b1fed89
SampleBuffer -> SoundFile: Support mono files, show a warning for
Reflexe Jun 10, 2018
b5123e6
SampleBuffer -> Recording: Use less blocking locks with addData and
Reflexe Jun 11, 2018
8121812
SampleBuffer: Fix mono sample decoding
lukas-w Jul 30, 2018
a4efebc
SampleBuffer::play: Fix freq factor calculation
lukas-w Jul 30, 2018
013d9f4
Remove bundled Jack headers, use system headers instead
lukas-w Jul 30, 2018
46d2233
CMake: Fix finding jack when cross-compiling with non-standard CMake
lukas-w Aug 5, 2018
67d5c77
Fix PatMan patch loading
PhysSong Aug 4, 2018
b6b61eb
Fix setting sample buffer name
PhysSong Aug 4, 2018
7d8d130
Use CMake's file command to download JACK installer
PhysSong Aug 5, 2018
21b9569
MmAllocator: add missing constructors
PhysSong Aug 5, 2018
8200efb
Improve JACK finding logic
PhysSong Aug 5, 2018
dd04ef7
Don't try to resample empty data
PhysSong Aug 6, 2018
60cf294
Fix remaining file name reset issues
PhysSong Aug 6, 2018
e98b133
Fix JACK installer download
PhysSong Aug 14, 2018
2175eac
Improve JACK installation on Windows
PhysSong Aug 14, 2018
6e76182
SampleBuffer: Don't treat an empty file as an error
Reflexe Aug 12, 2018
ca9be24
Bugfix -> SampleBuffer: To avoid arithmetic exception, userWaveSample
Reflexe Aug 13, 2018
1c9b53a
Bugfix -> SampleBuffer: Don't unlock the mixer when it has not been l…
Reflexe Aug 13, 2018
6ee074d
SampleBuffer: Disable automatic up-sampling to the mixer's sample rate.
Reflexe Aug 19, 2018
87239ac
Fix TripleOscillator preset previewing due to nonexistent waveform files
PhysSong Sep 20, 2018
283625c
SampleBuffer: use the RAII pattern when changing its data
PhysSong Nov 22, 2018
3a47ded
LmmsBasics: Move LoopMode here from SampleBuffer.
Reflexe May 7, 2019
e206254
Mixer: Introduce `RequestChangesGuard`: a RAII verion of
Reflexe May 7, 2019
5cfc4a3
SampleBuffer: Seperate the class into 3 internal classes.
Reflexe May 7, 2019
d65c1d0
Oscillator: include lmms_math.h.
Reflexe May 7, 2019
00acb14
Introduce Threading.h and runAsync: std::async using
Reflexe May 22, 2019
aac5600
Introduce UpdatingValue: thread-safe automatically updated value.
Reflexe May 22, 2019
4082d78
Mixer: Add runWhileNotRendering helper.
Reflexe May 22, 2019
67186e2
Engine: Delete the mixer last in order to be able to use requestChanges
Reflexe May 22, 2019
6f36515
SampleBufferPlayInfo: Add m_maybeAudiofile.
Reflexe May 22, 2019
0f8c6d6
Track::createTCO: avoid creating tcos while rendering.
Reflexe May 22, 2019
855b070
SampleBuffer: Make setX functions async, remove get functions
Reflexe May 22, 2019
8dc1475
SampleBuffer & SampleTCO visualization: visualize async only
Reflexe May 22, 2019
1c42efa
Track: put mixer syncs in tco remove/add in order to avoid
Reflexe May 22, 2019
98d1062
SampleRecordHandle: move calls to SampleBuffer's methods
Reflexe May 22, 2019
cd6ad7a
SampleRecordHandle: Add guard before setting startRecordTimeOffset
Reflexe May 23, 2019
7d8fdff
Threading: Add runAccordingToLaunchType helper that will run
Reflexe May 23, 2019
cde4baa
SampleBuffer: Support setX sync operation instead of only async.
Reflexe May 23, 2019
ab180b0
SampleTrack: use sync version of SampleBuffer's setX in order to avoid
Reflexe May 23, 2019
91c6e96
Use LMMS_EXPORT in order to resolve MSVC problems.
Reflexe May 24, 2019
a7236e4
SampleTrack -> QMutex: use tryLock instead of tryLock.
Reflexe May 25, 2019
444e638
AudioFileProcessor: fix saving/loading problems.
Reflexe May 25, 2019
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 .travis/linux..install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -e

PACKAGES="cmake libsndfile-dev fftw3-dev libvorbis-dev libogg-dev libmp3lame-dev
libasound2-dev libjack-jackd2-dev libsdl-dev libsamplerate0-dev libstk0-dev stk
libasound2-dev libjack-jackd2-dev libsdl2-dev libsamplerate0-dev libstk0-dev stk
libfluidsynth-dev portaudio19-dev g++-multilib libfltk1.3-dev
libgig-dev libsoundio-dev qt59base qt59translations qt59tools"

Expand Down
27 changes: 27 additions & 0 deletions .travis/linux.win.install_raw.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

while read -r PACKAGE_URL_AND_OPTS; do
pushd "$PWD"
IFS=',' read -ra PACKAGE_URL_AND_OPTS <<< "$PACKAGE_URL_AND_OPTS"

PACKAGE_URL="${PACKAGE_URL_AND_OPTS[0]}"
OPTS="${PACKAGE_URL_AND_OPTS[1]}"

echo "Downloading $PACKAGE_URL ..."

mkdir PACKAGE_URL_TEMP
cd PACKAGE_URL_TEMP || exit 1

curl "$PACKAGE_URL" | tar xfz -
dir_name=$(ls)
cd "$dir_name" || exit 1

echo "Installing package $dir_name (make ${OPTS}) ..."

# shellcheck disable=SC2086
sudo make $OPTS

popd
rm -rf PACKAGE_URL_TEMP
done <<< "$MANUAL_PACKAGES_URLS"

6 changes: 5 additions & 1 deletion .travis/linux.win32.install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ MINGW_PACKAGES="mingw32-x-sdl mingw32-x-libvorbis mingw32-x-fluidsynth mingw32-x
mingw32-x-libgig mingw32-x-libsoundio mingw32-x-lame mingw32-x-qt5base"

# swh build dependencies
SWH_PACKAGES="perl libxml2-utils libxml-perl liblist-moreutils-perl"
SWH_PACKAGES="perl libxml2-utils libxml-perl liblist-moreutils-perl libjack-dev"

export MANUAL_PACKAGES_URLS="https://www.libsdl.org/release/SDL2-devel-2.0.7-mingw.tar.gz,install-package arch=i686-w64-mingw32 prefix=/opt/mingw32"

export MINGW_PACKAGES

Expand All @@ -20,6 +22,8 @@ PACKAGES="nsis cloog-isl libmpc3 qt4-linguist-tools mingw32 $MINGW_PACKAGES $SWH
# shellcheck disable=SC2086
sudo apt-get install -y $PACKAGES

"$TRAVIS_BUILD_DIR/.travis/linux.win.install_raw.sh"

# ccache 3.2 is needed because mingw32-x-gcc is version 4.9, which causes cmake
# to use @file command line passing, which in turn ccache 3.1.9 doesn't support
pushd /tmp
Expand Down
4 changes: 4 additions & 0 deletions .travis/linux.win64.install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@ MINGW_PACKAGES="mingw64-x-sdl mingw64-x-libvorbis mingw64-x-fluidsynth mingw64-x
mingw64-x-fftw mingw64-x-flac mingw64-x-fltk mingw64-x-libsamplerate
mingw64-x-pkgconfig mingw64-x-binutils mingw64-x-gcc mingw64-x-runtime
mingw64-x-libgig mingw64-x-libsoundio mingw64-x-lame mingw64-x-qt5base"

export MANUAL_PACKAGES_URLS="https://www.libsdl.org/release/SDL2-devel-2.0.7-mingw.tar.gz,install-package arch=x86_64-w64-mingw32 prefix=/opt/mingw64"

export MINGW_PACKAGES

"$TRAVIS_BUILD_DIR/.travis/linux.win.download.sh" win64

# shellcheck disable=SC2086
sudo apt-get install -y $MINGW_PACKAGES

"$TRAVIS_BUILD_DIR/.travis/linux.win.install_raw.sh"
52 changes: 40 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ ENDIF(LMMS_BUILD_APPLE)

IF(LMMS_BUILD_WIN32)
SET(WANT_ALSA OFF)
SET(WANT_JACK OFF)
SET(WANT_JACK ON)
SET(WANT_PULSEAUDIO OFF)
SET(WANT_SNDIO OFF)
SET(WANT_SOUNDIO OFF)
Expand Down Expand Up @@ -140,7 +140,7 @@ CHECK_INCLUDE_FILES(locale.h LMMS_HAVE_LOCALE_H)

LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")

FIND_PACKAGE(Qt5 COMPONENTS Core Gui Widgets Xml REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS Core Gui Widgets Xml Concurrent REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS LinguistTools QUIET)

INCLUDE_DIRECTORIES(
Expand Down Expand Up @@ -382,21 +382,49 @@ ENDIF(NOT LMMS_HAVE_ALSA)
IF(WANT_JACK)
PKG_CHECK_MODULES(JACK jack>=0.77)
IF(JACK_FOUND)
IF(WANT_WEAKJACK)
SET(LMMS_HAVE_WEAKJACK TRUE)
SET(WEAKJACK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/3rdparty/weakjack/weakjack)
SET(STATUS_JACK "OK")
SET(LMMS_HAVE_JACK TRUE)
ELSE()
SET(JACK_INCLUDE_DIRS "")
SET(STATUS_JACK "not found, please install libjack0.100.0-dev (or similar) "
"if you require JACK support or enable weak jack")
ENDIF()
IF(WANT_WEAKJACK)
SET(WEAKJACK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/3rdparty/weakjack/weakjack)

# We only need Jack's header files, so finding the host's headers in the case
# of cross-compiling is fine.
find_path(JACK_INCLUDE_DIR NAMES jack/jack.h PATHS /usr/include ${JACK_INCLUDE_DIRS} CMAKE_FIND_ROOT_PATH_BOTH)
IF(JACK_INCLUDE_DIR)
SET(STATUS_JACK "OK (weak linking enabled)")
# use dlsym instead
SET(JACK_LIBRARIES ${CMAKE_DL_LIBS})
SET(LMMS_HAVE_JACK TRUE)
SET(LMMS_HAVE_WEAKJACK TRUE)

IF(NOT CMAKE_CROSSCOMPILING)
SET(JACK_INCLUDE_DIRS "${JACK_INCLUDE_DIR}")
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
# We're cross-compiling but possibly using the host's jack
# library, so we need to use "-idirafter" to avoid conflicts
# between the host's and the target's header files. -idirafter
# will make sure that ${JACK_INCLUDE_DIR} is only considered for
# #include instructions after all other search directories have
# been exhausted. With normal "-I", we end up including the
# host's standard library header files, leading to confusing
# compilation errors due to conflicting declarations.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -idirafter ${JACK_INCLUDE_DIR}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -idirafter ${JACK_INCLUDE_DIR}")
ELSE()
SET(STATUS_JACK "Host's jack headers were found, but you're using an unknown cross-compiler. Try to use MinGW or supply a jack library for the target architecture at ${CMAKE_FIND_ROOT_PATHS}")
SET(LMMS_HAVE_JACK FALSE)
SET(LMMS_HAVE_WEAKJACK FALSE)
ENDIF()
ELSE()
SET(STATUS_JACK "OK")
SET(STATUS_JACK "no jack headers found, please install libjack0.100.0-dev (or similar) ")
SET(LMMS_HAVE_JACK)
ENDIF()
SET(LMMS_HAVE_JACK TRUE)
ELSE(JACK_FOUND)
SET(JACK_INCLUDE_DIRS "")
SET(STATUS_JACK "not found, please install libjack0.100.0-dev (or similar) "
"if you require JACK support")
ENDIF(JACK_FOUND)
ENDIF()
ENDIF(WANT_JACK)

# check for FFTW3F-library
Expand Down
24 changes: 22 additions & 2 deletions cmake/nsis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
\\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\"
\\\${IfNot} \\\${AtMostWin7}
WriteRegDWORD HKLM \\\"Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\SideBySide\\\" \\\"PreferExternalManifest\\\" \\\"1\\\"
\\\${EndIf}
" PARENT_SCOPE)
\\\${EndIf}")
SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
\\\${unregisterExtension} \\\".mmp\\\" \\\"${PROJECT_NAME_UCASE} Project\\\"
\\\${unregisterExtension} \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\"
Expand Down Expand Up @@ -74,6 +73,27 @@ IF(LMMS_HAVE_STK)
INSTALL(FILES ${RAWWAVES} DESTINATION "${DATA_DIR}/stk/rawwaves")
ENDIF()

# Bundle jack
Copy link
Member Author

@Reflexe Reflexe May 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we drop jack bundling? I was sure it was a good idea back then, right now it does look bizarre.

IF(LMMS_BUILD_WIN32 AND WANT_JACK)
SET(JACK_INSTALLER_TAG "1.9.11")
SET(JACK_INSTALLER_FILENAME "Jack_v1.9.11_32_setup.exe")
IF(LMMS_BUILD_WIN64)
SET(JACK_INSTALLER_FILENAME "Jack_v1.9.11_64_setup.exe")
ENDIF()

INSTALL(CODE
"FILE(DOWNLOAD
\"https://github.com/jackaudio/jackaudio.github.com/releases/download/${JACK_INSTALLER_TAG}/${JACK_INSTALLER_FILENAME}\"
\"${CMAKE_BINARY_DIR}/${JACK_INSTALLER_FILENAME}\"
)"
)
INSTALL(FILES "${CMAKE_BINARY_DIR}/${JACK_INSTALLER_FILENAME}" DESTINATION .)
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}
ExecWait '\\\"$INSTDIR\\\\${JACK_INSTALLER_FILENAME}\\\" /install'")
ENDIF()

SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)

INSTALL(FILES "lmms.exe.manifest" DESTINATION .)
INSTALL(FILES "lmms.VisualElementsManifest.xml" DESTINATION .)
INSTALL(DIRECTORY "assets" DESTINATION .)
1 change: 1 addition & 0 deletions data/themes/default/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,7 @@ TrackContentObjectView {
qproperty-textColor: #fff;
qproperty-textBackgroundColor: rgba(0, 0, 0, 75);
qproperty-textShadowColor: rgba(0,0,0,200);
qproperty-recordingBackgroundColor: rgba(139,25,25,0.38);
qproperty-gradient: false; /* boolean property, set true to have a gradient */

font-size: 11px;
Expand Down
8 changes: 8 additions & 0 deletions include/AudioJack.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
#include <QtCore/QList>
#include <QtCore/QMap>

#include <memory>

#include "AudioDevice.h"
#include "AudioDeviceSetupWidget.h"

Expand Down Expand Up @@ -102,6 +104,9 @@ private slots:
void * _udata );
static void shutdownCallback( void * _udata );

void connectJackPort (const char *outputPort,
const char *inputPort,
const char *portName);

jack_client_t * m_client;

Expand All @@ -110,7 +115,10 @@ private slots:

MidiJack *m_midiClient;
QVector<jack_port_t *> m_outputPorts;
QVector<jack_port_t *> m_inputPorts;
jack_default_audio_sample_t * * m_tempOutBufs;
jack_default_audio_sample_t * * m_tempInBufs;
std::vector<sampleFrame> m_inBuffer;
surroundSampleFrame * m_outBuf;

f_cnt_t m_framesDoneInCurBuf;
Expand Down
6 changes: 4 additions & 2 deletions include/AudioPulseAudio.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,16 @@ class AudioPulseAudio : public QThread, public AudioDevice


void streamWriteCallback( pa_stream * s, size_t length );
void streamReadCallback(pa_stream *s, size_t length);

void signalConnected( bool connected );

pa_stream * m_s;
pa_sample_spec m_sampleSpec;

pa_stream * m_recordStream;
pa_sample_spec m_recordSampleSpec;


private:
virtual void startProcessing();
Expand All @@ -87,8 +91,6 @@ class AudioPulseAudio : public QThread, public AudioDevice

volatile bool m_quit;

bool m_convertEndian;

bool m_connected;
QSemaphore m_connectedSemaphore;

Expand Down
59 changes: 0 additions & 59 deletions include/AudioSampleRecorder.h

This file was deleted.

8 changes: 7 additions & 1 deletion include/AutomationTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class AutomationTrack : public Track
}

virtual TrackView * createView( TrackContainerView* );
virtual TrackContentObject * createTCO( const MidiTime & _pos );
virtual TrackContentObject * unsafeCreateTCO( const MidiTime & _pos );

virtual void saveTrackSpecificSettings( QDomDocument & _doc,
QDomElement & _parent );
Expand All @@ -61,13 +61,19 @@ class AutomationTrack : public Track

class AutomationTrackView : public TrackView
{
Q_OBJECT
public:
AutomationTrackView( AutomationTrack* at, TrackContainerView* tcv );
virtual ~AutomationTrackView() = default;

virtual void dragEnterEvent( QDragEnterEvent * _dee );
virtual void dropEvent( QDropEvent * _de );

virtual void updateTrackOperationsWidgetMenu (TrackOperationsWidget *trackOperations) override;

public slots:
void recordingOn();
void recordingOff();
} ;


Expand Down
2 changes: 1 addition & 1 deletion include/BBTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ class LMMS_EXPORT BBTrack : public Track
virtual bool play( const MidiTime & _start, const fpp_t _frames,
const f_cnt_t _frame_base, int _tco_num = -1 );
virtual TrackView * createView( TrackContainerView* tcv );
virtual TrackContentObject * createTCO( const MidiTime & _pos );
virtual TrackContentObject * unsafeCreateTCO(const MidiTime &_pos);

virtual void saveTrackSpecificSettings( QDomDocument & _doc,
QDomElement & _parent );
Expand Down
4 changes: 4 additions & 0 deletions include/Engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@


#include "lmms_export.h"
#include "lmms_basics.h"

class BBTrackContainer;
class DummyTrackContainer;
Expand Down Expand Up @@ -100,6 +101,9 @@ class LMMS_EXPORT LmmsCore : public QObject
{
return s_framesPerTick;
}

static float framesPerTick (sample_rate_t sample_rate);

static void updateFramesPerTick();

static inline LmmsCore * inst()
Expand Down
1 change: 1 addition & 0 deletions include/EnvelopeAndLfoParameters.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ public slots:
sample_t m_random;
bool m_bad_lfoShapeData;
SampleBuffer m_userWave;
SampleBuffer::InfoUpdatingValue m_userWaveInfo;

enum LfoShapes
{
Expand Down
4 changes: 3 additions & 1 deletion include/InstrumentTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class LMMS_EXPORT InstrumentTrack : public Track, public MidiEventProcessor
virtual TrackView * createView( TrackContainerView* tcv );

// create new track-content-object = pattern
virtual TrackContentObject * createTCO( const MidiTime & _pos );
virtual TrackContentObject * unsafeCreateTCO(const MidiTime &_pos) override ;


// called by track
Expand Down Expand Up @@ -319,6 +319,8 @@ class InstrumentTrackView : public TrackView
QMenu * createFxMenu( QString title, QString newFxLabel );


virtual void updateTrackOperationsWidgetMenu (TrackOperationsWidget *trackOperations) override;

protected:
virtual void dragEnterEvent( QDragEnterEvent * _dee );
virtual void dropEvent( QDropEvent * _de );
Expand Down
Loading