Comments (3)
The decorator just provides an official interface for adding processing methods to the AudioSegment
object.
Eventually it could be the entry-point for a plugin system
Assigning the functions directly onto the AudioSegment object would get the same effect, but providing an official interface protects us from future problems (like if we rename or move the AudioSegment class, or if we want to make performance tweaks, it's hard to think of everything ahead of time).
from pydub.
It also allows us to break the code into multiple files based on functionality instead of having one giant class.
you could also just provide functions, but personally I like to use libraries that just have one main object you need to know about and then you can just use autocomplete to find the methods (like requests)
from pydub.
Ah I see now,
I work on a project that handles a plugin architecture. Using packages and some init magic.
For example, if pydub used this architecture, to add a new "plugin" you have to drop a class/function somewhere into the package directory(say: "pydub/effects") a convention name like NormalizeEffect()
.
Anyway. So to add a new effect we just have to write the effect function in the effects module and apply the decorator, isn't it?
Thank you.
from pydub.
Related Issues (20)
- AudioSegment JSONDecodeError HOT 1
- DeprecationWarning: 'audioop' is deprecated and slated for removal in Python 3.13 HOT 2
- pydub.exceptions.CouldntEncodeError: Encoding failed
- cant find my file despite it being present in the directory
- Cannot open files whose file names begin with dash `-`
- set_frame_rate() doesn't work HOT 1
- URGENT ISSUE:- RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning) HOT 1
- pyaudioop.rms() TypeError: 'float' object cannot be interpreted as an integer and NameError: name 'buffer' is not defined HOT 1
- JSONDecodeError with AudioSegment when reading from bytesio
- Wrong exception when ffprobe is not installed HOT 1
- works for me on win11
- Option to return offsets with audio segments when splitting on silence
- CouldntDecodeError: Decoding failed. ffmpeg returned error code: 1
- AudioSegment.from_file(audio_path) crashes despite ffmpeg.exe hardcoded and also in the PATH
- M4A Chapters
- Pydub import error
- Improve memory footprint of make_chunks
- Calling AudioSegment.export() with an integer bitrate causes Python subprocess exception HOT 1
- is there a faster way to play audio?
- using base64 audio data on AudioSegment
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pydub.