Skip to main content

The finding things in stuff package.

Project description

ftis - finding things in stuff

ftis is a framework for data manipulation, management, creation and munging in Python 3.8+. It is designed for creative use, mainly for my own preoccupations with segmenting, analysing, organising, discovering structure within, and composing with audio corpora.

Architecture

The overall architecture can be conceived in two parts; 'analysers' and 'processes'. A ftis 'process' can house any number of 'analysers' that can be chained and connected in different ways. A python script can house any number of processes and therefore you can compose multiple processes. Inside of a process, ftis makes connections between a source, the analysers and an output.

Installation

You can install ftis using pip install ftis. This will pull down the necessary dependencies so that all of the analysers that ship with ftis work straight away.

You can also fork this repository and clone it to your machine.

Workflow

The simplest setup is to have a virtual environment setup with ftis installed as a module. cd to the clone of your fork of ftis and enter the module (the directory containing setup.py). Once there run pip install -e . to install ftis to your activated virtual environment. Once you've designed your script you can easily run it with python mycoolscript.py. Of course if you have used pip to install ftis then none of the previous advice applies.

There are some good examples of scripts in the examples directory of this repository. Otherwise the basic structure looks like this:

# import ftis modules that we need
from ftis.analyser.slicing import FluidNoveltyslice # novelty slicing
from ftis.process import FTISProcess # a ftis 'process'
from ftis.corpus import Corpus # a corpus object

src = Corpus("~/corpus-folder/corpus1") # corpus object collects audio files at this directory
out = "~/corpus-folder/slicing" # set an output folder

process = FTISProcess( # instantiate an instance of the process
    source=src, # provide the source and the output to the process
    folder=out
)

process.add( # now add different 'analysers' to the process
    FluidNoveltyslice(threshold=0.35, feature=1),
    ExplodeAudio()
)

if __name__ == "__main__":
    process.run() # and run (inside this block for multiprocessing to work)

and thats it! For more information read the full documentation.

Contributing

If you feel up to contributing plumbing code or your own analysers please feel free to do via github.

  1. Fork this repository
  2. Checkout a branch with your new feature
  3. Implement feature
  4. Make a pull request!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ftis-1.1.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

ftis-1.1.0-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file ftis-1.1.0.tar.gz.

File metadata

  • Download URL: ftis-1.1.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for ftis-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f939cd3dd5822f3fa46fbd09954e8204974b35da56c470a455276a1cf02890c7
MD5 24658829aa99022446876b33170561e8
BLAKE2b-256 5c7d37eb2c4009a3b235aa17647b7c0c815ae86f42eeb6e0a5d756acda8b592b

See more details on using hashes here.

File details

Details for the file ftis-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: ftis-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for ftis-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40bfba2551783edfd396dd90631765dbde64858728dfcbf1a265c157e98d5bf6
MD5 f24b997495b487c6cbc40ffbf754d9ed
BLAKE2b-256 4f5414f04ec4f5dc33f5d0b8916800a63f644b3edc7beeac1175245d95d64a8b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page