[LAD] Re: PandaResampler 0.2.0

2024-06-10 Thread Stefan Westerfeld

   Hi!

Am 10.06.24 um 17:39 schrieb Fons Adriaensen:

On Mon, Jun 10, 2024 at 02:31:40PM +0200, Stefan Westerfeld wrote:


Well in that case you can simply download the final tarball:


Meanwhile I got things working with the changes that Marc suggested.

The filters only attenuate 6 dB at half the sample rate.
Is that intentional ?


Yes, the tradeoff here is that if we keep every other sample exactly as 
is while upsampling, there is less work to do, but yes, this also means 
only 6dB at half the sample rate.


Still for oversampling a saturation effect or similar it should be "good 
enough" while from a performance point of view a lot better than other 
resamplers (would still have to benchmark this to prove it, though).


   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] Re: PandaResampler 0.2.0

2024-06-10 Thread Stefan Westerfeld

   Hi!

Am 10.06.24 um 03:31 schrieb Robin Gareus:

On 2024-06-10 03:16, Yuri wrote:

On 6/9/24 15:47, Marc Lavallée wrote:



Why do people still insist on GNU Tools?



mostly to aid cross compilation. It is still the option that sucks least 
for libraries, notably to specify which symbols to expose in a cross 
platform library. Though meson is catching up.


Yes, I can only speak for myself here, but I've been building SpectMorph 
with a MXE cross compile for Windows and normal autotools builds for 
Linux/macOS for many years now and stuff just works. So I use autotools 
for all projects so I don't have to learn multiple tools.


But maybe meson/cmake did catch up in the meantime, I'd have to re-evaluate.

   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] Re: PandaResampler 0.2.0

2024-06-10 Thread Stefan Westerfeld

   Hi!

Am 09.06.24 um 11:51 schrieb Fons Adriaensen:

On Sun, Jun 09, 2024 at 09:50:27AM +0200, Stefan Westerfeld wrote:


PandaResampler 0.2.0 has been released.


./configure: line 16969: syntax error near unexpected token `11,'
./configure: line 16969: `AX_CXX_COMPILE_STDCXX(11, noext, mandatory)'

I'm an absolute NOOB re. autotools...

Ciao,



Well in that case you can simply download the final tarball:

https://github.com/swesterfeld/pandaresampler/releases/download/0.2.0/pandaresampler-0.2.0.tar.gz

This includes configure and doesn't need any fancy dependencies.

However, right now the way this has been designed you really only want 
to copy the stuff from the lib/ directory into whatever project you have 
and just include pandaresampler.hh from there. See:


https://github.com/swesterfeld/pandaresampler/issues/1

So you really don't need autotools at the moment, just use the sources 
as is.


   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] PandaResampler 0.2.0

2024-06-09 Thread Stefan Westerfeld

PandaResampler 0.2.0 has been released.

This is a header only library for C++ which implements fast factor 2, 4 
or 8 upsampling and downsampling based on SSE instructions. I've 
developed the code for my DSP code in Anklang and SpectMorph.


It might be useful for you if you have some DSP loop which needs to be 
oversampled to avoid aliasing.


https://github.com/swesterfeld/pandaresampler
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] SpectMorph 0.6.1

2023-11-01 Thread Stefan Westerfeld

SpectMorph 0.6.1 has been released.

The main changes are:
 - Instrument editor improvements
 - Support for multiple banks for WavSources
 - New standard instruments
 - The code is now hard RT capable
 - UI fixes for macOS

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a
flute; or smooth transitions, for instance a sound that starts as a
trumpet and then gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be
combined using morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 
2.1 or later


Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux, Windows and macOS (Intel 
and Apple Silicon), with CLAP/LV2/VST plugins. Under Linux, there is 
also JACK Support.


Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing
between instruments.

List of Changes in SpectMorph 0.6.1:

 Instrument Editor
* Support click & drag sample to scroll & zoom (#22).
* Support stereo to mono conversion when loading stereo samples (#14).
* Add manual volume editing / normalization.
* Implement automatic selection triggered by midi.

 New instruments
* Bass Flute
* Soprano Saxophone
* Clarinet, Bass Clarinet
* Tenor Trombone
* Viola, Double Bass
* Make samples and meta information for standard instruments available 
on github.


 Improvements
* Support multiple banks for WavSources / instrument editor.
* Avoid allocations in DSP thread to be hard RT capable.
* Allow overriding analysis parameter for frame stepping to get higher 
time resolution.


 Fixes
* Make UI work properly in Ableton Live (and possibly other hosts) on macOS.
* Fix UI scaling problem on M1 macOS builds.
* Fix crash if instrument editor is closed without any samples.
* Fix cases of undefined behaviour.
* Fix timing problems for long notes, reproduce long WavSource notes 
with exact tempo.

* Fix use-after-free for outdated control events.
* Fix freetype related memory leak.

--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] [LAA] Anklang 0.2.0 Released

2023-09-21 Thread Stefan Westerfeld

Anklang version 0.2.0 is released.

Anklang is a digital audio synthesis application for live
creation and composition of music. It is released as Free
Software (MPL-2.0) and runs under Linux.

The real-time sound engine is implemented in C++, the UI runs
in Electronjs, Firefox or Chrome. Assistance with development,
porting or creative efforts is very welcome.

Anklang provides a MIDI sequencer, Undo/Redo capabilities for note 
editing, real-time synthesis, and support for CLAP plugins.


The source code and binary packages are available here:

https://github.com/tim-janik/anklang/releases/tag/v0.2.0

The project website with further resources is at:

https://anklang.testbit.eu/

===

This release has significant improvements to audio synthesis 
capabilities and user interface. The documentation has been improved in 
several places, and automated generation was integrated into the CI.


Audio synthesis enhancements include support for new CLAP (draft) 
extensions, such as transport information and file references. We now 
support non-linear mappings for BlepSynth ADSR times, and a new audio 
plugin Freeverb by Jezar at Dreampoint was added, with fixes to the 
damping mode in the original version. Additionally, a Jack PCM driver 
based on Stefan Westerfelds’ code was integrated.


Performance improvements were achieved by adding a new optimizing memory 
allocator and supporting low-latency scheduling via sched_* or RtKit. 
Saving projects will now automatically create backups of recent versions.


The user interface has also seen significant improvements in this 
release. These include context help via F1 key in various UI components, 
fixes to mouse wheel sensitivity for modern browsers, improved tooltips 
and note editing in the piano roll. The UI can now be zoomed via new 
menu entries, the color palette was updated, and integration of 
TypeScript annotations allowed improving the UI JavaScript code quality.


In terms of packaging, AppImage builds saw major compatibility 
improvements, and we increased the frequency of Nightly releases, 
building from nearly all significant trunk merge commits. We aim to 
generate more regular releases in the future instead of having lots of 
Nightly builds between regular releases.


--
Anklang Free Software DAW:
https://anklang.testbit.eu/
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] spectmorph-0.6.0

2023-05-18 Thread Stefan Westerfeld

spectmorph-0.6.0 has been released.

The new main features are:
 - SpectMorph now provides a CLAP plugin.
 - A filter with different filter modes was added.
 - A new, more flexible modulation system was added.
 - SpectMorph now provides visual feedback for modulated parameters.

Video Tutorial for 0.6.0: https://youtu.be/watch?v=scKrf0o6e6k

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a
flute; or smooth transitions, for instance a sound that starts as a
trumpet and then gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be
combined using morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 
2.1 or later


Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux, Windows and macOS (Intel 
and Apple Silicon), with CLAP/LV2/VST plugins. Under Linux, there is 
also JACK Support.


Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing
between instruments.

List of Changes in SpectMorph 0.6.0:

 New features
* New, more flexible modulation system
* Added filter with different filter modes
* Provide visual feedback for modulated properties
* Provide signed .pkg installers for macOS (Intel and ARM)

 CLAP Plugin
* Provide CLAP Plugin
* Support for per-voice modulation
* Support timestamped modulation/automation events

 LV2 Plugin
* Support LV2 on all platforms
* Fix crashes triggered by Carla (absolute_path/abstract_path returning 
NULL)

* Support newer LV2 development headers

 Minor Changes
* Support "Velocity" as modulation source
* Make pitch bend range configurable
* New Presets with filter: "Cheese Cake Bass", "Liquid Silver"
* Sort midi events by timestamp to workaround Bitwig bug
* Sliders now support shift+drag for fine editing
* Support for Apple Silicon
* Avoid crashes if XOpenIM / XCreateIC return NULL (#15).
* Fix statically linked plugin data directory location (works in flatpak 
apps now).

* Add dockerized MXE builds for windows, bump compiler version to gcc-12.
* Bump minimum C++ standard to C++17
* Fix build on RISC-V (#13)
* Use GitHub CI for Linux, macOS and Windows
* Change license from "LGPL v3 or later" to "LGPL v2.1 or later".
* Minor fixes and cleanups

 Internals: Properties
* Add generic property handling
* Simplify load/save/gui for properties
* Support modulatable properties using ModulationList
* Add gui for editing property value and ModulationList
* MorphPlan is no longer ref-counted, just one instance per Project
* Introduced MorphOperatorConfig objects for cleaner/faster parameter 
updates


 Internals: Filter
* Add two filter types: "Ladder" and "Sallen-Key" filter to output operator
* Integrated PandaResampler for SIMD 4x filter oversampling
* Support modulation with high time resolution for filter

 Internals: UI Toolkit
* Support multiple update regions in UI toolkit
* Optimize drawing for UI toolkit
* Support "software sprites" for efficient visual feedback
* Map Ctrl+Left Click to Right Click on macOS

 Internals: Optimizations
* Pass wav set pointers (instead of strings) to morph linear/grid/source.
* Avoid fmod() for phase truncation.
* Build using -ffast-math
* NotifyBuffer: fast dsp thread -> ui thread notifications (no malloc in 
dsp thread)
* Avoid allocations in dsp thread in many cases (retrigger, noise 
decoder process)
* Support optimized SIMD code on ARM (Apple Silicon), code from Peter 
Johnson (#11)


--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] liquidsfz-0.3.2

2023-04-19 Thread Stefan Westerfeld

liquidsfz-0.3.2 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under MPL-2.0. The release 
tarball can be downloaded here:


https://github.com/swesterfeld/liquidsfz#releases

Overview of Changes in liquidsfz-0.3.2:

* Fix crashes triggered by Carla while saving without path
* Allow multiple overlapping notes during sustain (#38)
* Provide cross compiled LV2 plugin for Windows
* Use LV2_STATE__freePath if available (fixes LV2 on windows)
* Fixes for building on macOS and Windows
* Improve tests and CI checks
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] liquidsfz-0.3.1

2022-07-21 Thread Stefan Westerfeld

liquidsfz-0.3.1 has been released

It turns out that liquidsfz-0.3.0 (only released a few days ago) has one 
bug which can trigger crashes during normal usage, and one bug which 
will trigger crashes when loading the plugin on some linux 
distributions. So I definitely recommend updating to 0.3.1 and not using 
0.3.0 at all.


The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under MPL-2.0. The release 
tarball can be downloaded here:


https://github.com/swesterfeld/liquidsfz#releases

or from github

https://github.com/swesterfeld/liquidsfz/releases/tag/0.3.1

Overview of Changes in liquidsfz-0.3.1:

* Fix crash in voice processing when gain smoothing is active
* Fix crash caused by libstdc++ debug assertions (#34)
* Add missing #include statements (#33, #35)
* Setup CI using github actions, build and lv2lint the plugin
* Add testsynth program for regression tests (make check and CI)
* Support address sanitizer and C++ STL debug checks from autogen.sh
--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] liquidsfz-0.3.0

2022-07-18 Thread Stefan Westerfeld

liquidsfz-0.3.0 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under MPL-2.0. The release 
tarball can be downloaded here:


https://github.com/swesterfeld/liquidsfz#releases

or from github

https://github.com/swesterfeld/liquidsfz/releases/tag/0.3.0

Overview of Changes in liquidsfz-0.3.0:

* Change license to MPL-2.0
* Load sample data on demand (preload start, background load as needed)
* Improve sound quality by using better interpolation / resampling
* Support CC7=Volume and CC10=Pan if not defined in .sfz file (#30)
* Various performance optimizations
* Fix LFO ranges for square like LFOs
* Implement sustain loops (loop_mode=loop_sustain)
* Added new public API functions for new features
* Make it possible to use absolute paths in .sfz file
* Use mmap() for soundfiles on 64bit platforms
* Add a few new commands / command line options to liquidsfz jack client
* Statically linked plugin is compiled using Ubuntu 18.04 (instead of 16.04)
* Minor fixes and cleanups

--
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] liquidsfz-0.2.3

2021-01-27 Thread Stefan Westerfeld
liquidsfz-0.2.3 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under the GNU LGPL version
2.1 or later. The release tarball can be downloaded here:

https://github.com/swesterfeld/liquidsfz#releases

Overview of Changes in liquidsfz-0.2.3:
===
* Implement LFO support
  - old style (amplfo_*, pitchlfo_*, fillfo_*)
  - new style (lfoN_freq, lfoN_pitch,...)
* Preprocessor improvements
  - allow #define / #include in the middle of a line
  - allow to #include the same file twice
  - support C style block comments
* Support curve sections and related opcodes
* Portability changes which should allow building the lib on windows
* Minor fixes and cleanups
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] liquidsfz-0.2.1

2020-10-18 Thread Stefan Westerfeld
liquidsfz-0.2.1 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under the GNU LGPL version
2.1 or later. The release tarball can be downloaded here:

https://github.com/swesterfeld/liquidsfz#releases

Overview of Changes in liquidsfz-0.2.1:
===
* New opcodes: offset / offset_random / offset_ccN / offset_onccN
* Support loading Hydrogen drumkit.xml files
* Make liquidsfz JACK client interactive, support typing commands
* Support building as shared library
* Share the same sample cache between all Synth instances
* Opcode aliases for volume_cc and volume_oncc
* RT cleanups for standard logging (info/warning/error)
* Document threading / RT constraints
* API additions
  - Synth::active_voice_count
  - Synth::all_sound_off
  - Synth::system_reset
* Can build without some features (--without-jack / --without-lv2)
* Fixes
  - make string->double conversion work on any locale
  - preallocate event buffers to avoid malloc for new events
  - allow one parameter to be modulated by multiple CCs
  - don't crash on broken sfz which have uint out of range
  - fix overriding sample loop_mode/loop_start/loop_end
  - constrain ranges for cc/pitch_bend (i.e. enforce cc to [0..127])
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.5.1

2020-09-22 Thread Stefan Westerfeld
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: https://youtu.be/JlugWYPDp84

Overview of Changes in spectmorph-0.5.2:

* Support bpm/beat synchronization for LFO
  - new presets using beat sync LFO: Mars / Saturn
* Add WavSource custom position playback mode
* New Instruments: Sven Ah / Ih / Oh (another male human voice)
* Store data in XDG directories on Linux:
  - move ~/.spectmorph directory to $XDG_DATA_HOME/spectmorph
  - move ~/SpectMorph directory to $XDG_DOCUMENTS_DIR/SpectMorph
  - create $XDG_DOCUMENTS_DIR/SpectMorph directory when needed (on write)
  - backward compatibility: use ~/SpectMorph if it already exists
* Bump number of control inputs from 2 to 4
* Implemented midi CC control for smjack (General Purpose Controller 1..4)
* Fix crashes caused by dangling MorphOperator pointers
* Fix loading floating point wav files
* Minor fixes and cleanups

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a
flute; or smooth transitions, for instance a sound that starts as a
trumpet and then gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be
combined using morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux, Windows and macOS users.
Here is a quick overview of how you can make music using SpectMorph.

- VST Plugin, especially for proprietary solutions that don't support LV2.
  (Available on Linux and 64-bit Windows/macOS)
- LV2 Plugin, for any sequencer that supports it.
- JACK Client.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing
between instruments.
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.5.1

2020-02-12 Thread Stefan Westerfeld
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 version, you
should be able to install these without compiling. This is a new
feature, let me know if it doesn't work for you.

Overview of Changes in spectmorph-0.5.1:

* Add new LFO modes (saw, square, random)
* Support generic 64-bit linux binaries
  - new linux file selector (no longer needs Qt)
  - ship font for static build
* Fix crashes caused by fftw planner being used from multiple threads
* Ported all python2 code to python3
* Support midi all notes off
* Implement LV2 StateChanged
* French translation for smjack desktop file (Olivier Humbert)
* Thread race fix (JP Cimalando)
* Minor fixes and cleanups

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a
flute; or smooth transitions, for instance a sound that starts as a
trumpet and then gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be
combined using morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux, Windows and macOS users.
Here is a quick overview of how you can make music using SpectMorph.

- VST Plugin, especially for proprietary solutions that don't support LV2.
  (Available on Linux and 64-bit Windows/macOS)
- LV2 Plugin, for any sequencer that supports it.
- JACK Client.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing
between instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] liquidsfz-0.2.0

2020-01-16 Thread Stefan Westerfeld
   Hi!

Am 12.01.20 um 18:59 schrieb Benoît Rouits:
> I will update QLiquidSFZ then, to reflect the additions you made.
> Many thanks for this cool library.

Right. The most interesting (difficult) addition from the UI point of
view is probably

>>   - provide list of CCs supported by .sfz file (Synth::list_ccs)

The thing is that CCs can be used to control aspects of the sound, such
as panning or the number of layers used for the sound (i.e. some layers
will be turned on/off by the cc). From an UI point of view it would be
ideal if each CC was displayed as one slider (or knob), so you would
call list_ccs and create a number of sliders/knobs, one for each CC. The
default value provided by liquidsfz would be the initial position of the
slider/knob. If the user turns the slider/knob, then qliquidsfz would
generate CC events for it.

Its a bit tricky because obviously Synth::add_event_cc() cannot be
executed at the same time Synth::process() is running in the JACK
thread. One way to do this is using some kind of queue for the CC
events, so that the JACK process callback can execute them together with
the other midi events before process().

Also in a perfect world if CC events were be received by MIDI, the UI
would update its state. So using an external midi controller would move
the Qt slider/knob widget. Again, this needs to be implemented carefully
in order to be thread safe.

The CC widgets really cannot be done properly by the text UI, this is
why I only display a list there. If you are looking for a program for
inspiration how a UI could look, I'd recommend sforzando for windows.
This can at least give you an idea of the direction to go. I personally
obtained an old version (win_sforzando_v1.822.exe) which runs in wine.
You'll see in the controls tab what I mean if you load a sfz with CCs.

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] liquidsfz-0.2.0

2020-01-12 Thread Stefan Westerfeld
liquidsfz-0.2.0 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client and a LV2 plugin is also available.

liquidsfz is implemented in C++ and licensed under the GNU LGPL version
2.1 or later. The release tarball can be downloaded here:

https://github.com/swesterfeld/liquidsfz#releases

Overview of Changes in liquidsfz-0.2.0:
---




* Provide LV2 plugin


* Support for // sections


* Handle #define
* Lots of new opcodes supported, including
  - key switches
  - crossfading for layers
  - more amp-related opcodes
  - allow changing more parameters using CCs
* API additions
  - load progress function (Synth::set_progress_function)
  - global gain factor (Synth::set_gain)
  - provide list of CCs supported by .sfz file (Synth::list_ccs)
  - support pitch bend (Synth::add_event_pitch_bend)
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] liquidsfz-0.1.0

2019-11-14 Thread Stefan Westerfeld
   Hi!

At the moment, the most interesting thing for me are freely available
.sfz files which completely fail to load or produce no sound at all. So
if you find such a case during testing, please file a github issue or
drop me a mail, with a link where I can download the .sfz.

   Cu... Stefan

Am 14.11.19 um 17:53 schrieb - -:
> Hi now it works sorry for the false negative :) The trick is that when I
> use Carla patchbay, when I plug a midi input to a program, the virtual
> keyboard of Carla is ungreyed and shows what keys I play, which doesn't
> happen with liquidsfz. And the sfz I loaded at first time wasn't
> certainly supported. Now time for further testing. Are there any tests
> you'll like me to do ?
> Cheers
> Bernard
>> Le 14 novembre 2019 à 13:49, Stefan Westerfeld < ste...@space.twc.de
>> <mailto:ste...@space.twc.de>> a écrit :
>>
>>
>> Hi!
>>
>> Did you connect the audio outputs (you need to do this explicitely)?
>> Another possible cause is that the .sfz file is not yet properly
>> supported. Is it publicly available so I can test it? You can also try
>> Salamander Grand https://musical-artifacts.com/artifacts/3 which is
>> definitely supported. Finally you can run liquidsfz with --debug. You
>> should see the filenames of the files that will be played if you send
>> midi input.
>>
>> Cu... Stefan
>>
>> Am 13.11.19 um 23:28 schrieb - -:
>>> Hi Stefan, I have compiled the project from the release. Compilation
>>> worked, sfz seem to load but the plugin doesn't react to midi input. I
>>> tried in Carla, I can plug my midi input but nothing is sent. Any idea ?
>>> Cheers
>>> Bernard
>>>> Le 12 novembre 2019 à 11:02, Stefan Westerfeld < ste...@space.twc.de
>>>> <mailto:ste...@space.twc.de>
>>>> mailto:ste...@space.twc.de>>> a écrit :
>> >>
>> >> liquidsfz-0.1.0 has been released
>> >>
>> >> The main goal of liquidsfz is to provide an SFZ sampler implementation
>> >> library that is easy to integrate into other projects. A standalone
>> jack
>> >> client is also available.
>> >>
>> >> liquidsfz is implemented in C++ and licensed under the GNU LGPL
>> version
>> >> 2.1 or later. The release tarball can be downloaded here:
>> >>
>> >> https://github.com/swesterfeld/liquidsfz#releases
>> >> --
>> >> Stefan Westerfeld, http://space.twc.de/~stefan
>> >> ___
>> >> Linux-audio-dev mailing list
>> >> Linux-audio-dev@lists.linuxaudio.org
>> <mailto:Linux-audio-dev@lists.linuxaudio.org>
>> >> > <mailto:Linux-audio-dev@lists.linuxaudio.org>>
>> >> https://lists.linuxaudio.org/listinfo/linux-audio-dev
>>
>>
>> -- 
>> Stefan Westerfeld, http://space.twc.de/~stefan


-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] liquidsfz-0.1.0

2019-11-14 Thread Stefan Westerfeld
   Hi!

Did you connect the audio outputs (you need to do this explicitely)?
Another possible cause is that the .sfz file is not yet properly
supported. Is it publicly available so I can test it? You can also try
Salamander Grand https://musical-artifacts.com/artifacts/3 which is
definitely supported. Finally you can run liquidsfz with --debug. You
should see the filenames of the files that will be played if you send
midi input.

   Cu... Stefan

Am 13.11.19 um 23:28 schrieb - -:
> Hi Stefan, I have compiled the project from the release. Compilation
> worked, sfz seem to load but the plugin doesn't react to midi input. I
> tried in Carla, I can plug my midi input but nothing is sent. Any idea ?
> Cheers
> Bernard
>> Le 12 novembre 2019 à 11:02, Stefan Westerfeld < ste...@space.twc.de
>> <mailto:ste...@space.twc.de>> a écrit :
>>
>>
>> liquidsfz-0.1.0 has been released
>>
>> The main goal of liquidsfz is to provide an SFZ sampler implementation
>> library that is easy to integrate into other projects. A standalone jack
>> client is also available.
>>
>> liquidsfz is implemented in C++ and licensed under the GNU LGPL version
>> 2.1 or later. The release tarball can be downloaded here:
>>
>> https://github.com/swesterfeld/liquidsfz#releases
>> -- 
>> Stefan Westerfeld, http://space.twc.de/~stefan
>> ___
>> Linux-audio-dev mailing list
>> Linux-audio-dev@lists.linuxaudio.org
>> <mailto:Linux-audio-dev@lists.linuxaudio.org>
>> https://lists.linuxaudio.org/listinfo/linux-audio-dev


-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] liquidsfz-0.1.0

2019-11-12 Thread Stefan Westerfeld
liquidsfz-0.1.0 has been released

The main goal of liquidsfz is to provide an SFZ sampler implementation
library that is easy to integrate into other projects. A standalone jack
client is also available.

liquidsfz is implemented in C++ and licensed under the GNU LGPL version
2.1 or later. The release tarball can be downloaded here:

https://github.com/swesterfeld/liquidsfz#releases
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.5.0

2019-07-22 Thread Stefan Westerfeld
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 editor
* Added "SpectMorph User Manual" (online: html/pdf)
* Use different colors for active/used/unused operators
* LV2 now requires instance access feature
* Add file dialog wrapper shell scripts to work with some ardour bundles
* Integrate XML (pugixml) and ZIP (minizip) 3rd party code
* Minor fixes and cleanups

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a
flute; or smooth transitions, for instance a sound that starts as a
trumpet and then gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be
combined using morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux and Windows users. Here is a
quick overview of how you can make music using SpectMorph.

- VST Plugin, especially for proprietary solutions that don't support LV2.
  (Available on Linux and 64-bit Windows)
- LV2 Plugin, for any sequencer that supports it.
- JACK Client.

Note that at this point, we may still change the way sound synthesis
works, so newer versions of SpectMorph may sound (slightly) different
than the current version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing
between instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.4.1

2018-08-30 Thread Stefan Westerfeld
spectmorph-0.4.1 has been released.

Overview of Changes in spectmorph-0.4.1:

* macOS is now supported: provide VST plugin for macOS >= 10.9
* Include instruments in source tarball and packages
* Install instruments to system-wide location
* New Instruments: Claudia Ah / Ih / Oh (female version of human voice)
* Improved tools for instrument building
  - support displaying tuning in sminspector
  - implement "smooth-tune" command for reducing vibrato from recordings
  - minor encoder fixes/cleanups
  - smlive now supports enable/disable noise
* VST plugin: fix automation in Cubase (define "effCanBeAutomated")
* UI: use Source A / Source B instead of Left Source / Right Source
* UI: update db label properly on grid instrument selection change
* Avoid exporting symbols that don't belong to the SpectMorph namespace
* Fix some LV2 ttl problems
* Fix locale related problems when using atof()
* Minor fixes and cleanups

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be combined using
morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux and Windows users. Here is a quick
overview of how you can make music using SpectMorph.

- VST Plugin, especially for proprietary solutions that don't support LV2.
  (Available on Linux and 64-bit Windows)
- LV2 Plugin, for any sequencer that supports it.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Note that at this point, we may still change the way sound synthesis works, so
newer versions of SpectMorph may sound (slightly) different than the current
version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads

There are many audio demos on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.4.0

2018-04-10 Thread Stefan Westerfeld
spectmorph-0.4.0 has been released.

Overview of Changes in spectmorph-0.4.0:

* Windows is now supported: provide 64-bit Windows VST plugin
* Plugin UI redesign
  - use pugl library for portability (uses GL + cairo) instead of Qt5
  - use categories for instruments
  - directly support instrument names in linear morphing
  - get rid of Qt5 dependency for libspectmorph, smjack, VST and LV2 plugins
  - UI now has "Zoom" feature to support higher DPI displays
* Use non-linear configurable new velocity -> volume mapping for midi
* New instrument: French Horn
* Improved tools for building custom instruments
  - tools are now installed by default
  - sminstbuilder files support new syntax for relative paths
  - encoder cache moved to ~/.cache/smenccache, which is created if necessary
  - use number of processors as default for jobs
* LPC/LSF support removed
* Some portability fixes for macOS (which however isn't supported yet)

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be combined using
morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
SpectMorph is currently available for Linux and Windows users. Here is a quick
overview of how you can make music using SpectMorph.

- VST Plugin, especially for proprietary solutions that don't support LV2.
  (Available on Linux and 64-bit Windows)
- LV2 Plugin, for any sequencer that supports it.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Note that at this point, we may still change the way sound synthesis works, so
newer versions of SpectMorph may sound (slightly) different than the current
version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads/spectmorph-0.4.0.tar.bz2

There are many audio demos on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.3.4

2017-09-29 Thread Stefan Westerfeld
spectmorph-0.3.4 has been released.

Overview of Changes in spectmorph-0.3.4:

* Added optional ADSR Envelope
* Make LV2 and VST plugin stereo to allow supporting stereo in the future
* LV2 plugin description fixes
* Added about dialog to plugin/smjack UI
* Remove BEAST plugin (plugin code will be moved to BEAST)
* Fixed compilation for newer g++ >= 6 (std::fabs)
* Get rid of some malloc() calls in linear morphing

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be combined using
morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
In order to make music that contains SpectMorph, you currently need to use
Linux. There are four ways of integrating SpectMorph sounds into music you
create:

- LV2 Plugin, for any sequencer that supports it.
- VST Plugin, especially for proprietary solutions that don't support LV2.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Note that at this point, we may still change the way sound synthesis works, so
newer versions of SpectMorph may sound (slightly) different than the current
version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads/spectmorph-0.3.4.tar.bz2

There are many audio demos on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] spectmorph-0.3.3

2017-07-04 Thread Stefan Westerfeld
   Hi!

Ok, it seems that on your g++, we need an additional #include  for a few
files. It should work if you apply the attached patch.

Basically, I haven't decided how I want it to work in the next release, so how
SpectMorph interacts with std::fabs, std::sin and so forth may still change,
but at least this should be enough to compile it.

   Cu... Stefan

On Sun, Jul 02, 2017 at 10:40:06PM +0500, 'Nikita Zlobin' via SpectMorph wrote:
> In Tue, 20 Jun 2017 16:32:28 +0200
> Stefan Westerfeld <ste...@space.twc.de> wrote:
> 
> Tried to build (using gentoo). No matter, in ebuild or doing manually
> autoreconf, configure, make... it gives these errors:
> 
> http://codepad.org/tIdMYE9Z
> 
> before to build i checked history in gitweb, but found nothing related
> since version bump
> 
> > spectmorph-0.3.3 has been released.
> > 
> > Overview of Changes in spectmorph-0.3.3:
> > 
> > * Added portamento:
> >   - VST: support MPE to perform per-voice pitch bend (can be used in
> > Bitwig)
> >   - new portamento mono mode (all hosts)
> > * Added vibrato.
> > * Internal improvements:
> >   - better property abstraction for (non-linear) UI properties
> >   - updated polyphase interpolator (used for vibrato|portamento)
> >   - fixed a few problems when developing against spectmorph(ui) libs
> >   - don't link against Qt UI library when only QtCore is necessary
> > * Compile fixes for g++-6.3
> > 
> > What is SpectMorph?
> > ---
> > SpectMorph is a free software project which allows to analyze samples
> > of musical instruments, and to combine them (morphing). It can be
> > used to construct hybrid sounds, for instance a sound between a
> > trumpet and a flute; or smooth transitions, for instance a sound that
> > starts as a trumpet and then gradually changes to a flute.
> > 
> > SpectMorph ships with many ready-to-use instruments which can be
> > combined using morphing.
> > 
> > SpectMorph is implemented in C++ and licensed under the GNU LGPL
> > version 3
> > 
> > Integrating SpectMorph into your Work
> > -
> > In order to make music that contains SpectMorph, you currently need
> > to use Linux. There are four ways of integrating SpectMorph sounds
> > into music you create:
> > 
> > - LV2 Plugin, for any sequencer that supports it.
> > - VST Plugin, especially for proprietary solutions that don't support
> > LV2.
> > - JACK Client.
> > - BEAST Module, integrating into BEASTs modular environment.
> > 
> > Note that at this point, we may still change the way sound synthesis
> > works, so newer versions of SpectMorph may sound (slightly) different
> > than the current version.
> > 
> > Links:
> > --
> > Website:  http://www.spectmorph.org
> > Download: http://www.spectmorph.org/downloads/spectmorph-0.3.3.tar.bz2
> > 
> > There are many audio demos on the website, which demonstrate morphing
> > between instruments.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "SpectMorph" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to spectmorph+unsubscr...@googlegroups.com.
> To post to this group, send email to spectmo...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/spectmorph/20170702224006.550f2934%40calculate.local.
> For more options, visit https://groups.google.com/d/optout.
> 

-- 
Stefan Westerfeld, http://space.twc.de/~stefan
diff --git a/tests/testaafilter.cc b/tests/testaafilter.cc
index 2cdf6ce..32dc8ca 100644
--- a/tests/testaafilter.cc
+++ b/tests/testaafilter.cc
@@ -7,6 +7,8 @@
 #include "smfft.hh"
 
 #include 
+#include 
+
 #include 
 #include 
 #include 
diff --git a/tests/testfft.cc b/tests/testfft.cc
index e4529b3..5a77922 100644
--- a/tests/testfft.cc
+++ b/tests/testfft.cc
@@ -9,6 +9,7 @@
 #include 
 
 #include 
+#include 
 
 using namespace SpectMorph;
 
diff --git a/tests/testifftsynth.cc b/tests/testifftsynth.cc
index e5b8858..8fec0fa 100644
--- a/tests/testifftsynth.cc
+++ b/tests/testifftsynth.cc
@@ -8,11 +8,13 @@
 #include "smfft.hh"
 #include "smutils.hh"
 
-#include 
 #include 
 #include 
 #include 
 
+#include 
+#include 
+
 using namespace SpectMorph;
 
 using std::vector;
diff --git a/tests/testnoisemodes.cc b/tests/testnoisemodes.cc
index af8299f..664a7e5 100644
--- a/tests/testnoisemodes.cc
+++ b/tests/testnoisemodes.cc
@@ -8,6 +8,8 @@
 
 #include 
 
+#include 
+
 using namespace SpectMorph;
 using std::max;
 using std::vector;
diff --git a

[LAD] spectmorph-0.3.3

2017-06-20 Thread Stefan Westerfeld
spectmorph-0.3.3 has been released.

Overview of Changes in spectmorph-0.3.3:

* Added portamento:
  - VST: support MPE to perform per-voice pitch bend (can be used in Bitwig)
  - new portamento mono mode (all hosts)
* Added vibrato.
* Internal improvements:
  - better property abstraction for (non-linear) UI properties
  - updated polyphase interpolator (used for vibrato|portamento)
  - fixed a few problems when developing against spectmorph(ui) libs
  - don't link against Qt UI library when only QtCore is necessary
* Compile fixes for g++-6.3

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be combined using
morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
In order to make music that contains SpectMorph, you currently need to use
Linux. There are four ways of integrating SpectMorph sounds into music you
create:

- LV2 Plugin, for any sequencer that supports it.
- VST Plugin, especially for proprietary solutions that don't support LV2.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Note that at this point, we may still change the way sound synthesis works, so
newer versions of SpectMorph may sound (slightly) different than the current
version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads/spectmorph-0.3.3.tar.bz2

There are many audio demos on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.3.2

2017-04-24 Thread Stefan Westerfeld
spectmorph-0.3.2 has been released.

Overview of Changes in spectmorph-0.3.2:

* Added new unison effect.
* New instruments: pan-flute, synth-saw.
* UI improvements:
  - support operator folding (to preserve screen space)
  - provide scrollbar if morph plan window height is large
  - repair operator move
* VST plugin crash fixed.
* No longer depend on BEAST/Rapicorn
  - use libsndfile for sound file I/O, added WavData API
  - refactoring, move libnobse code into SpectMorph
* Add icon/.desktop file for smjack
* Added debian package support.
* LPC/LSF morphing code updates - but now disabled by default

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

SpectMorph ships with many ready-to-use instruments which can be combined using
morphing.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

Integrating SpectMorph into your Work
-
In order to make music that contains SpectMorph, you currently need to use
Linux. There are four ways of integrating SpectMorph sounds into music you
create:

- LV2 Plugin, for any sequencer that supports it.
- VST Plugin, especially for proprietary solutions that don't support LV2.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Note that at this point, we may still change the way sound synthesis works, so
newer versions of SpectMorph may sound (slightly) different than the current
version.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads/spectmorph-0.3.2.tar.bz2

There are many audio demos on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] spectmorph-0.3.1

2016-09-19 Thread Stefan Westerfeld
spectmorph-0.3.1 has been released.

Overview of Changes in spectmorph-0.3.1:

* Added plugins for LV2 and VST api.
* New instruments: bassoon, cello, bass-trombone, reed-organ.
* Added different templates to get standard morph plans quickly.
* LV2|VST|JACK will start with default plan now (instead of empty plan).
* Standard instrument set location (~/.spectmorph/instruments/standard):
  - plan templates can refer to instruments in that directory without
storing any absolute path (index will be instruments:standard)
  - in almost any case, loading instruments isn't necessary anymore
* Resize MorphPlanWindow automatically if operators are removed.
* Changed time alignment during morphing:
  - morphed sounds should starty at the beginning of the note (no extra latency)
  - Start marker for instrument notes no longer necessary
  - SpectMorphDelay plugin no longer necessary
* Some improvements for building new instruments:
  - make some smenc parameters configurable (--config option)
  - improvements to soundfont import
  - new fundamental frequency estimation for tune-all-frames
  - support global volume adjustment (instead of auto-volume)
* Various bugfixes.

What is SpectMorph?
---
SpectMorph is a free software project which allows to analyze samples of
musical instruments, and to combine them (morphing). It can be used to
construct hybrid sounds, for instance a sound between a trumpet and a flute; or
smooth transitions, for instance a sound that starts as a trumpet and then
gradually changes to a flute.

Also interpolating between two samples of the same instrument (different attack
velocity of a piano) could be interesting.

SpectMorph is implemented in C++ and licensed under the GNU LGPL version 3

SpectMorph is still under development. This means:

* the fileformat is not yet stable - instruments or morph plans may not work
  with newer versions of SpectMorph
* the algorithms for synthesizing sounds are still under development - newer
  versions may sound different

To sum it up: if you compose music using SpectMorph, don't expect newer
versions to be compatible in any way.

Integrating SpectMorph into your Work
-
In order to make music that contains SpectMorph, you currently need to use
Linux. There are four ways of integrating SpectMorph sounds into music you
create:

- LV2 Plugin, for any sequencer that supports it.
- VST Plugin, especially for proprietary solutions that don't support LV2.
- JACK Client.
- BEAST Module, integrating into BEASTs modular environment.

Links:
--
Website:  http://www.spectmorph.org
Download: http://www.spectmorph.org/downloads/spectmorph-0.3.1.tar.bz2

There are many sound samples on the website, which demonstrate morphing between
instruments.
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] LV2 mono instruments recommended?

2016-09-10 Thread Stefan Westerfeld
   Hi!

On Fri, Sep 09, 2016 at 09:55:59PM +, Rui Nuno Capela wrote:
> On 09/09/2016 06:33 PM, Stefan Westerfeld wrote:
> >
> > I have tested with Ardour and Qtractor. Ardour does what I'd expect: it 
> > plays
> > my instrument output on both channels. Qtractor however just plays my mono 
> > data
> > on one channel, the other is silent. Which is not what I want.
> >
> until the last release, qtractor used to replicate mono plugins as much 
> as audio output channels is for where it's inserted, so that you would 
> have exactly as many instances of a mono plugin as there are audio 
> output channels.
> 
> unfortunately this "cleverness" didn't work well for all cases, 
> specially regarding instrument plugins vs. its own GUI state and 
> communication--quite often, only one plugin instance reflects some 
> changes done via the GUI, being one notable example about selection of 
> presets (only one instance would get it loaded one time). you would need 
> to save and reload the whole session to get everything in sync again.

Right. This particular "cleverness" would be wrong for the SpectMorph plugin as
well. Computing the audio data is quite CPU intensive, so if you would
instantiate it twice, you'd be wasting precious resources (for computing the
same data twice). Plugin UI problems would also occur.

> > So I am considering making my LV2 instrument always stereo, and just copy 
> > the
> > output buffer from left to right - this is cheap, and probably not much more
> > expensive than what the host would need to do anyway.
> >
> 
> you don't really need to make it stereo all the way. at least on 
> qtractor, you can make use of balance.lv2 [1], inserted right after the 
> mono instrument and then set channel assignemnt = 1 (L->L, L->R) ...

Ok, I tried that, and this produces the intended result.

If you as host author say that this is the way Qtractor users should go for
mono instruments, I'll keep my plugin as it is, the other way would have been
kind-of a workaround. Still from the user experience I prefer what Ardour does,
as it automatically gets the intended result without the user needing to do
anything.

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] LV2 mono instruments recommended?

2016-09-09 Thread Stefan Westerfeld
   Hi!

I'm currently implementing a LV2 plugin for SpectMorph, and so far I only
defined one audio port in the ttl file/source, as the output of the morphing
algorithm is just mono.

I have tested with Ardour and Qtractor. Ardour does what I'd expect: it plays
my instrument output on both channels. Qtractor however just plays my mono data
on one channel, the other is silent. Which is not what I want.

So I am considering making my LV2 instrument always stereo, and just copy the
output buffer from left to right - this is cheap, and probably not much more
expensive than what the host would need to do anyway.

Does this sound like the reasonable way to go?

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] gst123-0.1.4

2011-02-03 Thread Stefan Westerfeld
   Hi!

On Wed, Jan 26, 2011 at 08:25:22AM -0800, Niels Mayer wrote:
 Here's one more backtrace that's even more interesting. Perhaps a
 varargs error: see gst_structure_id_set_valist() ??
 ...

The problem is that the three backtraces you sent me point to different
locations; one of them actually has a gst123 function in it, the other two
backtraces only include symbols of the gstreamer libs. Now of course it could
be that gst123 does something wrong (has a bug), and that only some time after
the actual bug occurred an unrelated function crashes due to memory corruption.

Or it could be that gst123 has nothing to do with any of it, and that some part
of the GStreamer framework causes the crash; for instance a decoding plugin, an
audio driver or whatever.

So one way to proceed would be to try to reproduce the same bug with another
GStreamer based player. If that succeeds, gst123 is not the problem. If it
fails, we probably cannot say for sure if gst123 is the problem, because gst123
may be using GStreamer in a different but equally valid way.

In any case, your stack traces have given me the opportunity of reading the
code in gst123 a few more times, and I've done two changes; one of them should
make gst123 abort with an assertion if the code is problematic, the other
change should fix a possible crash, but I am not sure if that is the crash you
had. But it would be great if you reran your test with the newest gst123 git
version.

Generally, valgrind would also be a great tool for debugging such problems,
however, I suppose it won't be fast enough to play your radio stream...

   Cu... Stefan
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] gst123-0.1.4

2011-01-23 Thread Stefan Westerfeld
   Hi!

On Wed, Jan 19, 2011 at 08:06:38AM -0800, Niels Mayer wrote:
 On Sun, Jan 16, 2011 at 6:13 AM, Stefan Westerfeld ste...@space.twc.de 
 wrote:
  Website:  http://space.twc.de/~stefan/gst123.php
  Download: http://space.twc.de/~stefan/gst123/gst123-0.1.4.tar.bz2
 
 Stefan --
 
 Thanks for making this new version of gst123 available...
 
 I tried my usual torture test on gst123 0.1.4 and it's still having
 the same problem on the KCRW live stream, which IMHO stems from some
 kind of memory leak related to changing of program text (since other
 streams that don't change the program text don't seem to crash). The
 crashes happen after several hours of playing, usually after a new
 program text label is output on the stream. (note parsing oddities
 seen  before a crash e.g.
 Title   : HTML  Artist  :
  
 ).
 
 I ran the test by outputting to each of the stereo channels on an
 ice1712 soundcard, which allows for five simultaneous gst123 instances
 to run (see the end of http://nielsmayer.com/npm/dot-asoundrc.txt for
 details on the setup).
 
 
 gnulem-411-~/gst123-0.1.4 gst123 -a alsa=66ch12
 http://64.12.61.1:80/stream/1046
 ...

Can you please send me a backtrace made with gdb instead of the one you sent
me? You should be able to get one by running

$ gdb --args gst123 -a alsa=66ch12 http://...
 run
...(wait until crash)...
 bt full

I've also added the command line option

$ gst123 --full-version

in the git version of gst123, having the output of this running on your machine
would also be helpful (in case your crash can only be reproduced with certain
library versions).

If you compile from git, you need to use

$ ./autogen.sh --enable-debug

to get debugging symbols (without them, the backtrace will not be useful).

Finally, you can try if your crash can be reproduced with the

$ gst123 -a none

option that I added recently, this should be easier (for instance if I want to
reproduce the crash here) than getting your ALSA setup working on another
machine.

   Cu... Stefan
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] gst123-0.1.2

2010-07-08 Thread Stefan Westerfeld
   Hi!

On Wed, Jul 07, 2010 at 12:42:38PM -0700, Niels Mayer wrote:
 Thanks for your help and response...
 
 FYI, here's a few bug reports/feature-missing things:
 
 (1) I finally figured out those flashing squares that appear every
 time gst123 changes songs. It's album-art images, displayed in an X
 window! These need to stay up longer, as only by forcing the audio
 device to be busy and playing back a giant directory of files, I was
 able to actually see that these are windows containing images, and not
 some weird new display-glitching bug caused by KDE's Smooth Tasks
 widget. To be useful, the display of the image needs to be held for a
 certain amount of time after you're sure the window-system has
 actually rendered the image. Perhaps a single integer option
 --albumart-time -- when set to 0 image display is suppressed,
 otherwise, an integer like 1000 which would hold the album-art image
 for 1 second.
 
 (And yes, I realize that a fix for this issue is easily had in my
 script play-cd (shorthand for play sound only @ 44.1, vs play-tv
 w/ X/Video @ 48k):
 | #!/bin/sh
 | args=`/bin/ls -d $*`
 | export DISPLAY=''
 | exec gst123 -a alsa=mythcd $args
 )

I didn't explicitely do anything to make the pictures come up. Its just that
gst123 will try to decode everything that is on the play list, audio files,
video files and other files. Normally other files are not a problem, because
gst123 will detect that it can not read the file, and remove it from the
playlist. However, GStreamer will decode images like album art, so they are
flashing up, and once the decoding is done disappear again.

I am not sure yet how to fix this. One could simply blacklist some filename
patterns (like *.jpg, *.png, ...), but then again, a file called this way could
theoretically contain an ogg file. Also the blacklist might not be complete. So
what would be better would be to use the same strategy GStreamer uses to figure
out the right decoding object, and then blacklist some of those.

In any case, I've added this item to the TODO, and of course I'll also accept
patches.

 (2) Sometimes video windows come up at the wrong size (tiny). You can
 resize them with the window manager and resize it back and get the
 correct aspect. Or you can quit and run it again and find it sized
 correctly.

I had hoped that this would no longer be an issue, because of the changes that
I made some time ago. But if it is still happening, it should be fixed. You
also may be able to correct this using the 1 or f keys.

I've added this item to the TODO.

 (3) Is there a way to create a specific, stable, window-name for the
 video window created, perhaps settable as commandline parameter. That
 way for captions, you don't really need to worry about overwriting
 the video with transparent letters like you would on an actual TV
 caption. Instead, wrap your program in an external program such as
 Python, or WINTERP (*) that captures the video window (much like a
 window manager would, or how mplayer windows are displayed insider
 wrappers like smplayer kmplayer etc) and parses the time-data-stream
 information continuously output by gst123. Below the video window you
 stick a text widget and display caption text independently of the
 video. There's really no need to overlay and worry about transparency
 mapping through letters and slowing down the rendering, and all that
 potential, hardware-dependent fail. Stick the text in a GUI toolkit
 where all the region and language issues can be handled
 appropriately... Such tools are happy to update a few times a second
 to display new captions while X is off rendering the video (or
 stepping out of the way) in the most efficient, platform-independent
 manner available.

Right, it might be nice to have a window title parameter which can contain some
special sequences (like %f for the filename being played, or %t and %T for time
and total time), so that the window title can be used to output something
useful.

However, I think that gst123 should be able to display seek position without
any extra programs, because most users will just install gst123 and use it as
it is.

About winterp: looks like a program which could be used to do some interesting
things. However, I would recommend using something else as scripting language,
not scheme. My experience with scheme is that it is so totally unlike most
programming languages, that you need to think a lot more to get anything done
or understand any code, even if you are normally good at programming.

Python might be a better choice, because it doesn't have such a different
structure than C / C++ / Java (which many programmers know already).

   Cu... Stefan
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] gst123-0.1.2

2010-07-07 Thread Stefan Westerfeld
   Hi!

On Tue, Jul 06, 2010 at 06:08:23PM -0700, Niels Mayer wrote:
 On Tue, Jul 6, 2010 at 2:43 PM, Niels Mayer nielsma...@gmail.com wrote:
   Question: is there a way to disable checking for pulseaudio for each
  new file when specifying multiple media files. e.g.: gst123 *.ogg ?
  For example: do it once at application startup, or even better, a way
  to prevent it from happening all-together via environment variable,
  configuration, etc. Best would be some kind of environmental check so
  that the timeout on socket needn't occur.The timeout significantly
  slows down operation of the program even when not issuing ^C's.
 
 Answering own question:
 
 The search for audio devices is bypassed by setting  the -a
 commandline parameter to the ALSA device one wants to use. I wrapped
 it in a script to use w/ emacs' dired, etc.:
 
 #!/bin/sh
 args=`/bin/ls -d $*`
 exec gst123 -a alsa=mythcd $args /dev/null 

The next release, gst123-0.1.3 will have a ~/.gst123rc where you can put

audio_output alsa=mythcd

which does the thing you want. The changes are in git already. I've used
scripts to wrap gst123 before (for crawling directories with find), but usually
its better to put the functionality in gst123, because then its available to
all users (not just competent script writers).

   Cu... Stefan
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] gst123-0.1.2

2010-07-07 Thread Stefan Westerfeld
   Hi!

On Tue, Jul 06, 2010 at 02:43:11PM -0700, Niels Mayer wrote:
 On Mon, Jul 5, 2010 at 9:11 AM, Stefan Westerfeld ste...@space.twc.de wrote:
  gst123-0.1.2 has been released.
  Website:  http://space.twc.de/~stefan/gst123.php
  Download: http://space.twc.de/~stefan/gst123/gst123-0.1.2.tar.bz2
 
 Stefan -- very nice and useful program. Thanks for making this available!
 
 FYI -- To compile on Fedora, I had to install the following to get
 'configure' to stop complaining:
 
 1) yum install 'gstreamer-devel' (obviously)
 2) yum install gstreamer-plugins-base-devel (less obvious as config complains:
 No package 'gstreamer-interfaces-0.10' found // No package
 'gstreamer-video-0.10' found )
 3) yum install ncurses-devel

gst123 should normally point you to Debian packages if it doesn't find
something, although currently it only does this for ncurses. I am not yet sure
how to make configure.ac print out the right thing to install depending on the
distribution. But I'd accept patches that solve this.

  Question: is there a way to disable checking for pulseaudio for each
 new file when specifying multiple media files. e.g.: gst123 *.ogg ?

If at all, this could be fixed in GStreamer pulseaudio support. Except for the
.gst123rc entry we already discussed.

 (2) For HD Video recorded off digital broadcasts, but not for regular
 def broadcast video, there's a problem when issuing the '-' (forward
 arrow) or '-' (backward  arrow) commands to skip forwards or back: As
 you go forward, there's an increasingly longer delay before the audio
 syncs up and starts playing. Hit '-' a few times and the audio never
 seems to sync up, and sometimes the video stays paused on the same
 frame, even though the time display in the terminal continues
 updating.

This also sounds to me like a GStreamer bug - probably you should repost the
question on a GStreamer mailing list. gst123 is just a very thin wrapper that
uses GStreamer for actual seeking and decoding, so if there is something wrong
with some files, the most likely thing is that the corresponding GStreamer
plugins need to be fixed.

 (3) Note that if the above file is played out of a list 'gst123 *.mpg'
 then at least it gets audio playback. The same file, started
 standalone, shows video, but gives plays no audio:
 .
 gnulem-346-~ gst123 /home/npm/Videos/1551_20100407195900.mpg
 
 Playing file:///home/npm/Videos/1551_20100407195900.mpg
 
 ** (gst123:12323): CRITICAL **: gst_mpeg_descriptor_find: assertion
 `desc != NULL' failed

Looks like a GStreamer issue, too.

 PS: Feature request: decode caption information from videos, and
 display in video. And/or output a timed-text, SMIL or other file
 containing the caption information and time-of-presentation
 information. This can be very useful in searching content of video
 files.

I would accept patches for this one. Currently, I don't know what needs to be
done to display anything on top of the video display.  Could be that it can be
done at Gtk level (we already have a Gtk window where we display things in),
could also be that overlaying text or other information needs to be done with
GStreamer somehow.

Personally, I'd like to have a visual indication of the stream position during
seek (and that is on the TODO), and once gst123 has the capability to draw on
top of the video display, other stuff could be added.

   Cu... Stefan
-- 
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev