All Projects → elk-audio → sushi

elk-audio / sushi

Licence: Unknown, AGPL-3.0 licenses found Licenses found Unknown LICENSE.md AGPL-3.0 COPYING
Elk Audio OS Plugin host and DAW

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to sushi

elk-examples
Example collection for Elk
Stars: ✭ 29 (-62.82%)
Mutual labels:  elk, vst, elk-audio
Ardour
Mirror of Ardour Source Code
Stars: ✭ 2,318 (+2871.79%)
Mutual labels:  daw, vst
Docker Elk
The Elastic stack (ELK) powered by Docker and Compose.
Stars: ✭ 12,327 (+15703.85%)
Mutual labels:  elk
Go Stash
go-stash is a high performance, free and open source server-side data processing pipeline that ingests data from Kafka, processes it, and then sends it to ElasticSearch.
Stars: ✭ 214 (+174.36%)
Mutual labels:  elk
Ruoyi Cloud
(RuoYi)官方仓库 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统
Stars: ✭ 160 (+105.13%)
Mutual labels:  elk
Terraform Aws Elasticsearch
Terraform module to provision an Elasticsearch cluster with built-in integrations with Kibana and Logstash.
Stars: ✭ 137 (+75.64%)
Mutual labels:  elk
Mozdef
DEPRECATED - MozDef: Mozilla Enterprise Defense Platform
Stars: ✭ 2,164 (+2674.36%)
Mutual labels:  elk
Openuba
A robust, and flexible open source User & Entity Behavior Analytics (UEBA) framework used for Security Analytics. Developed with luv by Data Scientists & Security Analysts from the Cyber Security Industry. [PRE-ALPHA]
Stars: ✭ 127 (+62.82%)
Mutual labels:  elk
spectrum-analyzer
A real-time spectrum analysis VST plugin
Stars: ✭ 92 (+17.95%)
Mutual labels:  vst
Search Guard Ssl
Elasticsearch SSL for free. Supports native Open SSL.
Stars: ✭ 159 (+103.85%)
Mutual labels:  elk
Microservice Scaffold
基于Spring Cloud(Greenwich.SR2)搭建的微服务脚手架(适用于在线系统),已集成注册中心(Nacos Config)、配置中心(Nacos Discovery)、认证授权(Oauth 2 + JWT)、日志处理(ELK + Kafka)、限流熔断(AliBaba Sentinel)、应用指标监控(Prometheus + Grafana)、调用链监控(Pinpoint)、以及Spring Boot Admin。
Stars: ✭ 211 (+170.51%)
Mutual labels:  elk
Elk Docker
Elasticsearch, Logstash, Kibana (ELK) Docker image
Stars: ✭ 1,973 (+2429.49%)
Mutual labels:  elk
Skill6 Website Backend
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...
Stars: ✭ 140 (+79.49%)
Mutual labels:  elk
Elastiflow
Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack
Stars: ✭ 2,322 (+2876.92%)
Mutual labels:  elk
Ansible Role Logstash
Ansible Role - Logstash
Stars: ✭ 136 (+74.36%)
Mutual labels:  elk
Microservices Platform
基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提供应用管理方便第三方系统接入;同时还集合各种微服务治理功能和监控功能。模块包括:企业级的认证系统、开发平台、应用监控、慢sql监控、统一日志、单点登录、Redis分布式高速缓存、配置中心、分布式任务调度、接口文档、代码生成等等。
Stars: ✭ 3,274 (+4097.44%)
Mutual labels:  elk
Ypsilon
Automated Use Case Testing
Stars: ✭ 135 (+73.08%)
Mutual labels:  elk
Elk Stack
ELK Stack ... based on Elastic Stack 5.x
Stars: ✭ 148 (+89.74%)
Mutual labels:  elk
Synesis lite suricata
Suricata IDS/IPS log analytics using the Elastic Stack.
Stars: ✭ 167 (+114.1%)
Mutual labels:  elk
lgrep
CLI for searching logstash and other elasticsearch based systems
Stars: ✭ 12 (-84.62%)
Mutual labels:  elk

SUSHI

Headless plugin host for ELK Audio OS.

Usage

See sushi -h for a complete list of options. Common use cases are:

Test in offline mode with I/O from audio file:

$ sushi -o -i input_file.wav -c config_file.json

Use JACK for realtime audio:

$ sushi -j -c config_file.json

Use Portaudio for realtime audio, with the default devices:

$ sushi -a -c config_file.json

With JACK, Sushi creates 8 virtual input and output ports that you can connect to other programs or system outputs.

Sushi macOS (experimental)

Since version 1.0, Sushi can be built natively for macOS as a native binary with all the dependencies statically linked to it.

There is a new Portaudio frontend (selectable with the -a | --portaudio command-line option) to interface directly with Portaudio. As an alternative, Jack can be used if it is available on the system.

With Portaudio, you can select other devices than the default with the --audio-input-device and --audio-output-device options. To find out the right number there, you can launch Sushi with the --dump-portaudio-devs to get a list in JSON format printed to stdout.

MIDI support is provided through RtMidi and can access directly CoreMidi devices.

LV2 support is currently not available for macOS.

Example Sushi configuration files in repository

Under misc/config_files in this repository, we have a large variety of example Sushi configuration files.

They all use the mda-vst3 plugins which are built when building Sushi. If you are running one of the prebuilt packages (available on the releases sections on Github), you have everything inside the sushi folder there. For example, on macOS you should be able to get a simple working synthesizer with:

$ ./sushi -a -c config_files/play_vst3.json

(on Linux with JACK, replace -a with -j).

Otherwise, if you are building from source, the plugins used by the examples can be found under:

build/debug/VST3/Debug, or build/release/VST3/Release respectively, for debug and release builds.

To run Sushi with an example configuration, you simply invoke it while pointing to one of the above paths.

On Ubuntu that could be:

$ ./sushi -j -c ../../misc/config_files/play_vst3.json --base-plugin-path VST3/Debug

Or, from a macOS terminal:

$ ./sushi.app/Contents/MacOS/sushi -a -c ../../misc/config_files/play_vst3.json --base-plugin-path VST3/Release

Extra documentation

Configuration files are used for global host configs, track and plugins configuration, MIDI routing and mapping, events sequencing.

More in-depth documentation is available at the Elk Audio OS official docs page.

Building

Sushi builds are supported for native Linux systems, Yocto/OE cross-compiling toolchains targeting Elk Audio OS systems, and macOS.

Make sure that Sushi is cloned with the --recursive flag to fetch all required submodules for building. Alternatively run git submodule update --init --recursive after cloning.

Sushi requires a compiler with support for C++17 features. The recommended compilers are GCC version 10 or higher, and clang version 13 or higher.

Native Linux dependencies

Sushi handles most dependencies with vcpkg (or as submodules) and will build and link with them automatically. A few dependencies are not included however and must be provided or installed system-wide. See the list below (debian packages names):

  • libasound2-dev

  • libjack-jackd2-dev

  • For VST 2:

    • Vst 2.4 SDK - Needs to be provided externally as it is not available from Steinberg anymore.
  • For LV2:

    • liblilv-dev - at least version 0.24.4. Lilv is an official wrapper for LV2.

    • lilv-utils - at least version 0.24.5.

    • lv2-dev - at least version 1.18.2. The main LV2 library.

      The official Ubuntu repositories do not have these latest versions at the time of writing. The best source for them is instead the KX Studio repositories, which you need to enable manually.

    • For LV2 unit tests:

      • lv2-examples - at least version 1.18.2.
      • mda-lv2 - at least version 1.2.4 of drobilla's port - not that from Mod Devices or others.

Building with vcpkg (native Linux & macOS)

Instructions:

$ ./third-party/vcpkg/bootstrap-vcpkg.sh
$ mkdir build && cd build 
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../third-party/vcpkg/scripts/buildsystems/vcpkg.cmake ..

This might take some time for the first build since all the vcpkg dependencies will have to be built first.

Building with Yocto for Elk Audio OS

Sushi can be built either with the provided Elk Audio OS SDK, or as part of a full Elk Audio OS image build with bitbake.

Follow the instructions in those repositories to set up a cross-compiling SDK and build Sushi for a given target.

Note: Sushi version 1.0 is not currently supported with Elk Audio OS images up to 0.12.0. The most recent supported Yocto version is tagged as 1.0-rc1_yocto_build in the repository.

Useful CMake build options

Option Value Notes
SUSHI_AUDIO_BUFFER_SIZE 8 - 512 The buffer size used in the audio processing. Needs to be a power of 2 (8, 16, 32, 64, 128...).
SUSHI_WITH_XENOMAI on / off Build Sushi with Xenomai RT-kernel support, only for ElkPowered hardware.
SUSHI_WITH_JACK on / off Build Sushi with Jack Audio support, only for standard Linux distributions and macOS
SUSHI_WITH_PORTAUDIO on / off Build Sushi with Portaudio support
SUSHI_WITH_ALSA_MIDI on / off Build Sushi with Alsa sequencer support for MIDI (Linux only)
SUSHI_WITH_RT_MIDI on / off Build Sushi with RtMidi support for MIDI. Cannot be selected if SUSHI_WITH_ALSA_MIDI is set.
SUSHI_WITH_LINK on / off Build Sushi with Ableton Link support.
SUSHI_WITH_VST2 on / off Include support for loading Vst 2.x plugins in Sushi.
SUSHI_WITH_VST3 on / off Include support for loading Vst 3.x plugins in Sushi.
SUSHI_WITH_LV2 on / off Include support for loading LV2 plugins in Sushi.
SUSHI_WITH_RPC_INTERFACE on / off Build gRPC external control interface, requires gRPC development files.
SUSHI_BUILD_TWINE on / off Build and link with the included version of TWINE, otherwise tries to link with system wide if the option is disabled.
SUSHI_TWINE_STATIC on / off Link statically against TWINE (not recommended, useful only in a few cases)
SUSHI_WITH_UNIT_TESTS on / off Build and run unit tests together with building Sushi.
SUSHI_WITH_LV2_MDA_TESTS on / off Include LV2 unit tests which depends on the LV2 drobilla port of the mda plugins being installed.
SUSHI_VST2_SDK_PATH path Path to external Vst 2.4 SDK. Not included and required if WITH_VST2 is enabled.

The default values for the options are platform-specific (native Linux, Yocto/OE, macOS).

Note:

before version 1.0, the Cmake options didn't have the SUSHI_ prefix. The old names (e.g. WITH_JACK) are not supported anymore and should be changed to the new format.

Running Unit tests separately

Some Sushi's unit tests depend on test data, which is found through the environment variable SUSHI_TEST_DATA_DIR. You will need to define this if you want to run the unit test explicitly, e.g. while debugging:

$ export SUSHI_TEST_DATA_DIR=/path/to/sushi/repo/test/data

License

Sushi is licensed under Affero General Public License (“AGPLv3”). See LICENSE document for the full details of the license. For contributing code to Sushi, see CONTRIBUTING.md.

Copyright 2017-2022 Modern Ancient Instruments Networked AB, dba Elk, Stockholm, Sweden.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].