surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.17k stars 400 forks source link

Patch Browser #2359

Open baconpaul opened 4 years ago

baconpaul commented 4 years ago

Placeholder issuer for the oft discussed feature

ghost commented 4 years ago

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 commented 4 years ago

Yes

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

ghost commented 4 years ago

Sounds like a good concept..

ghost commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

mkruselj commented 3 years ago

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 commented 3 years ago

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

mkruselj commented 3 years ago

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.