{ "info": { "author": "Ognyan Moore", "author_email": "ognyan.moore@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Sound/Audio :: Analysis", "Topic :: Scientific/Engineering", "Topic :: Utilities" ], "description": "\n# TimeView\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Travis Status](https://travis-ci.org/j9ac9k/timeview.svg?branch=master)](https://travis-co.org/j9ac9k/timeview)\n[![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/j9ac9k/timeview?branch=master&svg=true)](https://ci.appveyor.com/api/projects/status/github/j9ac9k/timeview)\n\nTimeView is a cross-platform desktop application for viewing and editing Waveforms, Time-Value data, and Segmentation data. These data can easily be analyzed or manipulated using a library of built-in processors; for example, a linear filter can operate on a waveform, or an activity detector can create a segmentation from a waveform. Processors can be easily customized or created created from scratch.\n\nThis is a very early preview, and is not suitable for general usage yet.\n\n![screenshot](docs/source/TimeView.png)\n\n## Features\n\n* *Cross-platform*, verified to run on macOS, Linux, and Windows\n* Flexible arrangement of any number of *panels*, which contain any number of superimposed *views* (e.g. waveforms, spectrograms, feature trajectories, segmentations)\n* Views can easily be *moved* between panels\n* Views can be *linked* so that modifications in one panel are reflected in other panels\n* *Customizable Rendering* of views (e.g. frame_size for spectrogram)\n* *On-the-fly Spectrogram* rendering automatically adjusts frame-rate and FFT-size to calculate information for each available pixel without interpolation\n* *Editable segmentation* (insertion, deletion, modification of boundaries; modification of labels)\n* Basic *processing plug-ins* are provided (e.g. activity detection, F0-analysis)\n* Processing plug-ins are easily *customizable* or *extendable* using python\n* API allows accessing processing plugins for *batch file processing* or *pre-configuring the GUI* (examples are provided)\n* *EDF-file-format* support\n* A *dataset-manager* allows grouping of files into datasets, for quick access to often-used files\n* *Command Line Interface* support, for easy chaining with other tools\n\nAn introductory video is available\n\n[![thumbnail_large](https://i.vimeocdn.com/video/670176079_640.jpg)](https://vimeo.com/245480108 \"TimeView Demo\")\n\n## Installation\n\n### Pip\n\nTo install TimeView via `pip` one needs a python 3.6 environment setup in advance\n\n```bash\npip install timeview\n```\n\nTo execute run\n\n```bash\ntimeview\n```\n\n### Pipenv\n\nTimeView supports installation via `pipenv`\n\n```bash\npipenv --python=3.6 install timeview\n```\n\nTo execute run\n\n```bash\npipenv run timeview\n```\n\n## Contributing\n\nTimeView welcomes contributors. Currently the primary use case for TimeView is audio files of speech, however there is no reason we any other signal data cannot be used here. This is the authors first major project that is public facing and deployable via pip, so there are lots of opportunities to help us make TimeView better.\n\nSome immediate goals of the project include\n\n* Expanding the test suite (right now it verifies the application starts and that's about it)\n* Incorporate `mkl-fft` library for faster spectrogram generation\n* Create documentation and provide a consistent API so other developers can integrate their own *processors* or *renderers*\n* Create new *renderers*, allowing for modification of pitch curves\n* Incorporate audio playback\n* Make better use of multithreading\n* Incorporate type hinting, such that we can use [mypy](http://mypy-lang.org/)\n* Make application launch through the GUI of all major operating systems\n\nTo contribute, follow the following steps\n\n1. Fork the repo!\n2. Create a feature branch (`git checkout -b feature/fooBar`)\n3. Commit changes (`git commit -am 'added feature fooBar!`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a Pull Request!\n\n## Testing\n\nTo setup a development environment for TimeView, set up an empty python environment\n\n```bash\ngit clone https://github.com/{username}/timeview.git timeview\n\n# installing dependencies to run and execute tests\npip install -e \"timeview[test]\"\n```\n\nAfter installing the test dependencies, you can run the tests.\n\n```bash\npython timeview/setup.py test\n```\n\n## Support\n\n* Report issues to the [GitHub issue tracker](https://github.com/pyqtgraph/pyqtgraph/issues)\n\n## Authors\n\n* Dr. Alex Kain - Professor at Oregon Health and Science University - Originally envisioned this project, had lots of existing code to make it happen\n* Ogi Moore - Student at Oregon Health and Science University - Hired at BioSpeech to take this project from an idea into something usable\n\n## Acknowledgments\n\n* BioSpeech for funding the initial work and allowing to open source\n* Dr. Alex Kain for giving a student trying to make a career transition to a software role an opportunity\n* Library maintainers of PyQtGraph, SciPy, NumPy, and other dependencies if it was not for their effort this project would never have existed\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/j9ac9k/timeview", "keywords": "timeview gui pyqt signal spectrogram", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "timeview", "package_url": "https://pypi.org/project/timeview/", "platform": "", "project_url": "https://pypi.org/project/timeview/", "project_urls": { "Homepage": "https://github.com/j9ac9k/timeview" }, "release_url": "https://pypi.org/project/timeview/0.1.2/", "requires_dist": [ "numpy", "scipy", "sqlalchemy", "numba", "pyqt5", "qtpy", "pyqtgraph", "qtawesome", "pyedflib", "cython", "black; extra == 'dev'", "pre-config; extra == 'dev'", "flake8-mypy; extra == 'dev'", "flake8-bugbear; extra == 'dev'", "pytest; extra == 'test'", "pytest-qt; extra == 'test'", "pytest-runner; extra == 'test'" ], "requires_python": ">=3.6.0", "summary": "A GUI application to view and analyze time series signal data", "version": "0.1.2" }, "last_serial": 4126791, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "a141c32ad7c5d9cc9c4fc0930f2ba7fa", "sha256": "be05bdd3a69057effd6e19b613cb61114dd34606405df835a3f78c61e4e86ebe" }, "downloads": -1, "filename": "timeview-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a141c32ad7c5d9cc9c4fc0930f2ba7fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 201950, "upload_time": "2018-07-14T05:10:33", "url": "https://files.pythonhosted.org/packages/4d/d9/2c0d433011c500c7e0df0569f91556234a39a3119bc16e71360becf22256/timeview-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d09564e6d6e9dc565c6b05e80299818", "sha256": "db00dd70d564fcbecd4bd18469dc4667a83a4df43e4838f89b43b1871d2baec1" }, "downloads": -1, "filename": "timeview-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3d09564e6d6e9dc565c6b05e80299818", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 197347, "upload_time": "2018-07-14T05:10:35", "url": "https://files.pythonhosted.org/packages/2f/b9/de824cb21338eac144cf6f7bff798371d770160dfad4490560c275a0f196/timeview-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4d68dd97452d1363b18c99781627afe6", "sha256": "a14674539944e83a85af89d4dd2002742a60c755eace94d06ce89a4a250ac3e0" }, "downloads": -1, "filename": "timeview-0.1.2-py36.py37-none-any.whl", "has_sig": false, "md5_digest": "4d68dd97452d1363b18c99781627afe6", "packagetype": "bdist_wheel", "python_version": "py36.py37", "requires_python": ">=3.6.0", "size": 201841, "upload_time": "2018-08-02T00:07:55", "url": "https://files.pythonhosted.org/packages/74/d8/addb481046d4d8713e4d8daac86bafcceedca21bde6d84e148c484a4b8a1/timeview-0.1.2-py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4ed281b3872b37bd64e418e8ff6ed34", "sha256": "8ce8525c7d9c5a0b5dcddd1f73aaf3b3cef2338ae7bc83d997c9edc385c7139a" }, "downloads": -1, "filename": "timeview-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c4ed281b3872b37bd64e418e8ff6ed34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 198139, "upload_time": "2018-08-02T00:07:57", "url": "https://files.pythonhosted.org/packages/b1/9e/971682843c0b060027ebbf2687df18e0214fab5ac1b398ac0da69497e2e2/timeview-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4d68dd97452d1363b18c99781627afe6", "sha256": "a14674539944e83a85af89d4dd2002742a60c755eace94d06ce89a4a250ac3e0" }, "downloads": -1, "filename": "timeview-0.1.2-py36.py37-none-any.whl", "has_sig": false, "md5_digest": "4d68dd97452d1363b18c99781627afe6", "packagetype": "bdist_wheel", "python_version": "py36.py37", "requires_python": ">=3.6.0", "size": 201841, "upload_time": "2018-08-02T00:07:55", "url": "https://files.pythonhosted.org/packages/74/d8/addb481046d4d8713e4d8daac86bafcceedca21bde6d84e148c484a4b8a1/timeview-0.1.2-py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4ed281b3872b37bd64e418e8ff6ed34", "sha256": "8ce8525c7d9c5a0b5dcddd1f73aaf3b3cef2338ae7bc83d997c9edc385c7139a" }, "downloads": -1, "filename": "timeview-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c4ed281b3872b37bd64e418e8ff6ed34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 198139, "upload_time": "2018-08-02T00:07:57", "url": "https://files.pythonhosted.org/packages/b1/9e/971682843c0b060027ebbf2687df18e0214fab5ac1b398ac0da69497e2e2/timeview-0.1.2.tar.gz" } ] }