Skip to content

Commit

Permalink
Merge branch 'dsp56300:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
biggator6 authored Nov 22, 2024
2 parents ff815fe + 0d8f37d commit dda5dd9
Show file tree
Hide file tree
Showing 48 changed files with 1,436 additions and 121 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-12, windows-2019 ]
os: [ ubuntu-latest, macos-13, windows-2019 ]
cmake_generator: [ default, Ninja ]
fail-fast: false
name: ${{ matrix.os }} build with ${{ matrix.cmake_generator }} cmake generator
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-12, windows-2019 ]
os: [ ubuntu-latest, macos-13, windows-2019 ]
fail-fast: true
name: ${{ matrix.os }} build
steps:
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Release

on:
workflow_dispatch:
inputs:
version:
description: "Version number (e.g. 1.4.0)"
required: true

env:
BUILD_TYPE: Release

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ ubuntu-latest, macos-13, windows-2019 ]
fail-fast: true
name: ${{ matrix.os }} build
steps:
- name: Install Dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt update && sudo apt install -y libgl1-mesa-dev xorg-dev libasound2-dev

- uses: actions/checkout@v4
with:
submodules: "recursive"

- name: Set up MSVC compiler
if: matrix.os == 'windows-2019'
uses: ilammy/msvc-dev-cmd@v1

- name: Configure CMake
run: cmake --preset github-${{ runner.os }} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

- name: Build
run: cmake --build --preset github-${{ runner.os }} --parallel 6

- name: Pack
run: cpack --preset github-${{ runner.os }}

- name: Release
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
body_path: ${{github.workspace}}/doc/changelog.txt
draft: true
prerelease: false
name: ${{ github.event.inputs.version }}
tag_name: ${{ github.event.inputs.version }}
files: |
${{github.workspace}}/build/*${{ github.event.inputs.version }}*.zip
${{github.workspace}}/build/*${{ github.event.inputs.version }}*.rpm
${{github.workspace}}/build/*${{ github.event.inputs.version }}*.deb
${{github.workspace}}/doc/changelog.txt
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ if(APPLE)
message("CMAKE_OSX_DEPLOYMENT_TARGET: " ${CMAKE_OSX_DEPLOYMENT_TARGET})
endif()

project(gearmulator VERSION 1.3.22)
project(gearmulator VERSION 1.4.1)

include(base.cmake)
include(CTest)
Expand Down
94 changes: 88 additions & 6 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": 3,
"version": 6,
"configurePresets": [
{
"name": "base",
Expand Down Expand Up @@ -59,28 +59,110 @@
"gearmulator_SYNTH_VAVRA": "OFF",
"gearmulator_SYNTH_XENIA": "OFF"
}
},
{
"name": "github-base",
"displayName": "Executed by github actions",
"binaryDir": "${sourceDir}/build",
"installDir": "${sourceDir}/install",
"cacheVariables": {
"gearmulator_BUILD_JUCEPLUGIN": "ON",
"gearmulator_BUILD_FX_PLUGIN": "ON",

"gearmulator_BUILD_JUCEPLUGIN_CLAP": "ON",
"gearmulator_BUILD_JUCEPLUGIN_VST2": "ON",
"gearmulator_BUILD_JUCEPLUGIN_VST3": "ON",
"gearmulator_BUILD_JUCEPLUGIN_AU": "ON",
"gearmulator_BUILD_JUCEPLUGIN_LV2": "ON",

"gearmulator_SYNTH_NODALRED2X": "OFF",
"gearmulator_SYNTH_OSIRUS": "ON",
"gearmulator_SYNTH_OSTIRUS": "ON",
"gearmulator_SYNTH_VAVRA": "ON",
"gearmulator_SYNTH_XENIA": "OFF"
}
},
{
"name": "github-Windows",
"inherits": "github-base",
"architecture": "x64",
"generator": ""
},
{
"name": "github-macOS",
"inherits": "github-base",
"generator": "Xcode"
},
{
"name": "github-Linux",
"inherits": "github-base",
"generator": ""
}
],
"buildPresets": [
{
"name": "default",
"configurePreset": "default",
"configuration":"Release"
"configuration": "Release"
},
{
"name": "windows-x64",
"inherits":"default",
"inherits": "default",
"configurePreset": "windows-x64"
},
{
"name": "macos",
"inherits":"default",
"inherits": "default",
"configurePreset": "macos"
},
{
"name": "zynthian",
"inherits":"default",
"inherits": "default",
"configurePreset": "zynthian"
},
{
"name": "github-Windows",
"inherits": "default",
"configurePreset": "github-Windows"
},
{
"name": "github-macOS",
"inherits": "default",
"configurePreset": "github-macOS"
},
{
"name": "github-Linux",
"inherits": "default",
"configurePreset": "github-Linux"
}
],
"packagePresets":
[
{
"name": "github-Windows",
"configurePreset": "github-Windows",
"generators":
[
"ZIP"
]
},
{
"name": "github-macOS",
"configurePreset": "github-macOS",
"generators":
[
"ZIP"
]
},
{
"name": "github-Linux",
"configurePreset": "github-Linux",
"generators":
[
"ZIP",
"DEB",
"RPM"
]
}
]
}
}
31 changes: 19 additions & 12 deletions doc/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
Release Notes

1.3.22
1.4.0

Framework:

- [Imp] Upgraded to Juce 8.0.3 which uses Direct2D on Windows for faster UI rendering
- [Imp] Patch Manager now stores its database in the user documents folder, next
to skins and roms:
c:\Users\<username>\Documents\The Usual Suspects\<synthname>\patchmanagerDb (Win)
~/Documents/The Usual Suspects/<synthname>/patchmanagerDb (Mac)
[XDG_DATA_HOME or ~/.local/share]/The Usual Suspects/<synthname>/patchmanagerDb (Linux)
Any existing database in the old location is automatically migrated to
the new one.
c:\Users\<username>\Documents\The Usual Suspects\<synthname>\patchmanager (Win)
~/Documents/The Usual Suspects/<synthname>/patchmanager (Mac)
[XDG_DATA_HOME or ~/.local/share]/The Usual Suspects/<synthname>/patchmanager (Linux)
Any existing database in the old location is automatically migrated to
the new one.
- [Imp] Config file location has been changed and is now located in a subfolder
"config" next to the other folders. Existing configurations in legacy
locations are migrated automatically.
locations are migrated automatically.

OsTIrus:

- [Imp] Cutoff 2 is not displayed as an offset to Cutoff 1 if Cutoff Link is active
NodalRed2x:

- [Fix] Fix duplicated factory presets and lost favourites when switching between
TI2 and Snow mode
- [Fix] LFO2 rate & range didn't have red VM map overlay dots
- [Fix] VM Map overlay dots always displayed values for slot A

Osirus/OsTIrus:

Expand All @@ -32,6 +30,15 @@ Osirus/OsTIrus:
number even if parts were mapped to a different MIDI channel
- [Fix] UI didn't react to MIDI Program Changes

OsTIrus:

- [Imp] Cutoff 2 is not displayed as an offset to Cutoff 1 if Cutoff Link is active

- [Fix] Duplicated factory presets and lost favourites when switching between
TI2 and Snow mode
- [Fix] DSP crashed when loading a patch while parameters are locked
- [Fix] .vtibackup files may have been imported incompletely

Vavra:

- [Imp] Display LFO speed values as bars/beats if in clocked mode
Expand Down
2 changes: 1 addition & 1 deletion source/JUCE
31 changes: 31 additions & 0 deletions source/baseLib/binarystream.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include <array>
#include <cassert>
#include <cstdint>
#include <functional>
Expand Down Expand Up @@ -217,6 +218,13 @@ namespace baseLib
Base::write(reinterpret_cast<const uint8_t*>(&_value), sizeof(_value));
}

template<typename T, typename = std::enable_if_t<std::is_trivially_copyable_v<T>>> void write(const T* _data, const size_t _size)
{
if(!_size)
return;
Base::write(reinterpret_cast<const uint8_t*>(_data), sizeof(T) * _size);
}

template<typename T, typename = std::enable_if_t<std::is_trivially_copyable_v<T>>> void write(const std::vector<T>& _vector)
{
const auto size = static_cast<SizeType>(_vector.size());
Expand Down Expand Up @@ -259,6 +267,19 @@ namespace baseLib
return v;
}

template<typename T, typename = std::enable_if_t<std::is_trivially_copyable_v<T>>> T& read(T& _dst)
{
Base::read(reinterpret_cast<uint8_t*>(&_dst), sizeof(_dst));
checkFail();
return _dst;
}

template<typename T, typename = std::enable_if_t<std::is_trivially_copyable_v<T>>> void read(T* _out, const size_t _size)
{
if(_size)
Base::read(reinterpret_cast<uint8_t*>(_out), sizeof(T) * _size);
}

template<typename T, typename = std::enable_if_t<std::is_trivially_copyable_v<T>>> void read(std::vector<T>& _vector)
{
const auto size = read<SizeType>();
Expand Down Expand Up @@ -292,6 +313,16 @@ namespace baseLib
return strcmp(res, _str) == 0;
}

void read4CC(std::array<char, 5>& _fourCC)
{
_fourCC.fill(0);

_fourCC[0] = read<char>();
_fourCC[1] = read<char>();
_fourCC[2] = read<char>();
_fourCC[3] = read<char>();
}

template<size_t N, std::enable_if_t<N == 5, void*> = nullptr>
void read4CC(char (&_str)[N])
{
Expand Down
Loading

0 comments on commit dda5dd9

Please sign in to comment.