[LAD] SpectMorph 1.0.0-beta2
SpectMorph 1.0.0-beta2 has been released. Compared to beta1, the only change is that the plugin user interface now works properly on macOS 14. You can get the new version from https://www.spectmorph.org/downloads If you do not use macOS 14, there is no reason to update. Changes in beta2: - * Plugin user interface now works correctly on macOS 14 (#28). * Update clang++ compiler version on macOS. * Minimum supported macOS version is now macOS 11. Feedback for any issues you might experience with the beta version is appreciated. -- 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.1
PandaResampler 0.2.1 has been released. https://github.com/swesterfeld/pandaresampler 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. Changes in PandaResampler 0.2.1: * Use meson build system. * Improve test coverage and CI tests. * Support building a shared library (#3). * Do not build tests unless -Ddevel=true is used (#2). * Install headers to include install directory from meson (#1). -- 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 1.0.0-beta1
SpectMorph 1.0.0-beta1 has been released. The main changes are: - WavSource: added formant preserving algorithms for repitching vocals - KeyTrack: new operator to combine instruments by note range - Envelope: new operator to generate arbitrary modulation envelopes - LFO: support arbitrary user defined curves There is a tutorial on YouTube for the new features: - https://www.youtube.com/embed/mwVUsuOTcN0 Feedback for any issues you might experience with the beta version is appreciated. 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: https://www.spectmorph.org Download: https://www.spectmorph.org/downloads There are many audio demos on the website, which demonstrate morphing between instruments. List of Changes in SpectMorph 1.0.0-beta1: -- New Features * WavSource: support two formant preserving algorithms for repitching vocals. * New operators: - KeyTrack - can be used to combine instruments by note range. - Envelope - to generate arbitary modulation envelopes. * User defined curve editor for KeyTrack, Envelope and LFO. * Add presets using the new operators: - KeyTrack Choir Ah/Oh - StringBrass Fusion * JACK CC values are now interpreted per channel (allows polyphonic modulation). * Support double click to reset properties to default value. Fixes * Apply midi channel bend to new voices. * Make portamento affect filter cutoff key tracking. * Fix problems with WavSource paths stored by LV2 plugin (make Ardour archives work). * Fix getting the initial click events / focus plugin UI on macOS under Bitwig. * Fix invalid access to past last vector element (#24). * Make PandaResampler work without problems in ASAN builds. * Refactor leak debugger to fix possible crashes caused by global destructors. * Do not ship sample data in "1 Instrument WavSource" preset. Internals: Improvements * Generate and store spectral envelopes in each AudioBlock for formant correction. * Improve the strategy for portamento synthesis (more accurate and less CPU usage). * Propagate portamento frequency to sources. * Randomize start phase per default to improve "Harmonic Resynthesis" quality. * JACK: use two audio outputs to be able to implement stereo support later on. * Add fast vectorizable log2 approximation (based on Tims version from Anklang). * Phases in LiveDecoder, IFFTSynth: change from float to uint for performance reasons. * Various minor performance optimizations. * Minor LV2 meta data updates (port groups, avoid port resizing extension). * Use newer compilers: g++-14 for windows, g++-13 for static linux plugins. * Support automatically downloading instruments from configure. * Avoid using std::mutex in hard RT code. Internals: Minor Changes * Refactoring: - Deduplicate morphing code from MorphGrid and MorphLinear. - Use shared pointers for GenericIn/GenericOut classes (RAII). - Get rid of `sm_clamp` / `sm_bound` (-> std::clamp). * Improve CI support (use debug-cxx, asan, ubsan, test static build, avoid fftw planning). * Add post install test which tests audio output for all presets after installation. * Validate LV2 feature arrays. * Support user defined scripts in testmidisynth test. * Improve error messages for preset loader. * Build cleanups: remove libbse code, simplify Qt build (remove smsampleedit). * Update CLAP version to 1.2.1. -- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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/test
[LAD] spectmorph-0.3.3
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
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
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?
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?
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
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
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 > 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 : 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
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
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 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
Re: [LAD] [LAA] gst123-0.1.2
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 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
[LAD] How to find out if denormals are zero?
Hi! I am trying to fix a problem in beast, where an algorithm (subnormal cancellation and the associated unit test) will work on "normal" computers, but not on AMD64, because denormals are treated as zero on this platform with the compiler options we are using (-ffast-math and others). So ideally I need a snippet of code (maybe assembler) that will just return whether the processor/platform will have subnormals, like on x86, or not, like on AMD64, by querying the processor status registers. Is there some code around for this? 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