Re: [tim-janik/beast] Feature requests (#44)

2018-08-03 Thread Stefan Westerfeld via beast
Ok, let me just briefly my thoughts here, without providing any implementation. > on mac and windows In the very long run yes. At the moment I think its ok to concentrate on making the linux version better first. We need not support the Gtk UI under Windows/Mac (see below). > vst 1 2 and 3

[tim-janik/beast] Project active state: "green led" broken (#62)

2018-08-13 Thread Stefan Westerfeld via beast
The green led that indicates that the project is active/playing no longer does this. It is always dark now. This is especially annoying for projects that don't output any audio right away ("Stereo Through"), as you don't get any indication that the project is running. It used to work in

Re: [tim-janik/beast] Native SpectMorph Support in Beast (#12)

2018-08-28 Thread Stefan Westerfeld via beast
An updated pull request is available: https://github.com/tim-janik/beast/pull/30 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

[tim-janik/beast] Port Song::loop_right, Song::tick_pointer (#68)

2018-08-27 Thread Stefan Westerfeld via beast
2 more properties ported to C++ You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/68 -- Commit Summary -- * BSE: Song::loop_right: port property to C++ * BEAST-GTK: use C++ property Song::loop_right * BSE: Song::tick_pointer: port

[tim-janik/beast] Smarter property set() implementation (#74)

2018-08-31 Thread Stefan Westerfeld via beast
>From our last BseSong merge: > There's one other thing I noticed during review. With the old GParamSpec + > GObject based property API, the GObject machinery ensures that the GValue > passed in to property setters complies with the GParamSpec value range. With > our IDL API, nothing like that

Re: [tim-janik/beast] Multi audio output module (#73)

2018-09-01 Thread Stefan Westerfeld via beast
Right. If I understand this correctly, then you want this mainly for drum patterns. Currently we allow using the piano roll to sequence a drum patteren, for instance consisting of BD, SD and HH hits. What we currently do is downmix everything before the mixer, so the mixer only sees the mixed

Re: [tim-janik/beast] BEAST: automatically create and connect new bus for new tracks (#16)

2018-09-07 Thread Stefan Westerfeld via beast
Ok, I rebased the branch (more like: manually fixed/recommitted what we need). As you say, it is possible to trigger an undo problem like this: > With your PR applied, the following sequence of actions triggers a warning > for me: > start beast -> Project/New-Song -> Add-Track ->

Re: [tim-janik/beast] can not get sound out of Beast on Ubuntu 18.04 (#80)

2018-09-09 Thread Stefan Westerfeld via beast
Ok, the error message doesn't help much here, because it is about midi not audio. If you'r running kxstudio (I do that too), are you also using - jack - pulseaudio - pulseaudio bridged to jack (for instance using cadence) On my system, I use ``` beast -p alsa=pulse ``` to force beast output to

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-10 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 4084bb6 BSE: fix C++ property loading (float64) -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] Hydrogen import (#41)

2018-09-07 Thread Stefan Westerfeld via beast
We discussed that beast should be able to download pre-converted drumkits at some point. Here is an example tarball, containing two drumkits (the ones that ship with hydrogen itself). The download URL is: http://space.twc.de/~stefan/download/beast-drumkits-pack.tar.xz The tarball contains: -

Re: [tim-janik/beast] Jack driver (#31)

2018-09-04 Thread Stefan Westerfeld via beast
I rebased this branch, you should be able to merge this now without problems. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] Portamento plugin and poly scale properties (rebase) (#28)

2018-09-04 Thread Stefan Westerfeld via beast
I rebased this branch, you should be able to merge this now without problems. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-11 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 36e9df0 BSE: bsebus: avoid chained assignment -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] Eliminate global Soundfont Mutex (#84)

2018-10-17 Thread Stefan Westerfeld via beast
Here is my proposal for fixing this: https://github.com/tim-janik/beast/pull/85 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] BSE: fix undo problems that occur after removing a bus (#82)

2018-10-26 Thread Stefan Westerfeld via beast
Ok, I'll try to give a more detailed account of the events that lead to the bug. For the sake of this discussion, we only need to do three things: * create song * create bus - this will be called **Bus-1** * delete this bus - no undo step will be recorded (which causes problems later) Why? 1.

Re: [tim-janik/beast] Jack driver (#31)

2018-10-02 Thread Stefan Westerfeld via beast
Since you made this a new branch, I'll just add information here instead of committing to my branch. > The howto should mention that users also need to install pavucontrol, jackd2 > and for building libjack-jackd2-dev. Yes. Either this or the corresponding jack1 packages: jackd1 libjack-dev

[tim-janik/beast] BSE: bseitem: fix undo resolve crash (#77)

2018-09-03 Thread Stefan Westerfeld via beast
Fix undo for Song::numerator (and others), which causes a crash (fatal error) after clang related updates. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/77 -- Commit Summary -- * BSE: bseitem: fix undo resolve crash -- File Changes

[tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-03 Thread Stefan Westerfeld via beast
I managed to port all Bus properties that have a simple type (non-object, non-sequence) to C++. There are two things worth mentioning here. (1) in bseapi.idl, we have to use non-computed constants, so there is no elegant way of expressing that the maximum is +24dB - however I think we can live

[tim-janik/beast] BSE: fix undo problems that occur after removing a bus (#82)

2018-09-16 Thread Stefan Westerfeld via beast
To fix the problem, ensure that an appropriate undo step is always recorded. This is a fix for issue https://github.com/tim-janik/beast/issues/79 You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/82 -- Commit Summary -- * BSE: fix undo

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-13 Thread Stefan Westerfeld via beast
Ok, so let me comment on anything that doesn't have to do with the new volume_db/pan properties first. > Thanks Stefan, great to see steady progress here. > > But note that travis-ci shows, that your changes broke the syndrum audio test > in all build variants, please take a look at that.

[tim-janik/beast] BSE: adapt midi import code to use the new Song C++ properties (#81)

2018-09-14 Thread Stefan Westerfeld via beast
Signed-off-by: Stefan Westerfeld You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/81 -- Commit Summary -- * BSE: adapt midi import code to use the new Song C++ properties -- File Changes -- M bse/bsemidifile.cc (8) -- Patch

Re: [tim-janik/beast] can not get sound out of Beast on Ubuntu 18.04 (#80)

2018-09-12 Thread Stefan Westerfeld via beast
One thing you can try is starting ``` beast --bse-driver-list ``` if I remember correctly, beast will by default use the first alsa duplex device on the list. Another thing that could give you more information is starting BEAST like this: ``` BSE_DEBUG=pcm-alsa beast ``` which will show error

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-13 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 5f86778 BSE: bsebus: add a few extra checks to volume/pan conversions -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-13 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 1fab351 BSE: Song: port remaining Bus::master-output set calls -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2018-09-13 Thread Stefan Westerfeld via beast
@swesterfeld pushed 4 commits. 752ee2a BSE: implement Bus::volume_db and Bus::pan properties ea333df BSE: remove Bus::sync property, no longer required due to panning support 39a9064 BEAST-GTK: bstbuseditor: edit volume_db/pan instead of left/right volume 94028c4 RES: add space for editing

Re: [tim-janik/beast] can not get sound out of Beast on Ubuntu 18.04 (#80)

2018-09-13 Thread Stefan Westerfeld via beast
Btw, one observation from my system: the second device in his log was "pulse", and failed to open in duplex mode. This I can reproduce here with beast -p alsa=pulse. I was curious and added a few printf statements to the driver, and it seems that input/output cannot be linked, and snd_pcm_link

Re: [tim-janik/beast] No Audio (#92)

2019-03-10 Thread Stefan Westerfeld via beast
If you are using PulseAudio, everything should work if you start BEAST with `beast -p alsa=pulse` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

[tim-janik/beast] Fluidsynth2 (#101)

2019-04-12 Thread Stefan Westerfeld via beast
This updates the fluidsynth code to fluidsynth >= 2.0.0. This is not backward compatible, BEAST will not build against fluidsynth 1 any longer. The soundfont audio test reference file had to be updated due to a bugfix in fluidsynth 1 related to voice panning. You can view, comment on, or merge

Re: [tim-janik/beast] Doesn't build with fluidsynth 2[.0.4] (#100)

2019-04-15 Thread Stefan Westerfeld via beast
Building against fluidsynth 2 is fixed now https://github.com/tim-janik/beast/commit/4c65148cf152572cd0e7a8e012cd71f4216cda6b -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] Doesn't build with fluidsynth 2[.0.4] (#100)

2019-04-14 Thread Stefan Westerfeld via beast
I've ported the code to fluidsynth >= 2.0.0 and submitted the required changes here: https://github.com/tim-janik/beast/pull/101 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -89,8 +89,24 @@ bus_build_param (BstBusEditor *self, const gchar *editor, const gchar *label) { - GParamSpec *pspec = bse_proxy_get_pspec (self->item, property); - self->params = sfi_ring_prepend

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + if (BSE_IS_SONG (parent)) +{ + BseSong *song = BSE_SONG (parent); + return song->solo_bus == self; +} + return false; +} + +void +BusImpl::solo (bool is_solo) +{ + BseBus *self = as(); + + if (solo() != is_solo) +{ +

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. >if (BSE_IS_SONG (parent)) { BseSong *song = BSE_SONG (parent); BseBus *master = bse_song_find_master (song); - return (self == master); + return self == master; Thanks for the hint, I normally don't need this while

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -681,7 +683,7 @@ SongImpl::remove_bus (BusIface _iface) BseItem *child = bus.as(); BseUndoStack *ustack = bse_item_undo_open (self, __func__); // reset ::master-output property undoable Fixed. -- You are receiving this because you are

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. >Bse::BusImpl *bus = child->as(); + bus->block_property_undo(); Ok, I removed the block/unblock stuff now. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
> Please fix review comments I left for you and remove: > a) the commit introducing the block/unblock API, Done with all code that depends on it. > b) the float64 workaround. Done. > If that means you updated PR is broken, point out the bugs you're runing into > and I'll give you a hand with

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -1335,4 +1337,16 @@ ItemImpl::apply_idl_property_need_undo (const > StringVector ) return !Aida::aux_vector_check_options (kvlist, "", "hints", "skip-undo"); } +void +ItemImpl::block_property_undo() +{ Ok, I just tried to do a 1:1 port so

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -89,8 +89,24 @@ bus_build_param (BstBusEditor *self, const gchar *editor, const gchar *label) { - GParamSpec *pspec = bse_proxy_get_pspec (self->item, property); - self->params = sfi_ring_prepend

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -1003,6 +993,25 @@ BusImpl::BusImpl (BseObject *bobj) : BusImpl::~BusImpl () {} +bool +BusImpl::mute() const +{ + BseBus *self = const_cast (this)->as(); + + return self->muted; +} + +void +BusImpl::mute (bool val) +{ + BseBus *self =

Re: [tim-janik/beast] Bus properties ported to C++ - redone with APPLY_IDL_PROPERTY() macro (#105)

2019-05-31 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -89,8 +89,24 @@ bus_build_param (BstBusEditor *self, const gchar *editor, const gchar *label) { - GParamSpec *pspec = bse_proxy_get_pspec (self->item, property); - self->params = sfi_ring_prepend

Re: [tim-janik/beast] beast start page (#106)

2019-05-21 Thread Stefan Westerfeld via beast
Right. I won't reopen the issue though, as this is a feature request. If you want to file feature requests, use my issue tracker. Use this tracker for bugs only. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-05-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -387,10 +277,6 @@ SoundFontRepoImpl::~SoundFontRepoImpl () delete_fluid_settings (fluid_settings); fluid_settings = NULL; `delete_fluid_settings` is part of the fluid synth api, so I cannot change what it does -- You are

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-05-21 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 9a557418278511ffb21898f1c67fce33b274e0e2 BSE: SF2: avoid global using std::string -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-05-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -12,6 +12,8 @@ #define parse_or_return bse_storage_scanner_parse_or_return +using std::string; Right, I've fixed this now by using std::string - I also tried using Bse::String - this doesn't have any advantage here, as all code is

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-05-21 Thread Stefan Westerfeld via beast
> The reason the GUI blocks instrument changes is that the BSE core hasn't had > support for this yet. If soundfonts can implement changes during runtime, the > associated, we'll of course release that restriction and make it user > accessible. I guess that's better left for another PR, right?

Re: [tim-janik/beast] BSE: SF2: use shared engine module instead of global soundfont lock (#85)

2019-04-30 Thread Stefan Westerfeld via beast
Closed #85. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/pull/85#event-2308859385___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-04-30 Thread Stefan Westerfeld via beast
As requested, I've updated this branch so that it doesn't require fluidsynth >= 2.0.5. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: Constraining properties

2019-04-28 Thread Stefan Westerfeld via beast
Hi! On Sun, Apr 07, 2019 at 02:45:23AM +0200, Tim Janik wrote: > as requested, I've prototyped a basic macro that helps with property setting > by: > > * constraining the property value (for int, float, enum) > * testing for value changes > * pushes undo (untested) > * emitting notification

Re: [tim-janik/beast] Most Bus properties ported to C++ (#78)

2019-05-05 Thread Stefan Westerfeld via beast
> So, to summarize our last meeting: > > * The bus properties should be ported as straight forward as possible, > without adding new functionality / UI. > * The APPLY_IDL_PROPERTY() macro should be used. > > Once you've done this, please re-assign the new code to me. I'm doing this in an new

Re: [tim-janik/beast] Spectmorph plugin (rebase) (#30)

2019-07-10 Thread Stefan Westerfeld via beast
This plugin uses parts of the SpectMorph API that are no longer supported in the upcoming SpectMorph 0.5.0 and above. In 0.4.x, the host can - manage polyphonic instantiation itself, which this BEAST plugin does, i.e. for a track with 16 voices, there are 16 `MorphPlanVoice` instances, each

Re: [tim-janik/beast] Eliminate global Soundfont Mutex (#84)

2019-07-11 Thread Stefan Westerfeld via beast
Closed #84. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/issues/84#event-2475700146___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] Eliminate global Soundfont Mutex (#84)

2019-07-11 Thread Stefan Westerfeld via beast
The global soundfont lock has been eliminated with merging https://github.com/tim-janik/beast/pull/102 so I close this issue. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [tim-janik/beast] One fluid synth per track (#102)

2019-04-23 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. a2451c669e32aae1e4ba91c9b6a7fc3496259a4e BSE: SF2: cleanup sound sont repo code -- You are receiving this because you are subscribed to this thread. View it on GitHub:

[tim-janik/beast] One fluid synth per track (#102)

2019-04-23 Thread Stefan Westerfeld via beast
This gets rid of all bse module locks in the fluid synth code, by using one fluid synth instance per track. I observed that if we load the soundfont every time the user presses play, this can be slow (50ms to load fluid r2 * number of soundfont tracks), so this keeps the fluid synth instances

Re: [tim-janik/beast] BSE: SF2: use shared engine module instead of global soundfont lock (#85)

2019-04-23 Thread Stefan Westerfeld via beast
> In that case, there should be _one_ engine module around the fluid_synth_t > instance, and the other modules should connect to this one module as input. Yes, this PR does about half of what you ask; it uses one shared engine module around the fluid_synth_t instance (good), but on the other

Re: [tim-janik/beast] BSE: SF2: use shared engine module instead of global soundfont lock (#85)

2019-04-17 Thread Stefan Westerfeld via beast
Recently, we discussed this merge request, and you (Tim) said you do not want to merge code that locks a mutex during audio processing due to **priority inversion**. So, what does the lock protect here? There is one global fluid_synth instance that is used by both, the soundfont repo and the

Re: [tim-janik/beast] BSE: SF2: use shared engine module instead of global soundfont lock (#85)

2019-04-17 Thread Stefan Westerfeld via beast
> Why exactly is a mutex needed in the first place, let alone in an engine > module? Because multiple engine modules share state, especially because multiple engine module access the same fluid_synth_t instance, and could (possibly) call API functions on the same fluid synth instance at the

[tim-janik/beast] Reproducable crash using MidiSynth midi channel setting (#111)

2019-08-02 Thread Stefan Westerfeld via beast
1. open menu item "Demo" -> "Midi Test". 2. play 3. hit a few notes on external midi keyboard (produces some sound output) 4. stop 5. change "Midi Test" midi channel to 2 6. play 7. hit a few notes on external midi keyboard -> crash ``` stefan@quadcorn:~/src/beast (master % u=)$ gdb --args

[tim-janik/beast] Property ports for MidiSynth (#112)

2019-08-03 Thread Stefan Westerfeld via beast
This ports all properties of the MidiSynth to C++ (except for object properties SNet/PNet). I had to fix a bug in BsePcmOutput (first commit), because setting the volume on the output object had no effect, but I wanted to test my code. To have 1:1 the same ranges, I introduced constants for

[tim-janik/beast] Properties that have Objects as value are currently not portable to C++ (#113)

2019-08-03 Thread Stefan Westerfeld via beast
As discussed previously, I created one example what happens if I try to port a property that contains an Object to C++. I choose Song postprocessing network as example. ``` stefan@quadcorn:~/src/ghbeast (object-pport-error % u=)$ make -j1 MODE debug CHECKConfiguration

[tim-janik/beast] Ladder Filter (#122)

2019-09-03 Thread Stefan Westerfeld via beast
This is the implementation of a Moog-style lowpass ladderfilter with saturation and 2x oversampling. The number of poles is configurable . Filter modes are available for 6db/octave, 12db/octave, 18db/octave and 24db/octave. I dont have any TODOs left right now, so this could either be the final

[tim-janik/beast] BSE: randomhash.hh: fix compilation on g++ 7.4.0 (#120)

2019-08-28 Thread Stefan Westerfeld via beast
std::string in C++17 cannot be used at compile time, so constexpr is not possible You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/120 -- Commit Summary -- * BSE: randomhash.hh: fix compilation on g++ 7.4.0 -- File Changes -- M

[tim-janik/beast] BSE: add Resampler2 function to reset state (#121)

2019-09-01 Thread Stefan Westerfeld via beast
Currently, if you want to return a Resampler2 object to its initial state (all history values zero), you need to delete the instance and create a new one. This adds a reset() function to the API which has the same effect. Im using this new API in the Ladder filter implementation. You can view,

[tim-janik/beast] Force alsa default device (#123)

2019-09-04 Thread Stefan Westerfeld via beast
This is a fix for #119 - and finally should make beast work out of the box for users which have pulseaudio as default device (for instance together with jack/bridging). For me at least this fixes make run. In order to force using the default device if available, pcm drivers can return a string

[tim-janik/beast] Resampler cleanups (#125)

2019-09-11 Thread Stefan Westerfeld via beast
I cleaned up the resampling code: * the C API was removed * the implementation no longer relies on blockutils, but does its own SSE/FPU handling * Resampler2::create() got an additional argument: true means SSE should be used if available; false means the FPU version should always be used *

Re: [tim-janik/beast] Force alsa default device (#123)

2019-09-12 Thread Stefan Westerfeld via beast
Ok, first of all, I no longer think that changing the auto-detect order for devices can solve our problem. As I understand it for, you - have a duplex (non-default) device you want beast to use - have a alsa non-duplex default device that you don't want beast to use On the other hand, I - have a

Re: [tim-janik/beast] Resampler cleanups (#125)

2019-09-12 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. bee9d0ccd3e6047231d6076c306007d2f44c136d TOOLS: bsewavetool: remove unused resampler include -- You are receiving this because you are subscribed to this thread. View it on GitHub:

[tim-janik/beast] BSE: bsemathsignal: add approximations: Bse::fast_log2 and Bse::fast_exp2 (#124)

2019-09-10 Thread Stefan Westerfeld via beast
First of all, this adds a function that was missing in bsemathsignal: a `fast_log2` implementation. It works by using the float exponent and approximating the rest of the value using a polynomial. I found a tool that gives optimal polynomial coefficients for a given order:

Re: [tim-janik/beast] BSE: bsemathsignal: add approximations: Bse::fast_log2 and Bse::fast_exp2 (#124)

2019-09-11 Thread Stefan Westerfeld via beast
Inserting T=float casts makes the function perform better (at least here). It avoids conversions between single precision and double precision values (i.e. cvtsd2ss) which would otherwise be used. So this version ``` static inline float G_GNUC_CONST fast_log2ff (float value) { union {

Re: [tim-janik/beast] Resampler cleanups (#125)

2019-09-15 Thread Stefan Westerfeld via beast
@swesterfeld pushed 23 commits. 1c10aadd20aadf8412cdcc78d3af3bda304f6e00 BSE: Resampler: remove C API 8980aaafd5755f1413f5d9d0f48845de85111a4b TESTS: resamplehandle: remove Resampler C API test a9962f8acd512896d02cf1908c7e101102a9343c BSE: no longer rely on block utils to create Resampler2

Re: [tim-janik/beast] Resampler cleanups (#125)

2019-09-15 Thread Stefan Westerfeld via beast
Since this PR wasn't merged yet, I simply force pushed an updated version. Since we have no more C API, I could modernize the C++ API. It should be used like this: ``` float input[128]; float output[256]; Resampler2 resampler (Resampler2::UP, Resampler2::PREC_96DB);

Re: [tim-janik/beast] Resampler cleanups (#125)

2019-09-15 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 0e14df11e638c164177b98d00ef34a7d1a08f02f BSE: Resampler2: fix compilation with clang -- You are receiving this because you are subscribed to this thread. View it on GitHub:

[tim-janik/beast] TESTS: testresampler: add header file for test_resampler prototype (#126)

2019-09-17 Thread Stefan Westerfeld via beast
As requested in PR https://github.com/tim-janik/beast/pull/125. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/126 -- Commit Summary -- * TESTS: testresampler: add header file for test_resampler prototype -- File Changes -- M

Re: [tim-janik/beast] Resampler cleanups (#125)

2019-09-17 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > @@ -188,6 +188,12 @@ main (int argc, char *argv[]) bench_aida(); return 0; } + if (argc >= 2 && argv[1] && std::string ("--resampler") == argv[1]) +{ + Bse::init_async (, argv, argv[0], args); + extern int

Re: [tim-janik/beast] Ladder Filter (#122)

2019-09-18 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 14ffd216b25d36e31a1597a05dd297b66f89baba PLUGINS: LadderFilter: port code to new Resampler2 API -- You are receiving this because you are subscribed to this thread. View it on GitHub:

[tim-janik/beast] BSE: driver-alsa.cc: fix crash in retrigger code (#127)

2019-09-17 Thread Stefan Westerfeld via beast
I was playing a bit with the new alsa driver, and I found that for my first hw device, it crashed like this: ``` stefan@quadcorn:~/src/3rd-tree/ghbeast (master *% u=)$ LANG=C beast beast: unable to acquire soft realtime priority: Permission denied beast-0.15.0: bse/bseengineutils.cc:632:

[tim-janik/beast] Part properties ported to C++ (#114)

2019-08-07 Thread Stefan Westerfeld via beast
This is a C++ port of the two Part properties - last_tick and n_channels. I saw there is some signal reemission code in bsetrack.cc, seemingly related to last_tick updates, which looks like this: ``` bse_object_reemit_signal (part, "notify::last-tick", self, "changed"); ...

[tim-janik/beast] Port Super author/license to C++ (#110)

2019-07-28 Thread Stefan Westerfeld via beast
This is the first string property port that uses the `APPLY_IDL_PROPERTY` macro. Since there is no version of `constrain_idl_property` for strings, your code didn't compile when instantiated with strings. So I used C++17 `if constexpr` for checking for the type which compiles now. This means

Re: [tim-janik/beast] Port Super author/license to C++ (#110)

2019-07-28 Thread Stefan Westerfeld via beast
I also don't know how to port sfi_pspec_time typed properties. And copyright looks like it can be removed (?), has a `// COMPAT-FIXME: remove around 0.7.0` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

[tim-janik/beast] Track primitive properties ported to C++ (#109)

2019-07-28 Thread Stefan Westerfeld via beast
I've ported all Track properties to C++ that do not contain object references. Two things are worth mentioning. 1. `Const MIDI_MAX_CHANNEL` - I declared this as constant, but maybe the definition must be moved elsewhere. It seems to be required in bsebasics.idl, too (there is a `// FIXME:

[tim-janik/beast] No sound without -p alsa=pulse (#119)

2019-08-09 Thread Stefan Westerfeld via beast
BEAST for a very long time now refused to produce audio out of the box without the command line args `-p alsa=pulse` - I am using (setup by Cadence) - JACK as primary sound server - PulseAudio bridged to JACK Problems have been reported by other users

[tim-janik/beast] Server properties ported to C++ (#117)

2019-08-08 Thread Stefan Westerfeld via beast
This ports all Server properties. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/117 -- Commit Summary -- * BSE: Server::log_messages: port property to C++ * BEAST-GTK: bstusermessage: use Server::log_messages C++ property * BSE:

[tim-janik/beast] Fluid 2.0.5 update (#108)

2019-07-24 Thread Stefan Westerfeld via beast
Here are the two commits (cherry-picked) which update our code to fluidsynth 2.0.5. This finally uses the new - non deprecated - `fluid_synth_process()`. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/108 -- Commit Summary -- *

spectmorph-0.5.0

2019-07-22 Thread Stefan Westerfeld via beast
spectmorph-0.5.0 has been released. Overview of Changes in spectmorph-0.5.0: * Support user defined instruments - graphical instrument editor - new WavSource operator * Make standard instrument set smaller (less download/disk usage) * Graphical ADSR

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + void + shutdown_callback() + { +is_down_ = true; + } +public: + explicit JackPcmDriver (const String ) : PcmDriver (devid) {} + static PcmDriverP + create (const String ) + { +auto pdriverp = std::make_shared (devid); +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + /* the default device is usually the hardware device, so things should > work as expected + * we could show try to show non-default devices as well, but this could be confusing + */ + if (details.default_device) +{

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
Ok, last commit should have all the fixes you requested. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/pull/128#issuecomment-533811472___ beast

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + } + +/* setup PCM handle or shutdown */ +if (error == 0) + { +flags_ |= Flags::OPENED; + +uint dummy; +pcm_latency (, ); // debugging only: print latency values + } +else + { +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + +/* enable processing in callback (if not already active) */ +atomic_active_ = 1; + +/* report jack driver xruns */ +if (atomic_xruns_ != printed_xruns_) + { +printed_xruns_ = atomic_xruns_; +Bse::printerr

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > +vector silence_buffers > (output_ringbuffer_.get_n_channels()); + +fill (silence_buffers.begin(), silence_buffers.end(), [0]); + +uint frames_written = output_ringbuffer_.write (buffer_frames, _buffers[0]); +if

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. f0c4879177cd50959242cfacc4fd8e5b3288ce14 BSE: Jack: some minor fixes as requested in review -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + std::atomic atomic_active_ {0}; + std::atomic atomic_xruns_ {0}; + int printed_xruns_ = 0; + + bool is_down_ = false; + bool

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + jack_port_set_latency_range (port, mode, ); + } +else + { +jack_latency_range_t range = get_latency_for_ports (output_ports_, mode); +range.min += buffer_frames_; +range.max += buffer_frames_; + +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > +fast_copy (uintn_values, + Data *ovalues, + const Data *ivalues) +{ + copy (ivalues, ivalues + n_values, ovalues); +} + +template<> void +fast_copy (uint n_values, + float *ovalues, +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > +} + +static void +list_jack_drivers (Driver::EntryVec ) +{ + map devices; + jack_client_t *jack_client = connect_jack(); + if (jack_client) +{ + devices = query_jack_devices (jack_client); + disconnect_jack (jack_client); +} +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + +if (!p) // first port + range = port_range; +else + { +range.min = std::min (range.min, port_range.min); +range.max = std::max (range.max, port_range.max); + } + } +

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
swesterfeld commented on this pull request. > + * implemented by two index variables (read_frame_pos and write_frame_pos) + * for which atomic integer reads and writes are required. Since the + * producer thread only modifies the write_frame_pos and the consumer thread + * only modifies the

Re: [tim-janik/beast] Jack driver new api (#128)

2019-09-21 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. a96049760b7b37bc643b6063782203911a2d4b87 BSE: Jack: some minor fixes as requested in review -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] BSE: Jack: add midi driver (#129)

2019-09-27 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 5cb66071c26fc8afe77894f540ca10132a2fbd9c DOCS: add a brief description of how to use our jack midi driver -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] BSE: Jack: add midi driver (#129)

2019-09-27 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 4d72388a85a96d4d4818c05ccaf1056b8bc49fb4 BSE: Jack: allow to disable midi driver auto connect -- You are receiving this because you are subscribed to this thread. View it on GitHub:

  1   2   >