From: yomguy <> Date: Mon, 28 May 2007 18:13:03 +0000 (+0000) Subject: Changed README and INSTALL X-Git-Tag: 1.1~888 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2d549ceebe00f2f411a1994ba0d961889cf5fffc;p=telemeta.git Changed README and INSTALL --- diff --git a/INSTALL b/INSTALL index c1a629a9..c0e0c8af 100644 --- a/INSTALL +++ b/INSTALL @@ -1,51 +1,43 @@ INSTALL ======= -Telemeta is written in python. So it doesn't require any compilation step -but the installation of some other programs. +# 1. Requirements +# =============== -* On debian or Ubuntu just add these lines to your /etc/apt/sources-list: +python (>= 2.3.5-7), python-xml, python-central (>= 0.5), +python-mutagen, python-django, sox, vorbis-tools, flac, normalize-audio, +ecasound, festival, par2, python-mysqldb, sqlite3 | mysql-server, octave2.9, +octave2.9-forge, python-tk - deb http://debian.parisson.org/ binary/ - deb-src http://debian.parisson.org/ source/ - Then, +# 2. Donwload +# =============== - sudo apt-get update - sudo apt-get install telemeta + * On debian or Ubuntu just add these lines to your /etc/apt/sources-list: - All the depending packages will be installed. + deb http://debian.parisson.org/ binary/ + deb-src http://debian.parisson.org/ source/ + deb http://www.debian-multimedia.org etch main -* On other platforms, the first thing to do is then to install -python for your system with your favorite package manager (Linux -based distribution) or download and install it (Windows, MacOS) from -http://www.python.org/download/. + Then, - To access the full power of telemeta's useful features, compile - and/or install by the same way (you may find them in your package - manager) the following programs : + sudo apt-get update + sudo apt-get install telemeta - - python (http://www.python.org) - - python-xml - - python-mutagen - - oggenc (http://www.vorbis.com/) - - sox (http://sox.sourceforge.net/) - - flac (http://flac.sourceforge.net/) - - lame (http://lame.sourceforge.net/) - - ecasound (http://eca.cx/ecasound/) - - wavbreaker (http://huli.org/wavbreaker/) - - festival (http://www.cstr.ed.ac.uk/projects/festival/) - - par2 - - Get the lastest version with : + * On other linux platforms, install all dependencies and get the lastest tar.gz + version on : - svn co http://svn.parisson.org/svn/telemeta/trunk telemeta --username=anonymous + http://debian.parisson.org/ - Now, open a shell (console, terminal, etc..), go to the main - Telemeta directory and type AS ROOT : + Uncompress the archive. + + * You can also get the lastest develoment version with subversion: + + svn co http://svn.parisson.org/svn/telemeta/trunk telemeta + + +See README and http://svn.parisson.org/telemeta for more informations. - python install.py -type telemeta --help for more informations. diff --git a/README b/README index a8bd803b..293b8be2 100644 --- a/README +++ b/README @@ -7,132 +7,123 @@ Telemeta: backups, transcodes, tags and marks any audio content with metadata # 1. Introduction # =============== -Telemeta is an audio tool which creates audio transcoded databases fast -from fresh mastered files. It can be useful to backup digitalized audio -media from vinyls, old tapes or whatever. +Telemeta is a global audio archiving program which introduces useful and secure +indexing methods to backup digitalized audio files and metadata dictionnaries. +It is dedicated to backup any digitized and documented sound from collections of +vinyls, magnetic tapes or audio CD over a strong database in accordance with +many standards. Export functions also encapsulate edited metadata into +compressed file. The object style architecture will soon provide user-friendly +interfaces and plugin' style audio processing. -Telemeta first creates a simple structure where original sounds will be -backuped. The files can be transcoded to WAV, FLAC, MP3 and OGG including -the corresponding tags. +Here are the main features of Telemeta: Here are some cool functions: - - XML generation for metadata tags of backuped WAV - - Audio marking from a given file or from tags thanks to the Festival - speech systhesis tool - - File corruption security with par2 recovery files - - Database synchronizing to remote servers (ssh+rsync) - - Modify metadata from XML or interactive shell + * Secure media editing and archiving over networks. + * Easy transcoding + * Full tagging and marking methods + * XML metadata backup + * Web interface introducing WorkFlow. + * SQL backend (still in dev from march 2007). + * Data anti-corruption security with par2 recovery keys + * Data synchronizing over remote servers (rsync) + * Auto AudioMarking? from metadata (thanks to Festival and Ecasound) + +The Telemeta concept is based on collections. A collection includes original +sounds - or albums containing sounds - which will be backuped in a secure way +with a view of transcoded 'public' formats (WAV, FLAC, MP3, OGG and many more +soon...) including metadata editing and publishing tools. # 2. Requirements # =============== -python (>= 2.3.5-7), python-xml, python-central (>= 0.5), python-mutagen, -sox, vorbis-tools, flac, lame, normalize-audio, ecasound, festival, par2 +python (>= 2.3.5-7), python-xml, python-central (>= 0.5), +python-mutagen, python-django, sox, vorbis-tools, flac, normalize-audio, +ecasound, festival, par2, python-mysqldb, sqlite3 | mysql-server, octave2.9, +octave2.9-forge, python-tk -# 3. Installation -# =============== +# 3. Installation and usage +# ========================= -Telemeta is written in python. So it doesn't require any compilation step. +1 - Checkout Telemeta: -On debian or Ubuntu just add these lines to your /etc/apt/sources-list: + $ cd ~/my_apps + $ svn co http://svn.yomix.org/svn/telemeta/trunk telemeta - deb http://debian.parisson.org/ binary/ - deb-src http://debian.parisson.org/ source/ + Compile wav2png in telemeta/telemeta/visualization/wav2png (you will need + libgd and libsndfile for that) -Then, +2 - Install the development version of the Django framework: - sudo apt-get update - sudo apt-get install telemeta + Warning: last know revision that works with Telemeta: 5313 + See http://www.djangoproject.com -On other linux platforms, get the lastest tar.gz version on : +3 - Create a Django project if you haven't already done it: - http://debian.parisson.org/ + $ cd ~/my_projects + $ django-admin startproject mysite -and uncompress the archive. -You can also get the lastest develoment version with subversion: +4 - Put a link to telemeta into your Django project: - svn co http://svn.parisson.org/svn/telemeta/trunk telemeta --username=anonymous + $ ln -s ~/my_apps/telemeta/telemeta ~/my_projects/mysite/telemeta -Then go into the created directory and just type this with your favorite shell : + OR: add the telemeta path to PYTHONPATH - python install.py +5 - Create the media and cache directories: -Just press 'enter' for the password. + $ cd mysite + $ mkdir media cache -See INSTALL file for more informations. + You might want to place these somewhere else +6 - Configure Django (settings.py): + Modifiy the following variables: -# 4. Usage -# ======== + DATABASE_*: your database settings (don't forget to create the database if needed) + MEDIA_ROOT: absolute path to the media directory you just created + INSTALLED_APPS: add 'mysite.telemeta' -In order to backup all original or transcoded files into a collection, -telemeta needs first to create his repository. Let's type : + Add the following variables: - telemeta --create COLLECTION + TELEMETA_CACHE_DIR: absolute path to the cache directory you just created -Replacing COLLECTION with the name of your collection. Answer to -the questions. A target directory is then created. All answers -are saved into YOUR_HOME/.telemeta/default_database.xml and -YOUR_HOME/.telemeta/COLLECTION.xml + Just paste the two lines below: + TELEMETA_EXPORT_CACHE_DIR = TELEMETA_CACHE_DIR + "/export" + CACHE_BACKEND = "file://" + TELEMETA_CACHE_DIR + "/data" -To backup a wav file, type : +7 - Initialize the database: - telemeta --backup COLLECTION FILE.WAV + $ python manage.py syncdb -where you have to replace FILE.WAV by the local file of your choice you -want to add in the database. Then, answer to the questions. All answers -are saved into YOUR_HOME/.telemeta/default_tags.xml and will be use for -the next execution. The program will automatically transcode the wav (or -aiff) file to the types you have defined (for example FLAC, MP3 and/or OGG) -and place them into each directory of the repository (for example flac/, -mp3/ and/or ogg/). +8 - Configure your urls: -To backup an entire directory, type : + The simplest case is to have telemeta running at public root. To do so, add + this url in urls.py : - telemeta --backup COLLECTION --album DIRECTORY + (r'^', include('telemeta.urls')), -where you have to replace DIRECTORY by the local directory containing all -the audio files you want to add in the database. +9 - Start the project: -Other options: + $ python manage.py runserver - --from-xml takes tags and opts in original xml source - --force forces file conversion (no audio test) - --par2 forces par2 file creation - --all-default chooses default argument for all question - --recover check an repair the backuped media with the previously - created "par2" security key - --rsync synchronizes database to a remote server (ssh+rsync) - --erase erases a collection (FLAC, OGG, MP3 only, never WAV !) - --help gives help page +10 - Go the web page: -# 5. EXAMPLES -# =========== + http://localhost:8000 - telemeta --create my_collection - telemeta --backup my_collection file.wav - telemeta --backup my_collection --album ./ - telemeta --backup my_collection --album --par2 --rsync ./ - telemeta --backup my_collection --album --par2 --rsync --force ./ \n -# 6. TODO -# ======= +See INSTALL and http://svn.parisson.org/telemeta for more informations. -- HTTP web interface (metadata adding, editing, uploading, searching) -- debug id3 editing -- add media types -# 7. Feedback +# 4. Feedback # =========== Please give me some feedback. Tell me if Telemeta suits you or if you would need some other interesting features. You are welcome to mail me at -# 8. Contact +# 5. Contact # ========== Home page : http://svn.parisson.org/telemeta diff --git a/debian/control b/debian/control index 73a26702..57ee6594 100644 --- a/debian/control +++ b/debian/control @@ -3,15 +3,18 @@ Section: sound Priority: optional Maintainer: Guillaume Pellerin Uploaders: Paul Brossier -Build-Depends: debhelper (>= 5.0.0), docbook-to-man, python (>= 2.3.5-7), python-dev (>= 2.3.5-7), python-central (>= 0.5) +Build-Depends: debhelper (>= 5.0.0), docbook-to-man, python (>= 2.3.5-7), +python-dev (>= 2.3.5-7), python-central (>= 0.5) Standards-Version: 3.7.2 XS-Python-Version: >= 2.3 Package: telemeta Architecture: any Depends: python (>= 2.3.5-7), python-xml, python-central (>= 0.5), -python-mutagen, python-django, sox, vorbis-tools, flac, lame, normalize-audio, -ecasound, festival, par2, python-mysqldb, sqlite3 | mysql-server, octave2.9 +python-mutagen, python-django, sox, vorbis-tools, flac, normalize-audio, +ecasound, festival, par2, python-mysqldb, sqlite3 | mysql-server, octave2.9, +octave2.9-forge, python-tk +Suggests: lame XB-Python-Version: ${python:Versions} Description: backups, transcodes, tags and marks any audio content with metadata Telemeta is an audio tool which creates audio transcoded databases fast from diff --git a/telemeta/export/flac.py b/telemeta/export/flac.py index 77f319dc..f50a221a 100644 --- a/telemeta/export/flac.py +++ b/telemeta/export/flac.py @@ -128,7 +128,8 @@ class FlacExporter(ExporterCore): # Processing (streaming + cache writing) stream = self.core_process(self.command, self.buffer_size, self.dest) - return stream + for chunk in stream: + yield chunk # Post-proccessing self.post_process(self.item_id, diff --git a/telemeta/export/mp3.py b/telemeta/export/mp3.py index 4ff7d888..c83344c8 100644 --- a/telemeta/export/mp3.py +++ b/telemeta/export/mp3.py @@ -142,7 +142,8 @@ class Mp3Exporter(ExporterCore): # Processing (streaming + cache writing) stream = self.core_process(self.command,self.buffer_size,self.dest) - return stream + for chunk in stream: + yield chunk # Post-proccessing self.post_process(self.item_id, diff --git a/telemeta/export/ogg.py b/telemeta/export/ogg.py index 15260639..ea641820 100644 --- a/telemeta/export/ogg.py +++ b/telemeta/export/ogg.py @@ -122,7 +122,8 @@ class OggExporter(ExporterCore): # Processing (streaming + cache writing) stream = self.core_process(self.command,self.buffer_size,self.dest) - return stream + for chunk in stream: + yield chunk # Post-proccessing self.post_process(self.item_id, diff --git a/telemeta/export/wav.py b/telemeta/export/wav.py index c323fa90..576bb87a 100644 --- a/telemeta/export/wav.py +++ b/telemeta/export/wav.py @@ -111,17 +111,14 @@ class WavExporter(ExporterCore): self.options) # Initializing - chunk = 0 file_in = open(self.source,'rb') file_out = open(self.dest,'w') - chunk = file_in.read(self.buffer_size) - yield chunk - file_out.write(chunk) - # Core Processing - while chunk: + while True: chunk = file_in.read(self.buffer_size) + if len(chunk) == 0: + break yield chunk file_out.write(chunk) diff --git a/telemeta/visualization/octave/spectrogram2img.m b/telemeta/visualization/octave/spectrogram2img.m index 52a1e1f4..8d1d8fe4 100644 --- a/telemeta/visualization/octave/spectrogram2img.m +++ b/telemeta/visualization/octave/spectrogram2img.m @@ -12,7 +12,7 @@ # # SpectrogramVisualizer2.m # -# Depends: octave2.9, spectrogram.m, xloadimage, imagemagick +# Depends: octave2.9, octave2.9-forge, spectrogram.m, xloadimage, imagemagick clear all; close all; diff --git a/telemeta/visualization/octave/waveform2img.m b/telemeta/visualization/octave/waveform2img.m index 4edeb2f4..69e8f6ce 100644 --- a/telemeta/visualization/octave/waveform2img.m +++ b/telemeta/visualization/octave/waveform2img.m @@ -12,7 +12,7 @@ # # SpectrogramVisualizer2.m # -# Depends: octave2.9, spectrogram.m, xloadimage, imagemagick +# Depends: octave2.9, octave2.9-forge clear all; close all;