And this is what snapping looks in FL:
OK so what is the difference? Both softwares give us several snap options, but Bitwig lets us select a combination of those options, while in FL we can only select ONE option at a time. So if you want to snap to "Events" and also "1/4 step" you can't, you are forced to choose between either "Events" OR "1/4 step", but not both.
The other thing that is very inconvenient in FL Studio is that it always assumes a relative grid and doesn't give the option of an absolute grid. This means that events that originally don't fall exactly on a grid line will never snap to the actual grid lines you see, but to a relative grid. There are times when a relative grid is needed, and there are times when an absolute grid is more adequate, and users should need to be able to decide. Again, Bitwig and Studio One have had this from the start. FL Studio could take this one step further by allowing events to snap to relative and absolute grids simultaneously, which would save a lot of clicking around.
Here is my mockup of my "dream" snap functionality. I've only done a mockup for the Piano Roll but the equivalent for the Playlist and the Event editor shouldn't be too different. This implementation would give users more options to adjust how snap works. Some users who don't like snapping to an absolute grid would be able to uncheck it (see below mockups), which means this implementation meets everyone's workflow preferences.
First, this is what it looks like when snap is on and off:
● The magnet icon colour indicates snap on/off state: green = on, grey = off.
● Left-click the magnet icon to toggle snap on/off state.
● When snap is off (magnet icon = grey), the snap size setting doesn't need to change to "none", because the icon color already shows that snap is off. Similar to a radio receiver, where the frequency dial is independent form the power on/off switch—no need to marry the two.
● Similar to the main snap, the snap size selector in the Playlist and Piano Roll are always visible and show the current snap size. This way users don't need to open the menu to check which size is currently selected (saves two clicks and mouse motion).
Then we have the snap menu, which pops up when you left-click the snap size selector:
● Left-click the snap size selector to show the snap menu. Note specifically how the "none" option is not included for the reasons stated earlier.
● Right-click the snap size selector to show the "Stock note lengths" menu (already implemented).
The really important thing to notice is that not all settings are mutually exclusive:
● Super important!! Snap should apply equally to automation envelope points!! Currently this is not the case.
● Quantize is no replacement for a flexible snap system. Quantize is like "shoot first, think after", whereas with snap it's the other way around, therefore you always get predictable results.
● "Snap starts" and "Snap ends" only applies to moving—not resizing—events (clips and MIDI notes). When resizing events, both the event start and end will snap regardless of this setting.
● "Snap to events" currently snaps to any event that happens to exist vertically above or below the event being moved. In a heavily populated playlist with hundreds of tracks this can be problematic as events will snap to other events that are not currently visible because the are located hundreds of tracks above or below the event being moved. It might be too granular but I would suggest having three mutually exclusive options to provide three levels of "snap to events": 1. Snap to events (adjacent), 2. Snap to events (visible), and 3. Snap to all events. Snap to events (adjacent) would only snap to events on the same track, the track above and the track below. Snap to events (visible) would snap to any events that are displayed within the visible Playlist area at the current zoom level. Snap to all events would snap to any event, visible or not (current implementation).
● Towards the end of the Bitwig video on my original post, the author says he prefers Absolute snap because in Bitwig you can hold down the Shift key temporarily enable Relative snap. IL might want to consider something like this for FL.