Git Product home page Git Product logo

fl-studio-api-stubs's People

Contributors

abigailwillow avatar casperlehmann avatar dependabot[bot] avatar maddyguthridge avatar praashie 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

Watchers

 avatar  avatar  avatar  avatar

fl-studio-api-stubs's Issues

playlist module liveBlock update

Hello, I noticed on the API Stubs that most Live modules have "Help Wanted" on them, and I wanted to help clarify. "Live" in FL refers to Performance Mode

getDisplayZone() gets the display zone, which is this red box that shows up in performance mode over a specific area of blocks

liveDisplayZone() sets the area for a display zone in live mode, int left starts 0, int top starts at 1 referring to Track 1, int right refers to the amount of bars right, and int bottom refers to the bottom Track number.

getLiveLoopMode() at the int Track index gets the selection in the "Motion" tab when right clicking a track and looking at "Performance Settings"

getLiveTriggerMode() at the int Track index gets the selection in the "Press" tab when right clicking a track and looking at "Performance Settings"

getLivePosSnap() at the int Track index gets the selection in the "Position Sync" tab when right clicking a track and looking at "Performance Settings"

getLiveTrigSnap() at the int Track index gets the selection in the "Trigger Sync" tab when right clicking a track and looking at "Performance Settings"

getLiveStatus() at the int Track index gets if at the track index if any blocks are playing, scheduled, or if its empty

getLiveBlockStatus() at Track index, block index, gets back if the block is filled, scheduled, or playing (or empty with different flags)

getLiveBlockColor() at Track index, block index, gets the color of the specified block.

triggerLiveClip() at Track index, block index, flag, triggers the block clip at that index with the specified flag (I wish the documentation explained the flags)

refreshLiveClips() at Track index, for clip number refreshes the clip

incLivePosSnap, incLiveTrigSnap, incLiveLoopMode, and incLiveTrigMode at index increases the selection at "Position Sync", "Trigger Sync", "Motion", and "Press" tabs respectively for the track, I think value means what mode it uses for each one.

getVisTimeTick() I'm not sure what it gets, but I get different numbers depending on what clip I play, how many clips, and where they are in performance mode

getVisTimeStep() is a bit of the same, but I think it adds together all playing clips' positions in steps?

The ones I still couldn't figure out are lockDisplayZone() and getVisTimeBar(), but hopefully this helps you find how these work

Figure out what's up with channel pitches

channels.getChannelPitch and channels.setChannelPitch seem to have some very weird behavior. See if I can find a better explanation, and perhaps opena bug report with FL Studio.

Undocumented ui functions

ui.navigateBrowserMenu(<prevnext>, <ShiftHeld>) 
# Navigates the prev/next item in browser. <prevnext> can be 0 for previous or > 0 for next. 
# Shift held will cause the browser item to expand/open  if it's a folder/collection ie Node Type <= -100. # similar to keyboard nav

ui.getFocusedNodeCaption()      # returns the text caption of the highlighted item in the Browser

ui.getFocusedNodeFileType()     # returns an int representing the file/item type. values <= -100 are collection/folders and can be 'opened'
# some values I have seen:
# 4 = fst, 7 = WAV, 10 = FSC / Score, 13 = MP3, 11= SoundFont, 23 = Image JPG, 27 = MIDI
# some folder/collection values:
# -100 = Folder, -101 = Current Project Folder, -108 = History Folder, -107 = Pattern Folder, -105 = Effects Folder
# -104 = Generators Folder, -106 = plug-in, -4 plugin parameter, -103 = Remote Control, -3 = remote control item
# -120 = Recent Files

ui.isBrowserAutoHide()          # is the browser set to auto hide?

ui.previewBrowserMenuItem()     # previews the current browser item. plays it if it is audio clip

ui.selectBrowserMenuItem()      # selects the highlighted menu item as if you had clicked on it.

ui.setBrowserAutoHide(<TORF>)    # <TORF> can be True or False,

bonus item:
ui.miDisplayDockRect() # takes 4 integers but I cant get it to do anything

Remove support for `fl_model` module

The fl_model code is incomplete, and in many cases doesn't reflect FL Studio's behavior. In a future version, support for it will be removed.

If you depend on this code to test your script, you may prefer to use the flapi library to remotely control FL Studio. In the near future, it will support decorating other scripts in order to provide support for decorating scripts so that unit tests can be written using frameworks such as Pytest. See Flapi#4

Add a build system that can rewrite docstrings to reduce the huge amounts of repetition

  • Figure out a way to hook into Poetry's build system to rewrite all of the docstrings
  • Set up a templating system so that repetitive parts of the docstrings can be added easily

Things to template-ify:

  • Note on colors using utils module
  • Note on playlist track indexes

Other useful features:

  • Allow for separate rewriting depending on whether we are building the documentation site, or the Python package
  • Rewrite links to functions to be documentation page links (full URL for docs package, internal link for the docs site)

patterns.findFirstNextEmptyPat flags update

The documentation states that FFNEP_DontPromptName is 1, where it doesn't work, but inputting 2 does work correctly and doesn't prompt a name when creating a new empty pattern.

Prevent usage of kwargs to call functions

Currently, the stubs won't give errors when calling a function with kwargs (eg: foo(value=42)), even though this causes errors in FL Studio.

Add a / as the last param for each API function in order to prevent kwarg usage.

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.