GithubHelp home page GithubHelp logo

imjimmi / jive Goto Github PK

View Code? Open in Web Editor NEW
121.0 3.0 5.0 4.75 MB

The ultimate JUCE extension for building GUIs

Home Page: https://github.com/ImJimmi/JIVE

License: MIT License

CMake 2.36% C++ 97.29% C 0.35%
juce gui cpp17 declarative-ui cmake no-dependencies reactive ui tdd

jive's Introduction

Stuff I'm working on

JIVE

Author
2021-Present

GitHub Repo stars

A bundle of JUCE modules that completely overhaul the frontend development experience using concepts from popular web frontend frameworks like React.





Gramotech

Lead Developer, Designer
2018 - Present

Released four commercial audio plugins amassing over 20,000 active users.

Babylon (2018) - comprehensive multi-band EQ, featured in the February 2019 edition of Sound on Sound.

Pompeii (2018) - multi-band dynamics processor.

GT Analyser (2019) - free spectrum analyser plugin, described as "the most beautiful analyzer I've ever seen" by some guy on reddit.

Contortion-24 (2020) - distortion and saturation plugin, featuring "A WEIRD DEMO" according to some guy on YouTube. He was right tbf.














Focusrite Control 2

Focusrite Control 2

Developer, General Nuisance
2023 - Present

Focusrite's revamped control software for the 4th generation Scarlett range of audio interfaces.










Stuff I've worked on previously

Contrast

Author
2020 - 2022

GitHub Repo stars

Bundle of audio plugins mostly built using the stock DSP tools provided by JUCE.

I may come back to this in the future, but no immediate plans.







cx605

Developer, Designer
2020

An open-source compressor plugin I started working on but never finished. The idea was to have three different "characters" - Digital, which would aim to keep the signal as clean as possible, Vintage, which would apply saturation, and Look-Ahead, which is self-explainatory.












Vocaster Hub

Developer
2021 - 2022

Control software for Focusrite's new Vocaster range of audio interfaces targetted at Podcasters.













Red Plug-In Suite 2

Lead Developer
2022 - 2023

Migrated Focusrite's most widely used plugin bundle, the Red 2 EQ and Red 3 Compressor, from iPlug over to JUCE to add Apple Silicon support.











University of the West of England

Student
2014 - 2017

Various interesting projects during my time studying Audio and Music Technology at UWE. Most notably a neural-network-enhanced EQ application, NNEQ (top), and Elliptical, a looping audio player with fun visuals (bottom).




















JUCE

Listed contributor, regular forum contributor
2017-Present

Proud author of a commit that added an = 0 default argument to a function hardly anyone uses, thus earning myself bragging rights as an official JUCE contributor.



Alliance of Numpties

Co-founder, the good-looking one
1996 - Present

Occasionally dabble in game development with my older little brother and fellow Numpty, @ollij93.

Most recently placing 3rd out of 60 in the Mini Jame Gam 24 with our game, Terry Toastington.





jive's People

Contributors

imjimmi avatar jurihock avatar renovate[bot] 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

jive's Issues

Add `Slider` type

Slider

Properties

  • orientation
  • sensitivity
  • velocity-mode
  • velocity-sensitivity
  • velocity-threshold
  • velocity-offset
  • centre-value
  • value
  • range
  • max
  • min
  • interval
  • snap-to-mouse
  • show-popup
  • scrollable

Spinner

Knob

Getting started and CMake integration example errors

On the README.md file, the section Integration/CMake should include:

target_compile_definitions(my_juce_project
PRIVATE
    JIVE_GUI_ITEMS_HAVE_STYLE_SHEETS=1
)

Spent 1 hour trying to figure out why the "style" property used on "Getting Started" wouldn't work ๐Ÿ˜ญ

Typo on docs/Getting Started.md:

class WindowPresenter
{
public:
    WindowPresenter()
        : view{ views::window() }
    {
    }

    juce::ValueTree preset() <----- It should be "present"
    {
        return view;
    }

private:
    juce::ValueTree view;
};

Add `Window` type

Window

Properties

  • shadow
  • native
  • resizable
  • Resize limits
  • draggable
  • fullscreen
  • minimised
  • name
  • title-bar-height
  • title-bar-buttons

Add `ComboBox` type

Combo Box

Properties

  • editable
  • justification
  • text
  • font
  • tooltip
  • selected

Options

  • Option
    • text
    • enabled
    • selected
  • Header
  • Separator

Misc

  • Auto-size

Style sheet inheritance

I'm trying to apply a custom style to a component tree. Here is a condensed sketch based on my current AudioProcessorEditor implementation:

  juce::String style(
    R"({
      ".footer": {
        "background": "#ff00ff"
      }
    })");

  juce::String xml(
    R"(
      <Component width="550" height="600" padding="10">

        <Component>
         ...
        </Component>

        <Component class="footer">
          ...
        </Component>

      </Component>
    )");

  jive::Interpreter interpreter;

  auto tree = jive::parseXML(xml);
  tree.setProperty("style", style, nullptr);

  auto view = interpreter.interpret(tree);

The JIVE_GUI_ITEMS_HAVE_STYLE_SHEETS flag is set to 1.

According to https://github.com/ImJimmi/JIVE/blob/main/jive_style_sheets/README.md

Style sheets are hereditary, meaning that if a style property isn't explicitly defined for a component, the style sheet will inherit the style from the component's parent instead.

I was expecting the "footer" component to change the background color. However, this is not the case.

In this case, the background color is set successfully, but that's not what I actually want:

  juce::String xml(
    R"(
      <Component class="footer" width="550" height="600" padding="10">

        <Component>
         ...
        </Component>

        <Component>
          ...
        </Component>

      </Component>
    )");

Is there something I am missing?

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/make-release.yml
  • softprops/action-gh-release v2
.github/workflows/test-runner.yml
  • actions/checkout v4
  • ilammy/msvc-dev-cmd v1.13.0
  • codecov/codecov-action v4
  • actions/upload-artifact v4
  • actions/checkout v4

  • Check this box to trigger a request for Renovate to run again on this repository

error in git clone [email protected]:ImJimmi/JIVE.git and issue with juce::ValueTree get and release?

hey, just trying to get setup following your guides.. ran into an issue when trying to clone the repo

Cloning into 'JIVE'...
The authenticity of host 'github.com (140.82.121.3)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

so i just went ahead and did git clone https://github.com/ImJimmi/JIVE.git which seemed to work fine

not sure if related now but when i follow along your getting started guide for the plugin editor i get an error saying view (the value tree) has no get or release methods?

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.