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
.
There are some good examples of scripts in the examples directory of this repository. Otherwise the basic structure looks like this:
from ftis.analyser import (
FluidNoveltyslice,
ExplodeAudio,
CollapseAudio
) # import the analysers that you want to use from ftis.analyser
from ftis.process import FTISProcess # import the FTISProcess class
src = "/home/james/Documents/media" # set up the source
folder = "/home/james/Documents/analysis" # set up the output folder
process = FTISProcess(source=src, folder=folder) # create an instance of the FTISProcess
process.add(
FluidNoveltyslice(threshold=0.35, feature=1),
ExplodeAudio()
) # Add some analysers to your process (the order of the args is the order of the chain)
process.run() # call the run() method
and thats it!
Contributing
If you feel up to contributing plumbing code or your own analysers please feel free to do via github.
- Fork this repository
- Checkout a branch with your new feature
- Implement feature
- Make a pull request!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.