Giter Club home page Giter Club logo

wolf-spectrum's Introduction

Wolf Spectrum Build Status

Wolf Spectrum

Wolf Spectrum is a spectrogram plugin. It can be built as an LV2 or VST plugin and as a standalone Jack application.

Features:

  • Supports both log and linear frequency scaling
  • Resizable UI

Install

You can find some precompiled plugin binaries in the Releases tab. Some packages are also available for Ubuntu and Arch Linux:

Ubuntu

Download the plugin from the pdesaulniers/wolf PPA:

sudo apt-add-repository -y ppa:pdesaulniers/wolf
sudo apt-get update
sudo apt-get install wolf-spectrum

Arch Linux

To install the latest release:

sudo pacman -S wolf-spectrum

A git package is also available in the AUR.

Build manually

First, clone the repo (note the "--recursive" argument):

git clone --recursive https://github.com/wolf-plugins/wolf-spectrum.git
cd wolf-spectrum

Then:

BUILD_VST2=true BUILD_LV2=true BUILD_JACK=true make

Prepend WIN32=true or MACOS=true to the command if applicable.

All plugin builds will then be placed in the bin folder. Copy them to their appropriate place so that your plugin host can find them, and you're done :)

Updating

This project uses git submodules. Thus, to update your local copy of the repo, you need to run the following commands:

git pull
git submodule update --init --recursive

You should then be able to build the plugin with the most recent changes.

License

Wolf Spectrum is licensed under GPL-3.0-or-later.

Some files in this repository are licensed under different terms:

  • Some code borrowed from DPF and DISTRHO plugins is licensed under ISC.
  • Some configuration files are licensed under CC0-1.0.
  • This README is licensed under CC-BY-SA-4.0.

See the individual files for their copyright status.

This program also makes use of the following third-party code:

Please refer to each individual project for their copyright status.

wolf-spectrum's People

Contributors

pdesaulniers avatar trebmuh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wolf-spectrum's Issues

Clarify license

There are no license headers and no mention of the license. I see the unedited GPL3 license but is the code GPL3 only or GPL3 or later?

Adaptive frequency grid

I guess it could be nice to have the grid add more values in-between the basic ones if the window is big enough.

If the numbers won't fit, smaller grid lines without captions could also be useful.

Implement oversampling

I think this could be useful to increase the perceived resolution of the spectrogram.

Resize handle not working inside GTK 2 hosts (LV2 build)

If I run my own build of the v1.0.0 release of Wolf Spectrum inside a GTK 2 host, I am unable to resize the window by dragging the resize handle in the bottom corner. Yet, for some reason, the official Arch build of Wolf Spectrum resizes fine...

Avoid Xruns

Right now, the UI can block the audio processing.

Automatic stop/start

I have two ideas for automatic scrolling control:

  1. Sync to host or JACK transport (with optional stop delay to add some tail).
  2. Use an audio threshold and hold time to pause when no audio is being fed into the spectrograph.

This could help the user analyse what have just happened, without the need to use a separate scrolling control within the spectrogram. It'd also make sure no space is wasted for useless "black" spectrum.

Non-scrolling updates (round-robin)

Instead of scrolling/moving the whole graph like a piano-roll just keep it static and update it line by line. Once at the end start at the beginning again overwriting the existing graphic buffer. This might be much more comfortable for the eyes (less motion sickness).

Allow changing scrolling direction

Sometimes working with a vertical spectrograph is easier than a horizontal one, and vice versa.
Most that we have (built into EQ10Q and such) are vertical but I personally would prefer a horizontal one.

Also bring able to flip the scrolling direction would be great.

Draw the rulers on top of the spectrogram

The ruler lines and captions are obsured by bright bins. Maybe it'd be good to draw that on top of the spectrograph?

Also: maybe some drop shadow could be useful for improved readability?

image

Option to maximize the window?

it might be nice to put Wolf Spectrum full-screen sometimes.

Right now it seems to be impossible under Plasma Desktop.

I also can't drag the window to screen edges to make it fill 1/4 or 1/2 of the screen, like I can with other windows.

Maybe it's because it's a dialog window?
Could this be changed? At least for standalone version?

Frequency bleed?

Here's comparison of how Log scale looks with different window sizes:

Using 2048:
image

Using 4096:
image

Using 8192:
image

Using 16384:
image

It's a bit strange, but only the highest window gives me clear view on the low frequencies.

I wonder if this could be improved somehow? I don't remember something like this form using say - Sonic Visualiser. I need to do a strict comparison though.
This makes me want to ask for even bigger windows sizes, since the time resolution is still pretty ok at 16k.

Full screen mode

The spectrograph could be very useful as a studio tool in fullscreen mode - on a separate dedicated monitor or potentially a Raspberry Pi device.

[Windows] Deleting wolf spectrum crashes FL Studio

The Wolf Spectrum windows VST crashes FL Studio when deleted, reloaded or when I open a different project file while Wolf Spectrum is in the previous project file. It closes FL Studio instantly and no crash log is created.

I tested and v1.0.0 and v0.2.0 has this issue but v0.1.1 does not.

Apologies if this is not the correct way to use issues, I have never reported an issue on github. FL support told me to report this to the developer.

Fl.Studio.20.2021.07.19.-.14.50.31.03.mp4

Offline spectrogram rendering to a video file

I guess it could be useful as some point to be able to render a spectrograph to a video file based on an audio file input. The original audio file could be muxed with the video.

Being able to select an arbitrary image resolution for potentially very high detail would be great.

Also a custom FPS (usually 30 or 60 FPS).

I could use this in videos to generate nice spectrographs in post-production to show users what a sound looks like in a video.

This is obviously a very low priority function, as it can (somewhow) be just worked around by recording a video from the spectrogram window (though the screen resolution is limiting the detail then).

Refactor ScrollingTexture.cpp

Currently, the drawing code is very unclear. It needs to be refactored before going further.

For instance, the interpolation and scaling code should be removed from drawPixel.

Custom color ramps

One great thing Baudline and z Sound Visualizer have is the option to change the gradient used to draw the spectrogram data.

It could be grayscale, rainbow, thermal camera style etc...

Being able to define a custom one would be great.

Hiding GUI controls

I think being able to hide all the GUI elements and draw just the data is a useful feature - especially for creating videos about sound design, or just focusing on the data, and not control widgets.

Interpolate vertically

Right now, we can clearly see that the spectrogram moves in steps. There should be some vertical interpolation, so that changes are less abrupt.

Allow block sizes smaller than 512

How low an it go?

Smaller block size gives more time information, and faster scrolling.

I guess 128 or even 64 could be useful sometimes.

Plugin Crashes REAPER on macOS

I compiled the plugin with:
MACOS=true BUILD_VST2=true BUILD_LV2=true BUILD_JACK=false make
I then copied the bin/wolf-spectrum.lv2 to /Library/Audio/Plug-Ins/LV2/ and the bin/wolf-spectrum.vst to /Library/Audio/Plug-Ins/VST/
When I launch REAPER and add the plugin on a track, it crashes (with both the LV2 and the VST).

I am running REAPER v6.47 and macOS 12.2.1. My other LV2 and VST plugins work fine.

Horizontal interpolation seems wrong

The line width of the bins seems somewhat incoherent. Also, I would expect less dark purple, and more black. Not sure if there's really an issue here, of if it's just me.
2019-01-03-11 01 43

Context menu issues

(Checked elements have been fixed)

  • It doesn't close itself on focus out
  • It doesn't indicate the selected entry
  • It doesn't indicate hover on items
  • There should be some sub-menus

I wonder if it would be possible to create a generic, header-only context menu library ๐Ÿค”

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.