Giter Site home page Giter Site logo

Comments (11)

geom3trik avatar geom3trik commented on June 8, 2024 3

Suggestion for a change in terminology. Correct me if I'm wrong but the essence of the options seems to come down to whether it's the track that has the information about the instrument/source, or whether it's the clip (pattern). Therefore I propose that we refer to the options as 'track-based' (Ableton, Bitwig) or 'clip-based' (FL Studio), when comparing.

from meadowlark.

BillyDM avatar BillyDM commented on June 8, 2024 3

BillyDM's Timeline Proposal

Improving on Postal's idea, here is my idea:
UIMockup

In this workflow, the "Instruments"/"Busses" column is essentially a one-to-one representation of the mixer, but just vertical. These tracks can be grouped like in Bitwig. The "Busses" section can be shown/hidden with the little arrow (it will be hidden by default).

The column to the right of the "Instruments"/"Busses" column lists all the items that are "attached" to the selected track. From left to right the tabs show the vertical FX rack, piano roll clips, audio clips, and then automation clips. This way everything that can modify a particular track is grouped into one place.

The user can add instruments and audio clips to a new track by either dragging and dropping from the browser on the left side, or they can select the "+" button on the bottom of the instruments to add an empty track.

Likewise, the user can also add effects, midi clips, audio clips, and automation clips either by dragging and dropping them from the browser on the left, or by selecting the "+" button.

In the timeline, the user can place clips on whatever "lane" they wish like FL (I think it will be important to distinguish between what is a "lane" and what is a "track"). When a clip is single-clicked, it also highlights the track that it is assigned to. When a clip is double-clicked, it opens the respective editor (piano roll, audio clip editor, automation editor).

I think this has a sort of logical "flow" from left to right. You go from the browser, to the tracks, to the fx/clips, then to the timeline.

from meadowlark.

mwallenfang avatar mwallenfang commented on June 8, 2024 1

I really like this approach, since it fixes my main problem with FL's workflow, which has always just been the initial disconnect between the instruments/audio clips and the mixer.
I'm assuming that the pan and volume knobs are connected to the mixer's pan and volume, unlike FL, which is also a really nice improvement, allowing you to do simple mixing jobs without having to open up the whole mixer.

I feel like a responsive visual element, like a light that reacts to the sound and turns red when the track clips, could be added to make the direct connection to the mixer more apparent to new users, as well as give quick feedback for clipping tracks.
ui

from meadowlark.

PORTALSURFER avatar PORTALSURFER commented on June 8, 2024 1

Ideas from discord part 2
Clip based automation, with crossfades
image

The idea here is to have instruments remember their base state, the defaults for each parameter.
And have automation override these defaults only when active, then snap back to the default state, if so desired.

This tries to solve the problem where one spends hours adjusting automation for a clip, only to adjust the automation elsewhere in another clip, which affects the previous clip because of the way automation usually works, and lose all the hard work.
Sometimes you want automation to remember the last value, but often you also do not. This should be controlled by the user.

automation nodes could have a binary state, hold or release, easily toggled between by the user.
hold, would keep the parameter at the last value until it is overwritten by new automation data (common for most daws)
release, would snap back to the default state, which can be stored in the instrument preset by the user.

In addition it could be possible to add crossfades in between clip automations, not unlike audio crossfades.
This would help prevent artifacts from very quick value changes for example, giving more control and a more natural feel.

from meadowlark.

DGriffin91 avatar DGriffin91 commented on June 8, 2024

There's an idea that's been discussed a bit in the discord that allows for a possible hybrid approach. The general idea is similar to compound clips, a concept often found in video editors (not really sure if this is the best name). These would be clips that can contain one or more sub clips and their associated tracks. The contained clips could be both midi and audio clips. Compound clips could be placed on any track in the DAW and their audio & midi output would move through the track hierarchy like any other clip.

In the case where it's just a single midi clip with a synth, it would be really simple. But it could scale up, where you take a whole folder of tracks and make it into a compound clip. Copies of that compound clip would be instances and an edit of any of them would propagate to all of them. The compound clip could also be linked from an external project, where the whole other project file is the compound clip. Then edits to that other file can result in updates in the current file. (like linking in blender) This can also provide a potentially more basic form of collaboration, where the linked compound clips could not just be a file on disk but also something that is synchronized over the network.

I made a bit of a mockup of this idea. It's pretty rough and needs refining, but shows a bit of what it could look like.
Group track before making it into a compound clip:
group track before making clip

Then with some menu thing it's made into compound clips that can be instanced around:
Group Item Copies

And they can be edited in place:
Group Edit

When editing in place it would show the sub clips in the compound clip offset to the parent composite clip that is edited.
In the case where this is only used to attach a synth to some midi data, the midi item could still be accessed directly, it would not have to be expanded. This is just a larger example where an entire group/folder track is used.
The FX rack on the side could also update to show the FX rack for the compound clip when it is selected without having to open it.

Another thing the compound clip could possibly do, if it's input is only time (there aren't any sends into the group or other variants) the output of the whole composite clip could be cached. This would make the multiple instances have a minimal performance impact, and it could even be sliced up, reversed, etc... non destructively like a wav file. Then any of the slice references or whole composite instances could be opened up and edited, after which the output is cached again.

This output cache could also be used in cases where multiple people are working on the same project, but not everyone has all of the same source material or plugins. If someone had an remote instance of someone else's composite clip, and they were missing some plugins, they could still play it back because the collaboration system could send over the rendered cache. They just wouldn't be able to open the composite clip to edit it.

from meadowlark.

ollpu avatar ollpu commented on June 8, 2024

Here's an idea (inspired by @DGriffin91 on voice) that solely addresses vertical space in the "vertical workflow".

A group/folder might look something like this:
image

When collapsed, the clips contained in its subtracks are be visible in a similar way as they were before, assuming there's only one clip active at a time. The clips can still be selected, manipulated and opened for editing like normal. New clips cannot be added, however.
image
For overlapping clips, they have to be laid out differently, e.g. as shown on the right. I've taken out the piano roll / waveform previews, but for small amounts of tracks they could still be shown. These clips can also be manipulated directly.

The same idea could apply to the automation hierarchy.

from meadowlark.

ANVF-Postal avatar ANVF-Postal commented on June 8, 2024

Postal's Timeline Proposal

After talking with @DGriffin91 about the workflows of FL and Reaper, I really got a chance to see the areas where FL lacks both capabilities and convenience. With a bit of back and forth, I've mocked up a full scale concept of what I believe is an ideal hybrid approach. Here it is.

PostalsUIMockup

The goal of this mockup was to implement the storage, flexibility and less destructive aspects of a pattern (or clip) system, while maintaining the intuition and power of a track based system. With this workflow, the view of the channel rack all but mirrors the view of the mixer, timelines are flexible and unlocked, midi can be easily copied between instruments by drag-and-drop, clips are visibly and automatically distinguished as being a part of one instrument or group, and the clips (or patterns) on each rack track can be collapsed so they'll never take up fixed space on your screen.

A brief highlight of the mockup's parts:
-A drum sequencer, with a pattern being edited currently.
-A single instrument pattern below the group, where it's only playing (and is only able to play) the kick sample.
-Multiple instruments on one timeline track
-Vital midi clip (pattern) on the timeline that isn't visible on the rack, since it's collapsed.
-Volume and pan knobs, per-rack track
-Two automation clips, stored in the same way as a MIDI pattern.
-Dots on the left of each rack track indicate that they can be reordered and parented, just by clicking and dragging.
-In the sequencer, the pattern name box has arrows next to it, indicating that scrolling over or clicking the button will cycle to the next pattern. Notice how pattern 1 is selected in the rack with an outline below the drum group.
-Patterns can be renamed away from the standard naming scheme. Every Midi clip/pattern is named %SYNTH_NAME% - Pattern %NUMBER% by default. E.g Vital - Pattern 1.
-The Kick has a "Waveform" pattern. This an audio clip, for dragging into the timeline. Better for crashes where you want to see the duration on the timeline.
-There are three types of clips. Midi clips (patterns) which can be dragged to other synths and copied. Automation clips, which could be copied the same way (though remapping controls is hard) and audio clips, which are only for samples and can only be dragged to the timeline.

Something currently not shown in the mockup is the mixer.
The order of the rack tracks is meant to very closely mirror their appearance on the mixer. Groups will show up as folder tracks on the mixer (see bitwig) and all child rack tracks will go through the parent rack's effects on the mixer, ideal for drum bussing. The mixer is where you'd actually side-chain things, and do more extensive routing, but from the moment a new track is put in the channel rack, it's instantly assigned to its own mixer slot. This does a lot of background-organizing for the user, a feature not present in FL, where every channel must be manually assigned a mixer track. Of course in FL, this is meant to allow multiple instruments on the same track, but this is an inferior workflow to separate instruments having their own mixer tracks and being routed to a group/folder track.

Another feature not seen is the way midi notes would show up in a grouped sequencer. The sequencer tiles would essentially switch to a preview of the midi clip, the same as a pattern (midi) clip shown on the timeline.

What if a pattern is too long to fit in the width of the channel rack?
The rack could obviously extended by the user, giving more space for display. However in more compact views, the pattern should be scrolled left and right, depending on the user's X (maybe even Y) coordinate on the pattern clip's box.

What's the actual workflow?

On a new project, the rack is empty. Only a '+' button is visible in the channel rack, where the user can select what they'd like to add. Alternatively, synths and samples can be dragged and dropped in from a content browser.
Once a plugin is added to the rack, it's assigned a mixer track, and maybe (optionally) given a color.
A '+' button is visible below the instrument, indicating that clicking it will add a new blank Midi clip (AKA pattern)
Once clicked, the user gets brought to the piano roll (if it's a single instrument or a child) where they can place notes.
After the notes are placed, the piano roll can be closed, and the pattern dragged onto the timeline.

Easy!

What else?

I have a small document of notes outlining the smaller details of the system, but I don't think it's in the scope of this post.
I couldn't identify any fundamental problems with this system, and I believe the hierarchical design makes it suitable for programming, as well as endless expansion and organization within one project.

Since this is a mockup, I welcome any criticism and suggestions for how to improve it, as well as features to add that I might have overlooked.

Happy commenting

from meadowlark.

PORTALSURFER avatar PORTALSURFER commented on June 8, 2024

Ideas from discord.
Considering compound/channel-clips, and channels

Clips in this idea would house midi/audio/automation data, and pipe it to channels.
The channels would house things like vst instruments, hardware synths, fx, etc.
These clips can live anywhere in the arranger. And the arranger lanes would be visual only for the most part, they would not affect routing. Volume, muting, solo, still makes sense here I think.

Solo/Mute would also work based on clip selection, to easily isolate the sounds you want to edit.

So in this workflow, you start by making some clips, and make some nice music.
make some clips

You like what this section of music sounds like and want to reuse it.
So you group them into a channel/compound clip.
Now, there are 2 ways to do this. Note, these would not be instanced.

One way will simply group the clips into a masterclip, nothing changes in terms of routing here. Easy for reuse, clean, and no extra resources needed.
grouptocompound

The second way is a unique grouping. This would duplicate all the channels, with its vsts, effects, etc, as well. Useful if you want to store what you made, decoupled, so you can keep messing around with the original channels.
grouptouniquecompound

You can then use these clips like any other clip, duplicating them around the timeline, cut them up, loop them, etc.
usecompoundclip

To edit these clips, you can select the channel/compound clip, and enter 'edit mode', perhaps by hitting TAB on your keyboard.
This would visually expand the group clip, showing all the sub-clips as if regular audio/note/automation clips, allowing you to select them, edit them, etc.
When done, you can collapse the group clip again by selecting the master and again hitting TAB.
editcompound

from meadowlark.

PORTALSURFER avatar PORTALSURFER commented on June 8, 2024

I really like the idea of selection something, and pressing TAB to jump into edit mode for that thing
This is clean, consistent, and helps with real estate by hiding the editors when not required.

The idea here is to select what you want to edit, and hit TAB to enter and exit edit mode.

if it is a note clip you go into a piano roll editor
if it is a compound clip you expand the subclips
if you have automation selected you jump into an automation editing mode

Hitting tab again will either push you deeper, like for example after selecting a subclip inside of a compound clip.
Or will pull you out of edit mode.
ctrl-TAB could 'escape', always forcing you back out of everything back to the root mode.

from meadowlark.

PORTALSURFER avatar PORTALSURFER commented on June 8, 2024

Workflow idea for channel based system.

I was wondering how it would work when making new clips. In the more common 'track' based workflow you set up your routing chain, and then just draw clips on that track. With our far more free clip based routing idea this won't work.

So, I had the idea, what if you can drag/drop channels from the left onto the arranger to quickly create a clip which is routed to said channel. Could even work with multiple channels selected, and/or combined with a paint mode, where you select channels, then paint clips into the arranger.

from meadowlark.

BillyDM avatar BillyDM commented on June 8, 2024

So, I had the idea, what if you can drag/drop channels from the left onto the arranger to quickly create a clip which is routed to said channel.

Yeah, I think that's a good idea.

from meadowlark.

Related Issues (20)

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.