Git Product home page Git Product logo

pmeas-frontend's Introduction

Portable Multi-Effect Audio Software

Description

The Portable Multi-Effect Audio Software system is a sound modulator that takes in an input from an instrument and applies effects to the audio stream before sending it to a speaker system. It utilizes the Pyo library to apply the effects.

This is one component of several components that comprise the PMEAS system. Find the other components here.

Supported Effects

The system currently modulates audio with the following seven effects:

The system also implements a multi-track looper through the help of a optional GPIO button.

Supported Operating Systems

This backend application is designed to be run on an embedded device, but can also be ran on the same device as the frontend.

Through the help of Python, we are able to support all Linux based distrbutions, as well as all operating systems that support the JACK audio server, even though we only focused exclusively on supporting the Raspberry Pi.

Installation

Necessary Dependencies

Optional Dependencies

Instructions

  1. Clone this repo to a local directory.
  2. Run the install script sudo ./install.sh to download all necessary dependencies and register the service with systemd.
  3. Plug the instrument to be played into a USB port on the modulation device.
  4. Plug the speaker that will be used to project the modulated audio into the 3.5mm jack port on the modulation device.
  5. Start the PMEAS service by calling sudo systemctl start pmeas.service.
  6. To enable the optional loop machine functionality, follow the instructions outlined in the GPIO Installation Guide

(The service will also start independently on boot of the system. Just ensure the instrument and speakers are plugged into the ports)

Common Issues

pmeas-frontend's People

Contributors

joshwahwalters avatar mattfg avatar zhijazi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pmeas-frontend's Issues

UI

I don't know and it is mostly up to the client and you guys, but the colors of the UI is not pleasing to the audience. e.g. I wouldn't use a white text on a red background with a blue border.

Boot Screen Sequence

Add the different stages before loading the main effects page. I.E -> Open App -> Show Splash Screen -> Pick Connection Medium -> Pick Ports -> Load Main Page

Sliders

I am not sure if it is intended or not and maybe ask your client this:

After switching the effect does he want the sliders to also reset to its original states?

UI

Add an effect or a text that shows the current effect. After you click on an effect there is no way to tell which tab you are on right now.

You can simply change the color of the sidebar for that particular effect.

Code refactoring and commenting.

Just look over the code and refactor if needed and comment each and every class, along with every function call, describing what the return value means, if any, and what the function parameters are used for, and what sort of data manipulation is expected to happen.

Choose multiple Harmonizer and FreqShift dynamic parameters

The user should have the option to select from a drop down menu to choose how many signals to harmonize or frequency shift. This will dynamically change the number of parameters listed for the user to set. These specific parameters should be contained in a list for the back-end to use properly.

Can't close settings on Windows

Window decorations display incorrectly and have no close button. There's no other way to close the settings popup, so the user is trapped there until they kill the application.

Finish adding Transition Effects to the GUI

This corresponds to the ParametersColumnArea and the EffectsColumnArea. Drag and dropped effects and changed out parameter values should have really slick and smooth transition animations. QML has a types for this.

Global volume parameter

There will be a slider that gives the user the option to change the global volume of the system. It should pass to the back-end the same as an effect does and in the same JSON file.

Sidebar

Adjust the sidebar to the text. e.g. Frequency Shift doesn't fit.

Fix TravisCI not building properly.

This can be properly debugged once the S3 outage issues with TravisCI and most of the web is fixed. You cannot see the build log because of the outage.

Help button

To ensure users understand how the GUI functions there should be a 'help' icon that pops up a window with detailed instructions on how to connect ports, set effects and submit to the back end.

Add splash screen for the GUI

When the user opens the application, the GUI will connect to the backend device and query data from it. While this data is being queried, we should present the user with a splash screen / loading screen.

Theme the GUI

The current theme is what I like to call a hot dog theme, because it uses extremely bright colors that are random, similar to what you'd find on a hot dog.

The GUI needs to have a sleek theme.

Enabled effects space

Just investigating for now. Enabled effects list might need more space/special resize policy accomodations

Fix the z index on the effects buttons

The effects buttons need their z index higher than the every GUI widget when they are being dragged. We could just use the constant 100, so something like 'z: 100'.

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.