Re: [tim-janik/beast] LiquidSFZ device (#145)

2022-10-09 Thread Stefan Westerfeld via beast
Closed #145. -- Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/pull/145#event-7549618282 You are receiving this because you are subscribed to this thread. Message ID: ___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] LiquidSFZ device (#145)

2022-10-09 Thread Stefan Westerfeld via beast
I've created an Anklang PR here: https://github.com/tim-janik/anklang/pull/7 so I'll close this one. -- Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/pull/145#issuecomment-1272578402 You are receiving this because you are subscribed to this thread.

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

2022-07-29 Thread Stefan Westerfeld via beast
This PR is about jack midi support which is not in Anklang (you only merged a jack pcm driver). -- Reply to this email directly or view it on GitHub: https://github.com/tim-janik/beast/pull/129#issuecomment-1200058166 You are receiving this because you are subscribed to this thread. Message

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

2022-07-29 Thread Stefan Westerfeld via beast
Basically, liquidsfz tries to transparently load hydrogens xml format, and turns its xml content into .sfz opcodes. For instance if you use ``` $ liquidsfz /usr/share/hydrogen/data/drumkits/GMRockKit/drumkit.xml ``` you can use the hydrogen GMRockKit in liquidsfz. This works because a lot of

License Statement

2021-02-26 Thread Stefan Westerfeld via beast
Hi! I'd like to allow re-using my code contributions to BEAST according to this license statement: All of my past & future contributions to the Beast project (https://github.com/tim-janik/beast) may be licensed under the MPL-2.0+/LGPLv2.1+ dual license. Cu... Stefan -- Stefan Westerfeld,

Re: [tim-janik/beast] LV2 support (#149)

2020-11-20 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. af9880a269e559e5be54f0687b7a63cd99d098b5 DEVICES: lv2device: add TODO items -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] LV2 support (#149)

2020-11-20 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 9b9955206e74d6296a269139f17141bff34bceb6 DEVICES: lv2device: call worker interface end_run() at end of run() -- You are receiving this because you are subscribed to this thread. View it on GitHub:

Re: [tim-janik/beast] LV2 support (#149)

2020-11-20 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 784b185608c84c55a8188e1d2c357d28058acb03 DEVICES: lv2device: improve audio input/output channel->bus mapping -- You are receiving this because you are subscribed to this thread. View it on GitHub:

[tim-janik/beast] LV2 support (#149)

2020-11-19 Thread Stefan Westerfeld via beast
Ive been working on LV2 support. This is work in progress, so Im submitting the current version here, while I know the code is somewhat incomplete. As discussed previously, there is no custom UI support yet, and should be added once we have out-of-process support. - the ringbuffer is a copy

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

2020-10-29 Thread Stefan Westerfeld via beast
I'm no longer recommending that we do this, we should rather use the LV2, see also https://github.com/tim-janik/beast/pull/30#issuecomment-718844587 -- 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] Native SpectMorph Support in Beast (#12)

2020-10-29 Thread Stefan Westerfeld via beast
Closed #12. -- 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/12#event-3937103728___ beast mailing list beast@gnome.org

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

2020-10-29 Thread Stefan Westerfeld via beast
I've implemented a preliminary version of a SpectMorph Device for BEAST here: https://github.com/swesterfeld/beast/blob/spectmorph/devices/spectmorph/spectmorph.cc Some things (custom ui/serialization) are not finished. However, there is a general problem that arises if a user uses multiple

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

2020-10-29 Thread Stefan Westerfeld via beast
Closed #30. -- 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/30#event-3937076917___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] LiquidSFZ device (#145)

2020-10-02 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. bd50c86918a28248a88d4d6046b648b9557940ee DEVICES: liquidsfz: use liquidsfz API to stop voices / reset state -- You are receiving this because you are subscribed to this thread. View it on GitHub:

spectmorph-0.5.1

2020-09-22 Thread Stefan Westerfeld via beast
spectmorph-0.5.2 has been released. The two new main features (synchronizing morphing with the song tempo and positional play) are explained here: https://youtu.be/6E4HClXdV_Y If you haven't watched our video tutorial for the instrument editor added in 0.5.0, you can do so here:

[tim-janik/beast] LiquidSFZ device (#145)

2020-08-16 Thread Stefan Westerfeld via beast
Here is an implementation of a LiquidSFZ device. The obvious next step would be allowing the user to specify file. Loading might want to use an extra thread, so that it doesnt block anything. SFZ files can take a long while to load. You can view, comment on, or merge this pull request online

Re: [tim-janik/beast] Support wave-form plotting for BlepSynth (#144)

2020-07-26 Thread Stefan Westerfeld via beast
Just one more comment on this code: I saw that if you use a very small pulse_width and make sync really high then not all pulses will be visible. A higher number of samples would help, but I think we may want to make the minimum pulse width depend on the sync factor (to plot a wider pulse in

[tim-janik/beast] Support wave-form plotting for BlepSynth (#144)

2020-07-26 Thread Stefan Westerfeld via beast
It would be nice if the oscillator wave form (which depends on the oscillator parameters) could be displayed at the UI. Ive ported the necessary plotting code from Python (plotblep.py) to C++. The actual waveform is sampled, so one parameter to tune might be how many samples to use. Or the

Re: [tim-janik/beast] BlepSynth initial implementation (#142)

2020-07-21 Thread Stefan Westerfeld via beast
Closed #142. -- 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/142#event-3570575327___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] BlepSynth initial implementation (#142)

2020-07-21 Thread Stefan Westerfeld via beast
Ok, now that this is merged I think we can close the issue, certainly the other issues can be sorted out later, we can't have everything at once. > > TODO: under some conditions we could enable SSE in LadderVCF (alignment and > > block_size) * > > * Anything needed for that from my part? We

[tim-janik/beast] Blepsynth improvements (#143)

2020-07-18 Thread Stefan Westerfeld via beast
Here is a bunch of new stuff for BlepSynth, I wont try to reproduce the commit entries here. Only a few additional observations: * x^3 non-linear adsr time scaling used to work but now it doesnt probably due to parameter API changes (I didnt try to fix it) * some parameters (octave, unison

Re: Blepsynth Cutoff Range

2020-07-14 Thread Stefan Westerfeld via beast
t to quantize the lower/upper bound to an integer number midi note. Cu... Stefan > > > On 13.07.20 13:13, Stefan Westerfeld via beast wrote: >> I have just added logscale mappings >> >> The mappings you added are obviously useful, especially for millisecond

Re: [tim-janik/beast] BLEP based oscillator (rebase) (#29)

2020-07-13 Thread Stefan Westerfeld via beast
Yes, the main code is merged. There are a few files in this branch but I'll merge them in one of the next iterations of BlepSynth. -- 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] BLEP based oscillator (rebase) (#29)

2020-07-13 Thread Stefan Westerfeld via beast
Closed #29. -- 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/29#event-3539262435___ beast mailing list beast@gnome.org

Re: [tim-janik/beast] Feature Request: support portamento and logscale parameters (#5)

2020-07-13 Thread Stefan Westerfeld via beast
> I have just added logscale mappings The mappings you added are obviously useful, especially for milliseconds (x^3) mappings, but these are *not logscale*. A true logscale mapping plots as line if you `set logscale y` in gnuplot. A true logscale mapping is fully determined by two points, a

Re: [tim-janik/beast] BlepSynth initial implementation (#142)

2020-07-04 Thread Stefan Westerfeld via beast
Btw, one issue I ran into while testing was that the project auto deactivation was triggered. So to be able to test, I disabled the function auto_deactivate in bseproject.cc. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

[tim-janik/beast] BlepSynth initial implementation (#142)

2020-07-04 Thread Stefan Westerfeld via beast
So here is the first version of my BlepSynth subtractive synth. Its based on MinBLEP oscillators and a non-linear Moog VCF (LadderVCF). Obviously this is the initial version and there is still plenty of thing to do, I have put some TODO comments in the code. Once the midi API is available, it

Re: [tim-janik/beast] TESTS: testresampler: fix resampler tests for clang9 (#140)

2020-03-13 Thread Stefan Westerfeld via beast
As additional information, g++-8 also generates different code if you use -mfma. ``` $ out/tests/suite1 --resampler accuracy --fpu --precision=24 --subsample --freq-scan=90,9000,983 --freq-scan-verbose --verbose ## g++ 8.3.0 without fma # accuracy test for factor 2 subsampling using

Re: [tim-janik/beast] TESTS: testresampler: fix resampler tests for clang9 (#140)

2020-03-12 Thread Stefan Westerfeld via beast
> Did you find out _why_ this is needed? > I.e. peeked at the generated assembly to figure if -ffast-math related > options possibly allow transformations that could become problematic for us > in the long term? **Short answer:** I spent some time debugging it, -mfma is causing this - removing

[tim-janik/beast] TESTS: testresampler: fix resampler tests for clang9 (#140)

2020-02-13 Thread Stefan Westerfeld via beast
Relax expected accuracy for 24-bit subsampling from 126 to 124.5 dB, to fix testresampler for clang9. This should fix #139. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/140 -- Commit Summary -- * TESTS: testresampler: fix resampler

spectmorph-0.5.1

2020-02-12 Thread Stefan Westerfeld via beast
spectmorph-0.5.1 has been released. If you haven't watched our video tutorial for the instrument editor added in 0.5.0, you can do so here: https://youtu.be/JlugWYPDp84 This release introduces statically linked generic 64 bit linux plugin binaries, so even if the packages don't match your linux

[tim-janik/beast] TESTS: make time consuming resampler tests run as slow tests (#137)

2020-02-06 Thread Stefan Westerfeld via beast
I made every resampler test that is somewhat slow run as slow test. This reduces the time it takes to execute all resampler tests on my machine from 1.9 seconds to 0.3 seconds if only one cpu is used. Note that although I added ``` if (Bse::Test::slow()) ``` to execute the resamplehandle

[tim-janik/beast] TESTS: testresampler: provide more information if accuracy test fails (#136)

2020-02-05 Thread Stefan Westerfeld via beast
Is this an acceptabe solution for making failed resampler tests report details of why the test failed? You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/136 -- Commit Summary -- * TESTS: testresampler: provide more information if

Re: Resampler uninitialized value

2019-12-28 Thread Stefan Westerfeld via beast
Hi! Am 27.12.19 um 01:21 schrieb Tim Janik: > please note this warning in a recent CI run: > > CXX out/tests/testresamplerq.o > tests/testresamplerq.cc:199:20: warning: 1st function call argument is an > uninitialized value > TASSERT (bse_db_from_factor (rt_up.max_error,

[tim-janik/beast] A few bsefcompare cleanups for cppcheck/scan-build issues (#135)

2019-12-28 Thread Stefan Westerfeld via beast
The first commit really just cleans up the code as suggested by cppcheck, however the second commit fixes an actual bug in the max similarity computation, although for almost everybody the fix is irrelevant. You can view, comment on, or merge this pull request online at:

[tim-janik/beast] TESTS: fix testresamplerq checks, make all failed assertions fatal (#134)

2019-12-27 Thread Stefan Westerfeld via beast
Using assert_return(...) is not good for tests, we want to fail fast if something goes wrong. Signed-off-by: Stefan Westerfeld ste...@space.twc.de You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/134 -- Commit Summary -- * TESTS: fix

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

2019-10-07 Thread Stefan Westerfeld via beast
I believe this is now ready for merging. The midi driver has has the improvements we talked about: * both audio and midi driver now support open without auto connect (using "no-auto-connect" devid) * the "no-auto-connect" [audio|midi] device can be selected in the ebeast preferences dialog *

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

2019-10-06 Thread Stefan Westerfeld via beast
@swesterfeld pushed 2 commits. 616ace2965d53e54721dd3b3d1f6a49045d085fb BSE: Jack: support opening more than one jack driver bba08488dd5331317f314ba924823a25bf04ba90 DOCS: updated jack midi howto -- 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-10-03 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. 3516b54af9a79d7ab6d316d4e3024c3156e03da6 BSE: Jack: support "no-audio-connect" devid for midi and audio drivers -- 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:

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

2019-09-26 Thread Stefan Westerfeld via beast
@swesterfeld pushed 1 commit. ef4bc69f79e9c4504020dcfc531ec285571855a1 BSE: Jack: clean up port names -- You are receiving this because you are subscribed to this thread. View it on GitHub:

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

2019-09-26 Thread Stefan Westerfeld via beast
So here is a midi (input) driver for jack. The audio/midi driver share the same jack client, I documented the assumptions I have to make for the communication of the two in the code. While the audio driver typically only has one option (the default audio device), for midi there can be more than

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] 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. > + +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 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. > +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
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 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. > + } + +/* 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. > + 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. > +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 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) +{

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

2019-09-20 Thread Stefan Westerfeld via beast
Ok, here is a port of the Jack driver (https://github.com/tim-janik/beast/pull/31) to the new driver API. I tested playback and also stereo-through. This doesnt yet have midi support. You can view, comment on, or merge this pull request online at: https://github.com/tim-janik/beast/pull/128

Re: [tim-janik/beast] BSE: driver-alsa.cc: fix buffer for pcm writes during retrigger, fixes #127 (644460e)

2019-09-20 Thread Stefan Westerfeld via beast
This could break if n_channels_ is large (24 or something). -- 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] 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:

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

[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-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:

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 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-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:

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

[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] 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 {

[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:

[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] 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: 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] 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] 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] 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] 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] 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] 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

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] 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

[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] 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] 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] 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] 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. > @@ -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
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. > @@ -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. > @@ -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] 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?

  1   2   >