Giter Club home page Giter Club logo

zoia_lib's Introduction

zoia-lib

Patch manager/librarian for the Empress Effects ZOIA pedal-format modular effects unit.

To learn more about ZOIA and its community, join our Discord chat server, Subreddit, and/or Facebook group.

If you would like to leave a tip, we are accepting donations here Donate. Thank you for your support!

This project depends heavily on the PatchStorage API, developed by Blokas: https://patchstorage.com/docs/api/beta/.

This software is distributed under GNU General Public License 3.0. Please familiarize yourself with the Terms & Conditions of copyleft licenses like GPL (and others) here: https://www.gnu.org/licenses/gpl-3.0.en.html. ZOIA and its patch binary format are a trademark of Empress Effects, Inc. and are used with permission.

Neither the developers nor Empress Effects, Inc. are liable for any issues caused or raised by the use or modification of this application. By installing the application you agree to these terms.

How to Install

Application can be installed in one of two ways:

# Download source code
git clone https://github.com/meanmedianmoge/zoia_lib.git

# Single-line dependency install
sh zoia_lib/setup.sh

# Load the application
python -m zoia_lib.backend.startup

Documentation

Features

  • Browse PatchStorage uploads and local patches within the UI
  • Search for specific patches, authors, tags, and more
  • Sort the results by author, title, date modified, likes, views, or downloads
  • Download & upload patches from/to PatchStorage
  • Import patches from local storage or SD card
  • Version control and patch merging
  • Preview patches with the patch visualizer
  • Expose the internal routing and connections with the patch expander
  • View and edit patch notes
  • Customized category and tag labels for all patches
  • Manage your SD card folders quickly
  • Drag & drop patches into folders, configured automatically into a ZOIA-readable format
  • Organize sample files from patches using the new Sampler module
  • Help toolbar for app documentation and ZOIA resources
  • Dark and light themes

Contributing

We welcome all contributions! If you want to see something added, either fork or clone the repo to get started. Some useful tools include:

Authors

  • Mike Moger - app owner, primary dev after Beta 3 release, initial Python implementation
  • John Breton - primary dev, designer, and documentation creator up to Beta 3 release
  • djigneo/apparent1 - C# binary decoding and testing
  • Sranderley - binary encoding, editing, and UI
  • Matthew Allen - initial UI frames and app planning
  • Special thanks to Steve Bragg and the entire Empress Effects team for supporting this work
  • Additional thanks to our beta testers and those who submitted user stories

zoia_lib's People

Contributors

djigneo avatar john-breton avatar marcuslupinus avatar meanmedianmoge avatar mtallen avatar qckpckt avatar smithrobs avatar sranderley 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zoia_lib's Issues

Improve the patch preview widget

The current patch preview widget is barebones. Ideally, the images users upload to PatchStorage should be displayed alongside the notes. As this is HTML, some actual design should be added to make the information quick and easy to read.

Beta 3 - Update unit tests

The unit tests are outdated and do not correctly reflect the current state of the application. These should be updated to better reflect the changes made to utilities.py and some UI tests should be created (if it is possible to do so) in order to better confirm that the application is performing as expected.

  • Once these tests are updated, a GitHub Action should be created to ensure the tests are run with every commit made to the repo.

SD Card View not populated

Whatever "SD card location" I choose (folder on the SD or root of the SD), nothing is populated in the Patch column.
The Import All Patches button is greyed.

Importing multiple patches menu option is working.

Not that I have multiple folder on my SD Card and nothing in the root folder. I also tried to copy all the patch to root folder, no more chances...

Search for patches by author name

Is your feature request related to a problem? Please describe.
Currently, we are able to query the PS API for author id (a unique 4-digit identifier for users) and not by username. Also, add authors as a sorting option.

Describe the solution you'd like
Add the ability to search and sort for patches from specific authors. May require creating a lookup table with some fuzzy logic/strings so the search terms don't have to be exact. Afterward, pass the functionality to the front-end search bars.

Describe alternatives you've considered
Start memorizing the patch id's of popular patch creators. I've already got two down.

2825 is meanmedianmoge (me)
2953 is cmhjacques (christopher)

Create unit tests that cover the renaming of patch files

  • Create a unit test that confirms the successful renaming of patches retrieved from the PS API to conform with the id attribute (as specified by the BaseSchema and MetaSchema).

    • Extend the test to ensure that the names of patches that originate from the PS API are 6 digits in length.
    • Extend the test to ensure that once created, the metadata that is associated with this patch contains the same 6-digit identifier in its file name.
  • Create a unit test that confirms the successful renaming of patches imported from the local file system or via an SD card to conform with the id attribute (as specified by the BaseSchema and MetaSchema).

    • Extend the test to ensure that the names of patches that originate from the local file system or an SD card are 5 digits in length.
    • Extend the test to ensure that once created, the metadata that is associated with this patch contains the same 5-digit identifier in its file name.
  • Create a unit test that handles the case where a patch being imported already exists with the application directory.

  • Create a unit test that confirms that patches are renamed to function correctly on a ZOIA after being exported onto an SD card.

    • Extend the case to ensure that the slot number is correctly added to the patch name.

Import from SD card not working with folders using certain typographic marks (Windows beta 1)

I have a number of folders that use the format "XX.YY" (month and day in most cases; a form of versioning for my folders).

The Librarian does not seem to be able to import patches from these folders. The patches will populate the lower portion of the screen, but they cannot be imported. (Oddly, patches from these folders can be deleted.)

I tried other folders without periods in their names, including underscore ( _ ); all of these worked as expected. But in the case of folders that possessed periods, neither the "Import all patches" or patch-specific import options worked.

None of my other folders contain other typographical marks, aside from the two mentioned, so I could not test further than those two cases.

(Mike had me check the RoamingData; they weren't being saved to the local directory and not recognized. They just weren't being saved at all.)

Problem exporting banks to sd

Describe the bug
A clear and concise description of what the bug is.
When exporting banks to SD card, a folder will be created in the card with the name of the bank but without any patches in it.

To Reproduce

  1. Create a new bank and save it.
  2. Click on export bank. A pop up asks to enter a name for the bank.
  3. I type the name with which I saved the bank in the first place.
  4. An empty folder with that name is created in the sd card.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
2020-09-14-16-50-19.jpg2020-09-14-16-50-32.jpg2020-09-14-16-50-47.jpg2020-09-14-16-51-09.jpg2020-09-14-16-51-17.jpg2020-09-14-16-51-36.jpg2020-09-14-16-52-02.jpg2020-09-14-16-52-12.jpg

Desktop (please complete the following information):

Windows 10 Home
Version 2004
Operating system version
19041.450
64 bits

Additional context
Add any other context about the problem here.

Improve and add to patch visualizer

Building off of the work started by apparent1/djigneo, adding a patch visualizer to the ZOIA Librarian will allow users to quickly analyze a patch to determine how it may work. This process will involve porting the existing C# code into native Python, extending it to output a JSON, and finally using said JSON to display graphical information about a patch to the user. It is proposed that the patch visualizer output to a graphical representation of a ZOIA. Users can hover over buttons on the grid to see connections, module types, etc. Patch pages can also be cycled through via button clicks.

It is proposed this visualizer be outputted to the Local Storage View and Banks tabs. Unfortunately, as it stands it isn't possible to have a proper display on the PatchStorage View tab as there is no simple way to analyze zipped uploads without downloading the zip, unpacking them, and creating an analysis for each patch contained within. This process is too slow to be practical, as such it is better to have direct access to the .bins, hence the decision to use the Local Storage View and Banks tab.

If you are a ZOIA patch contributor and have an interest in analyzing the binary content of ZOIA patches, this is a great issue to contribute to. Please mention your interest in the official ZOIA discord server.

Improve errors to provide more descriptive output

  • Currently, errors raised by the application are too simple. The additional output should be added depending on the specifics that caused an error to occur, and possible remediation methods that could be used to prevent additional errors from occurring in the future.

Create unit tests that cover the unpacking of patch binaries

  • Create a unit test that confirms the unpacking of patch binaries into its provided sub-categories:
    • Size of the patch
    • Patch name
    • Number of modules in the patch
    • Other potential items of interest such as CPU, list of modules, etc (if possible to extract)

Create unit tests that cover the PS API queries

  • Create a unit test that asserts that all ZOIA patches currently hosted on PatchStorage were retrieved successfully.

    • Extend the above test to ensure that the attributes specified in the BaseSchema are returned by the query.
    • Extend the test by formatting the retrieved data in a list that can be passed to the frontend for display purposes.
  • Create a unit test that attempts to retrieve a binary file that exists from the PS API.

    • Extend the test to retrieve the additional data necessary to successfully create metadata based on the MetaSchema.
    • Extend the test to process the case where the file could not be retrieved.
    • Extend the test to ensure that the file that is retrieved matches the filesize and filename attributes that were passed as arguments.
  • Create a unit test that attempts to retrieve a compressed file that exists from the PS API.

    • Extend the test to retrieve the additional data necessary to successfully create metadata based on the MetaSchema.
    • Extend the test to process the case where the file could not be retrieved.
    • Extend the test to ensure that the file that is retrieved matches the filesize and filename attributes that were passed as arguments.

[Won't do] Create bank json from version import

Is your feature request related to a problem? Please describe.
No, this is strictly an enhancement to speed-up workflow. Comes from #67.

Describe the solution you'd like
Upon importing multiple patches as a version, automatically create and save a bank json for quick exports and version control.

Describe alternatives you've considered
Clear alternative is to to do the following steps:
(1) Import multiple patches as version
(2) Drag versioned row into bank table, save and export

Additional context
Display the same "select a name for your bank" and "are you sure you want to overwrite?" messages.

Create unit tests that cover the creation of patch metadata

  • Create a unit test that confirms that metadata is created correctly following the MetaSchema after being passed the necessary information to do so.

    • Extend the test to ensure that the metadata contains the required attributes as specified by the MetaSchema.
    • Extend the test to ensure that the metadata is not created if a required attribute is not supplied (in such situations, an attempt should be made to retrieve the missing attribute before the metadata is not created).
  • Create a unit test that confirms the successful update of a specific metadata attribute.

    • Extend the test to ensure that the required attributes cannot be removed during such updates.
    • Extend the test to ensure that attributes that are not being updated remain unchanged.

Beta 2 - Add accessibility text to all widgets

The current UI is lacking accessibility text for most widgets. This should be rectified as accessibility text is necessary for some users to fully utilize the application.

  • Via the use of QtDesigner, this text can be added with ease.

Deletion of versioned patches causes issues

Path 125706_v2 did not lead to a file or directory.
-----------------------------------------------------------
FileNotFoundError         Traceback (most recent call last)
~/PycharmProjects/personal/zoia_lib/zoia_lib/backend/patch_delete.py in delete_patch(self, patch)
     40             new_path = os.path.join(self.back_path, patch.split("_")[0])
---> 41             os.remove(os.path.join(new_path, patch + ".bin"))
     42             os.remove(os.path.join(new_path, patch + ".json"))

FileNotFoundError: [Errno 2] No such file or directory: '/Users/rkm345/Library/Application Support/.ZoiaLibraryApp/125706/125706_v2.bin'

During handling of the above exception, another exception occurred:

BadPathError              Traceback (most recent call last)
~/PycharmProjects/personal/zoia_lib/zoia_lib/UI/ZOIALibrarian_main.py in initiate_delete(self)
    730             self.set_data()
    731         else:
--> 732             delete.delete_patch(os.path.join(self.curr_ver,
    733                                              self.sender().objectName()))
    734             self.get_version_patches(self.ui.tabs.currentIndex() == 1)

~/PycharmProjects/personal/zoia_lib/zoia_lib/backend/patch_delete.py in delete_patch(self, patch)
     56                 os.rmdir(new_path)
     57         except FileNotFoundError:
---> 58             raise errors.BadPathError(patch, 301)
     59 
     60     def delete_full_patch_directory(self, patch_dir):

BadPathError: ('125706_v2', 301)

How replicate: Local storage tab > Click on a patch with version history > Delete patches until you are left with a single version > Remaining version cannot be deleted unless you go back to Local storage (the remaining version is now a single patch).

Create unit tests that cover the creation of directories

  • Create a unit test that confirms the necessary application directory is created once the application is launched. The location should be verified based on the OS that the application is running on top of.
    • Extend the test to ensure that on subsequent startups, if the directory exists, it is not modified.
    • Extend the test to verify if the folder has been made hidden based on the OS the application is running on top of.
  • Create a unit test that confirms the creation of a directory when a patch is saved into the backend ZoiaLibraryApp directory.
    • Extend the test to verify the movement of the patch versions and accompanying metadata inside this newly-created directory.

Beta 2 - Save application settings on exit

The application should be enhanced to save the sizes of all widgets, the location of a user's SD card (should it have been specified), and other application settings (such as the selection of a new font) upon exiting the application. This will allow users to fully enjoy the customization options of the ZOIA Librarian without the need to manually resize components on each subsequent launch.

Beta 3 - Implement threading to avoid application snag

Currently, the application will freeze up when performing a computationally taxing operation. This includes exporting a bank, refreshing the PatchStorage patch list, checking for patch updates, and loading metadata retrieved from PatchStorage. To fix this, the use of additional threads should be used to improve the responsiveness of the application.

  • Threads should employ a FCFS algorithm except for the thread that will deal with loading the PatchStorage metadata. This thread should be tasked with loading the data unless a new request is made, at which point progress is thrown out and immediate action is taken to begin loading the new request.
  • Any concurrency must ensure mutual exclusion to prevent application crashes.
  • The use of threads must be tested across different operating systems to ensure that the application does not exceed the system resources that it has been allocated (i.e., to prevent a crash from occurring).

Allow for PS-Local merging to happen on non-identical patch names

Describe the bug

Within the local storage view, the update patch button does not do anything for patches where I have no patch note information. These patches were already in the local storage and not downloaded via Zoia Librarian.

To Reproduce

  1. Ensure you have new patches in your local storage that were not downloaded via the librarian app
  2. Within Zoialibrairan click on local storage view
  3. Click on a patch you downloaded with no patch notes
  4. On the right-click "Update Patch Notes"
  5. Observe nothing happens

Expected behavior
When clicking the Update Patchnotes button I expect the patch notes you could see in PatchStorage view would become available for patches in the local storage view where there are no notes.

Screenshots
N/A

Desktop (please complete the following information):

  • OS: Windows 7 Professional Service Pack 1

Additional context
N/A

Font changes/resize are inconsistent throughout the application.

Description

  • This bug pertains to the fact that when a user modifies the font size, modifies the font family, or switches the theme, inconsistencies with the font occur. This ranges from the size of table headers shrinking in size, to the incorrect font being applied after a theme switch.

To Reproduce
Steps to reproduce the behavior:

  • Incorrect font size
  1. Increase/decrease the font size.
  2. Notice the font size for headers, tabs, and radio buttons fail to scale alongside the rest of the font.
  • Incorrect font
  1. Set the font to any of the font families.
  2. Switch the theme of the application.
  3. Notice that the font family is not reflective of what has been previously specified.

Expected behavior
The font should be consistent throughout the application and should not be affected by theme changes or font resizing.

Desktop

  • OS: Windows 10
  • Version: Beta 2/Beta 3

Beta 2 - Add font options

The application forces the use of one font (Verdana). This should be modified to allow users to select a font of their choosing.

  • Additionally, users should have the ability to select a font size of their choosing as well, preferably within the same window that allows for the selection of a new font.

Patch bank usability feature ideas

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
Banks tab:

  • To add a patch to the bank, a user could double-click a patch from the patch list.
  • Allow multi-select for patch list
  • When dragging one or more files from patch list, the patches are dropped in the last-most empty slot (or the first empty spot)
  • When dragging within a bank list to re-order the patches (allowing inserting between two patches), allow multi-selection. (It looks like multi-select is allowed, but doesn't reorder multiple.)
  • By default, hide patches from patch list which have already been added to bank.

Describe alternatives you've considered
n/a, these are just suggestions based on how I first attempted to use the program.

Additional context
Add any other context or screenshots about the feature request here.

Guide: how to compile the app from source

Describe the bug
Mac pre-release is missing .app

To Reproduce
Steps to reproduce the behavior:

  1. Unzip ZOIA.Librarian.-.Beta.2.zip

Expected behavior
I except to find a .app folder/thing, and I don't

Desktop (please complete the following information):

  • OS: macOS

Additional context
Further, could you please explain how to launch the app directly from the source code (ie: not from a release, just pull master or some other branch)

Local storage view on Mac OS - Title column does not retain dragged size

It's possible to resize the Title column in the Local Storage View by right-dragging the edge of the column. This allows me to resize it to read the patch names (default sizing displays only 1 letter of the patchname)

This new column size is not retained if I click away from Local Storage View (say into SD Card View)

I have to resize the column each time.

OS: Mac OS 10.15.5

Column resizing (add reset-to-default option)

Describe the bug
Rather than resizing columns relative to one another, when the column borders are moved to expand, the columns adjacent to this column can disappear behind the column they are next to. I'm having some trouble trying to figure out how to make each column the size I would like.

To Reproduce
Move a column's borders to expand it.

Expected behavior
Adjacent columns to the column with expanded borders should maintain their size and simply be shifted/pushed in the direction of the expansion.

If not this, then maybe a finite limit to how small a column can be made? Or some indication of a hidden column?

Screenshots

Desktop (please complete the following information):

  • OS: Windows
  • Version beta-3

Additional context
Add any other context about the problem here.

Create unit tests that cover the sorting of patch files

  • Create a unit test that confirms the successful sorting of patches based on the following sorting options:
    • Sorting by author
    • Sorting by date modified
    • Sorting by view count
    • Sorting by download count
    • Sorting by like count
    • Sorting by patch title


  • Extend the test case to account for the case when patch version directories exist. In such cases, the most recent version must be used to determine the sort position.

Create unit tests that cover the saving of patches

  • Create a unit test that confirms the saving of patches to the backend ZoiaLibraryApp directory.
    • Extend the test to ensure that the binary patch and accompanying metadata are correctly saved within the correct patch id directory
    • Extend the test to ensure that should a patch directory already exists for a patch that it is saved as a new version within that directory (with the correct renaming of patches occurring).
    • Extend the test to ensure that the application can process files of typical compression methods:
      • zip
      • tar
      • gz
      • 7z
      • etc.

Utilizing the search bar resets column widths

OS: Windows 7 Professional Service Pack 1

When a user is using the search bar and hits enter or return to search, if they had adjusted the column widths within the respective view - those widths reset.

Reproduction Steps

  1. Run the Zoia executable/ application
  2. Navigate to any tab where the search bar is present - in this example, Patch Storage view
  3. Adjust the width of the name column
  4. Now Enter an empty search or a search term into the search bar - hit return/ enter
  5. Observe the column widths reset

These steps are reproducible in PatchStorage, Local Storage Bank tab views

Inconsistent patch naming on Mac OS using Import All vs Click to import

On Mac OS when I import a single patch from the SD card the name shows up in the 'Local Storage View' with the full patch name in the format nnn_patchname.

When I use Import All Patches the names are stripped and only some of the patchname is displayed (do underscores in patch names cause a problem?)

Prep for release version 1.0

Laundry list of things to prep for deployment of version 1.0:
1) Update application manual with new screenshots, feature descriptions, a table of contents, EULA, change logs, etc
2) Merge master with beta-4 branch, test
3) Consolidate source code into minimal-working version for a smaller release candidate size, test
4) Bundle into app files for Windows, Mac, and Linux (Ubuntu)
5) Final round of testing on each platform
6) Release it into the wild - celebrate!

Patch data missing if not downloaded from patch view

OS: Windows 7 Professional Service Pack 1

Description
When a user is utilizing Zoia librarian to organize patches they already downloaded manually, they will find details about that patch (except the file name) missing within the application. The user will only see details (tags, categories Author, Likes, Downloads, Views, License, Preview, and Patch Notes) if they downloaded the patch from Patch Storage view. Seems like there may need to be a way to sync files already downloaded with the info on patch storage?

Reproduction Steps

  1. Have previously downloaded Zoia patches
  2. Open the Zoia Librarian executable
  3. Import the patches you downloaded in SD card view (after defining file path)
  4. Now go to local storage and bank views - note those patches will only have their file names and no other info. You can compare this to a downloaded patch via the patch storage view.

image

Notes

Some quirks I noticed while investigating this issue:

  • It's a little unintuitive that to sort for each view you have to click into the "Sort" menu item each time. It may make more intuitive sense for each view to have its own sort or clicking the column header would define the sorting pattern.
  • It is a bit odd to not define the local storage view, it would be nice if I can pick where in my system this gets stored.

Import all as version not working as intended

Describe the bug
Import all as version is not working as intended.

To Reproduce
Steps to reproduce the behavior:

  1. Go to SD Card tab
  2. Choose a directory from the list
  3. Click on "Import All as Version History"
  4. Navigate to Local Storage tab, find name of directory
  5. Patch list inside version will either be mangled or not have all patches present

Expected behavior
Wanted to be able to pull in an SD card directory of patches into a single version.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac OSX 10.15.4
  • Beta-4 build

Visualizer expansion window

It would be nice if, instead of having to resize everything to make the visualizer more accessible, you could perhaps double-click on the bar with the patch name and page above the visualizer and produce an expansion window for the visualizer.

Describe alternatives you've considered
Instead of an expansion window, perhaps being able to set a fixed re-sizing of the component windows for the visualizer.

Additional context
Add any other context or screenshots about the feature request here.

"Local Storage" columns scale/ adjust under adjacent columns

OS: Windows 10, 64

Description:
When a user navigates to the local storage view and slides the divider to the right or left from the default position, the column widths do not scale. The user has to manually adjust in between column headers. The bug: Adjusting these headers, the columns do not scale or shift with the adjustment until the user releases the cursor. See video for example.

Reproduction Steps

  1. Start the executable
  2. If you do not have some patches in your local storage download one or a couple
  3. Navigate to the "Local Storage" tab
  4. Adjust the divider between the patches in storage and their details either to the left or right
  5. Observe the columns widths for the patches do not change
  6. Hover over to the patch files and the divisions between column headers until you see double arrows. Adjust and column width to each end of the screen. See odd layering until you let go of the mouse.

image

2020-07-16 15-58-24.zip
(Video ^^)

Some UI feedback - having the ability to adjust the column width anywhere along the division would be easier to navigate. Also perhaps having the default column width be based on a wider Patch name size?

Add upload-from-librarian feature

Is your feature request related to a problem? Please describe.
Allow patches to be uploaded from the application to PatchStorage.

Describe the solution you'd like
Previously was not possible, but the beta update of PS' API now includes this endpoint. https://patchstorage.com/docs/api/beta/

Describe alternatives you've considered
Continue to use the PS site for patch upload. You can utilize the various features in Local Storage to create patch notes, tags, visualize (to make sure it all looks good) before upload.

Patches not imported from SD card Mac OS Catalina

I've got 15 patches in a folder on the SD card. When I select the folder in 'SD Card View' and click 'Import all patches' only 5 of the patches are imported.I can import the remaining patches one-by-one by clicking 'Click me to import!'

Solved: App not opening on macOS (solution - see the release notes for a new .app file)

Trying to open the app doesn't work for me.

  • I downloaded, unzipped, did NO changes to the app folder.
  • there is no pref.json present and no .ZoiaLibraryApp folder, neither in ~/Library/Application Support/ nor in /Library/Application Support/
  • When opening by double-click, the app can't open due to an unknown developer (as expected)
  • Opening by right-click > open gives the open animation but the app doesn't run
  • same affect for sudo /ZOIALibrarian.app/Contens/MacOS/startup
  • tested on 2x MacPro 6,2, one running Catalina, one Big Sur Beta 8 and a MacBook Pro either booted in one of these

Any help appreciated!

UI workflow/ Requirements list

Pulled from a discussion on discord

  1. Add patch paths from a menu (local and SD) -> populates a directory window
  2. select a directory ->Populates a 64 slot patch window
  3. Patch window allows you to sort, edit meta data, and copy patches to slots in other directories
  4. Patch window identifies duplicated FX slots

[OSX] Threading is broken for multi-import menu actions

Describe the bug
The application crashes upon selecting either Import Multiples or Import as a Version from the File menu. This can be circumvented be re-routing the menu action directly to the import backend. However, we'd like to retain the threading so it is functionally equivalent to SD multi-imports.

To Reproduce
Steps to reproduce the behavior:

  1. Open the Librarian
  2. Click on File > Import Multiple
  3. The application will crash
  4. See error

Expected behavior
Expected the threading to initialize properly and for non-SD patches to be imported correctly.

Desktop (please complete the following information):

  • Mac OSX 10.15.4

Additional context
Solved by removing the thread connection to the menu-actions. Use the current SD-related threading to debug behavior.

Add a new "Help" toolbar with documentation and resources

Is your feature request related to a problem? Please describe.
Useful for learning the ins-and-outs of the application, and for referencing materials while building patches.

Describe the solution you'd like
Add Help toolbar with a number of options within:

  • Documentation for the app
  • Firmware versions
  • Module Index
  • Tips & tricks
  • FAQ

Both proposed additions require new screens/tabs or linking to external sites.. potentially display this in the PS browser panel, as it is only utilized when a patch is selected?

Describe alternatives you've considered

Additional context

Import and export patch names not properly formatted

Thanks to muffin for uncovering this bug - it was submitted via Discord.

Describe the bug
Imported patch names are mangled and do not export properly.

To Reproduce
Steps to reproduce the behavior:

  1. Go to SD card tab, click on a directory
  2. Try to import a patch from the table below using the "click to import" button
  3. Move to Local tab, find the recently imported patch
  4. Observed that the names are mangled and include the full path
  5. Try to export one of these patches using the "click to export" button
  6. Now check the SD tab "to_zoia" directory > there won't be any patches there

Expected behavior
Expected to have imports function properly with the right name, and have it be exported to my SD card

Screenshots
Preparing to import
image

After import
image

Desktop (please complete the following information):
Windows 10 64 bit, version 1903

Additional context
[Low priority] Feature request: ability to import from backup sub-directories with proper naming (file separators removed from the path).

[OSX] Local Storage splitter snaps to values other than default on startup

Describe the bug
When first moving to the Local Storage tab, the tables and splitters will snap to values other than the saved preferences. Future adjustments to the splitter will be cached.

To Reproduce
Steps to reproduce the behavior:

  1. Open the application
  2. Navigate to the Local Storage tab
  3. Notice how the splitter snaps to a default value
    Bonus: if you don't edit the splitter position, the next time you open the app, the settings are not saved at all (causing a full reset)

Expected behavior
Expected it to load with my saved preferences.

Screenshots

Desktop (please complete the following information):

  • OSX 10.15.4

Additional details:
I believe this has something to do with the Qt frames for the Local Tab

Create unit tests that cover the deletion of patches

  • Create a unit test that confirms a patch is deleted successfully from the application directory.

    • Extend the test to ensure that other files remain unaffected by the deletion.
    • Extend the test to ensure that requesting the deletion of a file that does not exist does not produce unexpected deletions.
    • Extend the test to ensure that the accompanying metadata is also deleted when a patch has been marked for deletion.
    • Extend the test to ensure that if multiple versions of a patch exist, only the desired version is deleted.
  • Create a unit test that confirms a patch is deleted successfully from an SD card.

    • Extend the test to ensure that other files remain unaffected by the deletion.
    • Extend the test to cover the case where a previously detected SD card is removed and the specified path cannot be accessed.
    • Extend the test to ensure that requesting the deletion of a file that does not exist does not produce unexpected deletions.

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.