Skip to content

Commit

Permalink
Merge branch 'devel'
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrolcl committed Sep 24, 2024
2 parents c51bb60 + 4a89206 commit a8ce78a
Show file tree
Hide file tree
Showing 18 changed files with 164 additions and 49 deletions.
69 changes: 69 additions & 0 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: Build on Linux

on:
push:
branches: [ "devel", "master" ]
pull_request:
branches: [ "devel", "master" ]
workflow_dispatch:

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: RelWithDebInfo
DRUMSTICKNAME: DrumstickV2
SONIVOXNAME: SonivoxV3
DRUMSTICK_LOCATION: ${{github.workspace}}/DrumstickV2
SONIVOX_LOCATION: ${{github.workspace}}/SonivoxV3

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: dawidd6/action-download-artifact@v3
with:
name: ${{env.SONIVOXNAME}}-linux
github_token: ${{secrets.GH_PAT}}
repo: pedrolcl/sonivox
workflow: cmake-linux.yml

- name: Extract downloaded files
run: tar xvf ${{env.SONIVOXNAME}}.tar

- uses: dawidd6/action-download-artifact@v3
with:
name: ${{env.DRUMSTICKNAME}}
github_token: ${{secrets.GH_PAT}}
repo: pedrolcl/drumstick
workflow: cmake.yml

- name: Extract downloaded files
run: tar xvf ${{env.DRUMSTICKNAME}}.tar

- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.5.*'

- name: Dependencies
run: sudo apt-get update && sudo apt-get install -yq pkg-config libasound2-dev libpulse-dev

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-DCMAKE_PREFIX_PATH="${{env.DRUMSTICK_LOCATION}};${{env.SONIVOX_LOCATION}}"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "sonivox"]
path = sonivox
url = [email protected]:pedrolcl/sonivox.git
branch = devel
24 changes: 9 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,38 +1,32 @@
cmake_minimum_required(VERSION 3.9)
project( EASSynth
VERSION 1.5.0
VERSION 1.5.1
DESCRIPTION "Sonivox EAS for Linux and Qt" )

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

option(USE_QT "Choose which Qt major version (5 or 6) to prefer. By default uses whatever is found")
option(USE_QT5 "Choose Qt5 instead of Qt6. By default uses Qt6")

include(GNUInstallDirs)

if (USE_QT)
if (NOT (USE_QT EQUAL 5 OR USE_QT EQUAL 6))
message(FATAL_ERROR "Wrong Qt major version. Only 5 and 6 are valid options")
endif()
endif()

if (USE_QT EQUAL 5)
if (USE_QT5)
find_package(QT NAMES Qt5)
elseif (USE_QT EQUAL 6)
find_package(QT NAMES Qt6)
else()
find_package(QT NAMES Qt5 Qt6)
find_package(QT NAMES Qt6)
endif()

find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets REQUIRED)
find_package(Drumstick 2.7 COMPONENTS ALSA REQUIRED)
find_package(Drumstick 2.9 COMPONENTS ALSA REQUIRED)
message(STATUS "Using Drumstick version: ${Drumstick_VERSION}")
find_package(PkgConfig REQUIRED)
pkg_check_modules(PULSE REQUIRED IMPORTED_TARGET libpulse-simple)

find_package(sonivox 3.6.12 CONFIG)
find_package(sonivox 3.6.13 CONFIG)
if (NOT sonivox_FOUND)
add_subdirectory(sonivox)
message(FATAL_ERROR "Sonivox library not found")
#alternative: use sonivox as a git submodule:
#add_subdirectory(sonivox)
endif()
message(STATUS "Using Sonivox version: ${sonivox_VERSION}")
add_subdirectory(libsvoxeas)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ To build, test and debug you may also find QtCreator interesting. You may also u
Licenses
--------

Copyright (C) 2016-2023 Pedro López-Cabanillas.
Copyright (C) 2016-2024 Pedro López-Cabanillas.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion cmdlnsynth/main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion guisynth/main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
5 changes: 4 additions & 1 deletion guisynth/mainwindow.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -44,6 +44,9 @@ MainWindow::MainWindow(QWidget *parent) :
ui->combo_Chorus->addItem(QStringLiteral("None"), -1);
ui->combo_Chorus->setCurrentIndex(4);

ui->libSonivoxVersion->setText(m_synth->renderer()->libVersion());
setWindowTitle(windowTitle() + " v" + qApp->applicationVersion());

connect(ui->combo_Reverb, SIGNAL(currentIndexChanged(int)), SLOT(reverbTypeChanged(int)));
connect(ui->combo_Chorus, SIGNAL(currentIndexChanged(int)), SLOT(chorusTypeChanged(int)));
connect(ui->dial_Reverb, &QDial::valueChanged, this, &MainWindow::reverbChanged);
Expand Down
2 changes: 1 addition & 1 deletion guisynth/mainwindow.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
52 changes: 41 additions & 11 deletions guisynth/mainwindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
<rect>
<x>0</x>
<y>0</y>
<width>273</width>
<height>265</height>
<width>280</width>
<height>290</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>273</width>
<height>265</height>
<width>280</width>
<height>290</height>
</size>
</property>
<property name="windowTitle">
Expand All @@ -25,7 +25,37 @@
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="0">
<item row="3" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lblVersion">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Sonivox Version:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="libSonivoxVersion">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lblReverb">
<property name="text">
<string>Reverb</string>
Expand All @@ -35,7 +65,7 @@
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
Expand All @@ -48,7 +78,7 @@
</property>
</spacer>
</item>
<item row="3" column="2">
<item row="4" column="2">
<widget class="QLabel" name="lblChorus">
<property name="text">
<string>Chorus</string>
Expand All @@ -58,24 +88,24 @@
</property>
</widget>
</item>
<item row="4" column="0">
<item row="5" column="0">
<widget class="QDial" name="dial_Reverb">
<property name="maximum">
<number>32765</number>
</property>
</widget>
</item>
<item row="4" column="2">
<item row="5" column="2">
<widget class="QDial" name="dial_Chorus">
<property name="maximum">
<number>32765</number>
</property>
</widget>
</item>
<item row="5" column="0">
<item row="6" column="0">
<widget class="QComboBox" name="combo_Reverb"/>
</item>
<item row="5" column="2">
<item row="6" column="2">
<widget class="QComboBox" name="combo_Chorus"/>
</item>
<item row="0" column="0" colspan="3">
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/filewrapper.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/filewrapper.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/programsettings.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/programsettings.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/synthcontroller.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion libsvoxeas/synthcontroller.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
36 changes: 26 additions & 10 deletions libsvoxeas/synthrenderer.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
Sonivox EAS Synthesizer for Qt applications
Copyright (C) 2016-2023, Pedro Lopez-Cabanillas <[email protected]>
Copyright (C) 2016-2024, Pedro Lopez-Cabanillas <[email protected]>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -16,20 +16,23 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include <QCoreApplication>
#include <QObject>
#include <QReadLocker>
#include <QString>
#include <QCoreApplication>
#include <QTextStream>
#include <QtDebug>
#include <QReadLocker>
#include <QVersionNumber>
#include <QWriteLocker>
#include "eas_reverb.h"
#include "eas_chorus.h"
#include <pulse/simple.h>
#include <pulse/error.h>
#include <QtDebug>

#include <drumstick/sequencererror.h>
#include "synthrenderer.h"
#include <pulse/error.h>
#include <pulse/simple.h>

#include "eas_chorus.h"
#include "eas_reverb.h"
#include "filewrapper.h"
#include "synthrenderer.h"

using namespace drumstick::ALSA;

Expand Down Expand Up @@ -122,7 +125,9 @@ SynthRenderer::initEAS()
m_sampleRate = easConfig->sampleRate;
m_bufferSize = easConfig->mixBufferSize;
m_channels = easConfig->numChannels;
qDebug() << Q_FUNC_INFO << "EAS bufferSize=" << m_bufferSize << " sampleRate=" << m_sampleRate << " channels=" << m_channels;
m_libVersion = easConfig->libVersion;
qDebug() << Q_FUNC_INFO << "Sonivox library:" << libVersion() << "bufferSize:" << m_bufferSize
<< "sampleRate:" << m_sampleRate << "channels:" << m_channels;
}

void
Expand Down Expand Up @@ -197,6 +202,17 @@ void SynthRenderer::uninitPulse()
pa_simple_free(m_pulseHandle);
}

QString SynthRenderer::libVersion() const
{
quint8 v1, v2, v3, v4;
v1 = (m_libVersion >> 24) & 0xff;
v2 = (m_libVersion >> 16) & 0xff;
v3 = (m_libVersion >> 8) & 0xff;
v4 = m_libVersion & 0xff;
QVersionNumber vn{v1, v2, v3, v4};
return vn.toString();
}

SynthRenderer::~SynthRenderer()
{
uninitALSA();
Expand Down
Loading

0 comments on commit a8ce78a

Please sign in to comment.