Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch Browser #2359

Open
baconpaul opened this issue Jul 17, 2020 · 13 comments
Open

Patch Browser #2359

baconpaul opened this issue Jul 17, 2020 · 13 comments
Labels
Design Required We need to design a solution to this issue Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. WIP Issues that are an ongoing work in progress
Milestone

Comments

@baconpaul
Copy link
Collaborator

Placeholder issuer for the oft discussed feature

@baconpaul baconpaul added the Feature Request New feature request label Jul 17, 2020
@baconpaul baconpaul added this to the 1.7.1 milestone Jul 17, 2020
@mkruselj mkruselj added Design Required We need to design a solution to this issue UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. labels Jul 17, 2020
@ghost
Copy link

ghost commented Jul 18, 2020

Would the Patch Browser feature be the logical place for composing, saving, restoring and displaying longer comments about patches?

During working on presets for the 1.7 bank, having the ability to type longer comments about the presets would've been extremely useful, and especially those designed as tutorial patches. Perhaps integrating this into the Patch Browser would be a solution.

Uncertain about what might be a good number of allowed characters. Any thoughts on that detail? Would the number of characters have to be fixed, or could it be designed, such that an arbitrary number might be allowed, and a scrollbar accommodate more verbose content where needed?

@baconpaul
Copy link
Collaborator Author

Yes

And I had thought: 4096, plaintext, scrollbar, fixed font, no formatting.

@ghost
Copy link

ghost commented Jul 18, 2020

Sounds like a good concept..

@ghost
Copy link

ghost commented Jul 18, 2020

While it appears that Patch Browser tags, and the ability to create arbitrary 'character' categories, would go a long way in unifying presets from both legacy factory, as well as third-party offerings...

In the short term, for the upcoming initial 1.7 release, what might be the best method for categorizing patches that lie outside of the established 'official' category list?

Thinking here specifically of patches designed for tutorial purposes, e.g., demonstrating some of the more specialized features of Surge, such as the new oscillator types and waveforms, as well as some of the more esoteric functions of the SEQs, such as their SCL pitch-quantization features.

@baconpaul
Copy link
Collaborator Author

I would be happy to have a "Tutorial" or "Example" category. @mkruselj whaddya think?

I think some tutorial patches would be especially welcome yes, and highlighting them with a category is a good idea. It's a complex beast.

@mkruselj
Copy link
Collaborator

Taking look at u-he's tag implementation, they have a category called "Other", that contains "Initialize" and "Templates" subcategories. I would say that this makes a ton of sense personally, and such a category can easily contain "Tutorial" as subcategory. I am not 100% sold on having a root category called "Tutorial".

@ghost
Copy link

ghost commented Jul 18, 2020

For categories of patches that are intended and designed to help and inspire newcomers create their own custom presets, it's unclear that Other, Initialize and Templates would convey the intention of such patches.

It is extremely difficult to anticipate that users will want to design their own, although that is always a personal and immediate goal in working with any new virtual-instrument, and having something like this available in Surge, with its 'unique' modulation system, would've gone a long way in helping get up to speed quickly.

If 'tutorials' doesn't fit or work, then it would be helpful to learn of some other optional terms for included presets that are intended to help users learn the basic synthesis functions and features of Surge.

Also, if tutorial, instructional, pedagogical presets, in general, don't fit in with the presentation of the 1.7 release, then it may be a good idea to omit them altogether, focus on other patch categories, and just let new users figure it all out on their own, or join the Slack board for guidance, rather than trying to include presets that showcase how it works.

Completely open to whatever is needed, and have no particular fixation on tutorials, or even including them if not needed.

@baconpaul
Copy link
Collaborator Author

I rather like the idea of "tutorial" patches especially since we've added and discovered so much and the synth is so overwhelming.

I wonder if we could take your written text and for now just drop it in a surge wiki as a guide to the patches.

And inasmuch as the tree is inadequate to organize patches, adding one more node isn't that bad - we know it all has to get fixed anyway so lets at least give the people some information.

I've started working on the patch browser already so we will have it for 1.7.1 so my vote would be "top level tutorial with a little wiki (I can give you wiki write access if you are willing to write descriptions @Jacky-Ligon ) and then in 1.7.1 make better text and organization a priority for the group.

if I wasn't going to write the patch browser I agree this could be a sub-optimal long term choice. But ... well ... I am! :)

@j5v
Copy link
Contributor

j5v commented Aug 4, 2020

I was checking before raising a feature request, and found "longer comments" here. I'm looking for a way to document patches within Surge, to provide guidance for use. E.g. if I'm making an expressive patch, I might describe how it is best set up, how sensitive the controllers are, some useful configurations of controllers, use cases, etc.

@baconpaul
Copy link
Collaborator Author

Yeah big comments are clearly a feature we want to add!

@mkruselj mkruselj modified the milestones: 1.7.2, 1.7.n Sep 8, 2020
@mkruselj mkruselj modified the milestones: 1.8.n, 1.9.0 Oct 8, 2020
@mkruselj mkruselj modified the milestones: 1.9.0, Surge XT Jan 24, 2021
@mkruselj mkruselj changed the title A Patch Browser Patch Browser Mar 1, 2021
@mkruselj
Copy link
Collaborator

Insight of the day: once we have the patch browser class, we can reuse it to have built-in browsers for wavetables and SCL/KBM, without ever requiring OS-based dialogs. This is how u-he does it (they still provide an option to browse for a file on your drive in some cases, but it's not the primary mode of operation).

JUCE makes this light work UI-wise for us, they have finished browser panes, we would just need to restyle them to fit Surge's theme, expose that styling to the skin engine, and have a few new widgets: main patch browser, SCL/KBM browser, WT browser, FX preset browser, LFO preset browser...

@mkruselj
Copy link
Collaborator

mkruselj commented Apr 16, 2021

Here's some info on u-he patch browser. Their "Category" tags are (with subcategories):

Bass: Acoustic, Analog, Digital, Distorted, Evolving, Formant, FX Bass, Plucked, Sub, Wobble, Lo-Fi
Pads: Acoustic, Atonal, Breathy, Chords, Distorted, Drones, Evolving, Lo-Fi, PWM, Rhythmic, Soundscape, Strings, Vocal
Leads: Bowed, Brass, Chords, Distorted, Guitar, Lo-Fi, Plucked, PWM, Reeds, Rhythmic, Sync Lead, Synth, Vocal, Winds
Keys: Bells, Bowed, Chords, Classic, Distorted Evolving, Layered, Lo-Fi, Mallets, Organs, Piano, Pipes, Plucked, Synthetic
FX: Ambient, Beeps, Glitch, Hits, Lo-Fi, Noise, Rhythmic, Sirens, Sweeps, Tension, Vocal, Whooshes
Drums: Bells, Big Drums, Brushes, Clicks, Claps, Cymbals, Distorted, Lo-Fi, Kicks, Metal, Percussion, Snares, Toms, Wood
Seq & Arp: Basslines, Distorted, Drum Loops, Effects, Evolving, Layered, Lo-Fi, Melodic, Plucked
Stabs: Analog, Blown, Chords, Classic, Digital, Distorted, Layered, Lo-Fi, Stringed
Other: Initialize, Templates

Then they have "Features" tags that basically explain what the patch is using: Mono, Poly, Duophonic, Chord, Tempo Sync, Dry, Effects, Glide, Soft Attack, Slow Release, Percussive, Sustained, Modulated, Cross-modulation (we could say FM here instead), Osc Sync, Unison.

Then there are binary toggles for "Character". These are paired adjectives from which only one (or neither) can be selected: Bright-Dark, Dynamic-Static, Constant-Evolving, Soft-Aggressive, Harmonic-Inharmonic, Phat-Thin, Clean-Distorted, Wide-Narrow, Modern-Vintage, Acoustic-Electric, Natural-Synthetic.

There is no feature to add user tags, but there are favorites, and "smart folders". From the manual:

image

Above mentioned actions of adding tags by dropping presets onto smart folders are basically updating the patches on the hard drive (as the tag info is stored inside the patch first, then scanned/added into the database).

There's also (of course) non-tag-based search via text, that also allows basic boolean expressions, but can actually also include tags in textual searches. From the manual:

image
image

baconpaul added a commit to baconpaul/surge that referenced this issue Apr 30, 2021
1. Rewrite the SQL to only scan changed files and remove dups
2. Modify the SQL to add a schema version
3. Turn this on by default and expose the crude db browser

Addresses surge-synthesizer#2359
baconpaul added a commit to baconpaul/surge that referenced this issue Apr 30, 2021
1. Rewrite the SQL to only scan changed files and remove dups
2. Modify the SQL to add a schema version
3. Turn this on by default and expose the crude db browser

Addresses surge-synthesizer#2359
baconpaul added a commit to baconpaul/surge that referenced this issue Apr 30, 2021
1. Rewrite the SQL to only scan changed files and remove dups
2. Modify the SQL to add a schema version
3. Turn this on by default and expose the crude db browser

Addresses surge-synthesizer#2359
baconpaul added a commit to baconpaul/surge that referenced this issue Apr 30, 2021
1. Rewrite the SQL to only scan changed files and remove dups
2. Modify the SQL to add a schema version
3. Turn this on by default and expose the crude db browser
4. For now have Initialize load Templates/Init Saw

Addresses surge-synthesizer#2359
baconpaul added a commit that referenced this issue Apr 30, 2021
1. Rewrite the SQL to only scan changed files and remove dups
2. Modify the SQL to add a schema version
3. Turn this on by default and expose the crude db browser
4. For now have Initialize load Templates/Init Saw

Addresses #2359
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 10, 2021
1. Don't initialize the DB on startup; rather init it when
   you first open the patch browser
2. End my 'throw in destructor' bad habit since that worked
   horribly. Catch everything properly etc...

This closes surge-synthesizer#4822 but there's still lots to do in surge-synthesizer#2359 including
a nasty locked handler fail when you start two surges against a fresh
db
baconpaul added a commit that referenced this issue Aug 11, 2021
1. Don't initialize the DB on startup; rather init it when
   you first open the patch browser
2. End my 'throw in destructor' bad habit since that worked
   horribly. Catch everything properly etc...

This closes #4822 but there's still lots to do in #2359 including
a nasty locked handler fail when you start two surges against a fresh
db
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 28, 2021
- dont log every file being added
- finalize the parent id add
- don't print stack trace when exceptions are raised

Addresses surge-synthesizer#2359
baconpaul added a commit that referenced this issue Aug 28, 2021
- dont log every file being added
- finalize the parent id add
- don't print stack trace when exceptions are raised

Addresses #2359
@mkruselj mkruselj added the WIP Issues that are an ongoing work in progress label Aug 29, 2021
@mkruselj
Copy link
Collaborator

mkruselj commented Sep 8, 2021

Show the patch comment in some area of patch browser GUI. Just thought I'd menion it here so that this issue subsumes #384 so that we can close that one.

baconpaul added a commit to baconpaul/surge that referenced this issue Sep 18, 2021
Work continues on the patch browser. This adds

1. Feature displays in the table
2. Feature extraction of OSC and Filter and FX
3. A favorite icon which is clickable with no memory
4. Several cleanups to the Patch SQL codepath

Addresses surge-synthesizer#2359
baconpaul added a commit to baconpaul/surge that referenced this issue Sep 18, 2021
Work continues on the patch browser. This adds

1. Feature displays in the table
2. Feature extraction of OSC and Filter and FX
3. A favorite icon which is clickable with no memory
4. Several cleanups to the Patch SQL codepath

Addresses surge-synthesizer#2359
baconpaul added a commit that referenced this issue Sep 18, 2021
Work continues on the patch browser. This adds

1. Feature displays in the table
2. Feature extraction of OSC and Filter and FX
3. A favorite icon which is clickable with no memory
4. Several cleanups to the Patch SQL codepath

Addresses #2359
@surge-synthesizer surge-synthesizer deleted a comment from RustoMCSpit Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Required We need to design a solution to this issue Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. WIP Issues that are an ongoing work in progress
Projects
None yet
Development

No branches or pull requests

3 participants