00101010

My blog on life the universe and everything…

Category Archives: HowTos

πως αφαιρούμε τον θόρυβο απο ενα ηχητικό αρχείο με το Audacity

Παρακάτω θα περιγράψω πως μπορούμε με το Audacity να αφαιρέσουμε τον θόρυβο απο ενα ηχητικό αρχείο. Το Audacity είναι ενα πρόγραμμα που μας επιτρέπει να κανουμε πολλά και διάφορα με τα ηχητικά μας αρχεία, είναι ανοιχτό λογισμικό και τρέχει φυσικά σε Gnu/Linux όπως και σε άλλα υποδεέστερα λειτουργικά με μήλα και παράθυρα.

Βήμα πρώτο:

Αφου κάνουμε import το ηχητικό μας αρχείο θα δουμε κατι σαν αυτό στην εικόνα 1

Screen Shot 2013-01-31 at 14.46.20

εικόνα 1

Βήμα δεύτερο:

Σκόπος μας εινα τώρα να βρουμε σημεία θόρυβου μεσα σε αυτην την κυματομορφή ωστε να μπορέσουμε να τα αφαιρέσουμε. Για να μπορεσουμε να διακρινουμε τα σημεία θορύβου χρειάζεται καμια φορά να ζουμάρουμε στην κυματομορφή ωστε να “ανοίξει” και να μπορεσουμε να δουμε καλύτερα τα διάφορα τμήματα της.  Το ζουμάρισμα γίνεται απο τα αντίστοιχα κουμπιά με το εικονίδιο μεγεθυντικού φακού που βρίσκονται πάνω δεξιά στην μπάρα με τα εικονίδια. Αφού λοιπόν ζουμάρουμε θα δουμε σημεία της κυματομορφής τα οποία είναι ξεκάθαρα πιο επίπεδα απο άλλα όπως για παράδειγμα στην εικόνα 2. Μπορούμε να επιβεβαιώσουμε οτι το συγκεκριμένο επίπεδο ειναι απλά θόρυβος πατώντας play στο σημείο αυτό.  Όσο μεγαλύτερο τμήμα θορύβου βρούμε τόσο το καλύτερο όπως θα δούμε αργότερα.

Screen Shot 2013-01-31 at 14.47.07

εικόνα 2

Βήμα τρίτο:

Αφού λοιπόν εχουμε βρεί ένα σημείο θορύβου, κρατώντας το αριστερό κουμπί του ποντικιού γλιστράμε τον κέρσορα πάνω άπο το σημείο ώστε να επιλέχθεί ολόκληρο (εικόνα 3). Εδω θέλει προσοχή να μην επιλέξουμε τμήματα αριστερά ή δεξιά του θορύβου τα οποία περιέχουν το πραγματικό μας υλικό, είτε είναι μουσική, κάποια ομιλία κτλ.

Screen Shot 2013-01-31 at 14.46.37

εικόνα 3

Βήμα τέταρτο:

Εχοντας επιλεγμένο το τμήμα του θορύβου οπως στην παραπάνω εικόνα, επιλέγουμε απο το μενου, Effect -> Noise Removal όπως φαίνεται στην παρακάτω εικόνα 4.

Screen Shot 2013-01-31 at 14.46.50

εικόνα 4

Θα δούμε αμέσως ενα παράθυρο οπως αυτό στην εικόνα 5 παρακάτω. Όπως βλέπουμε μας λέει να επιλέξουμε μερικά δευτερόλεπτα ήχου και μετα να πατήσουμε πάνω στο “Get Noise Profile” ώστε να δημιουργήσει το Audacity ένα προφίλ του ήχου και να μπορέσει αργότερα να το αφαιρέσει απο το ηχητικό μας αρχείο. Εμείς εχουμε ήδη επιλέξει το τμήμα του θορύβου οπότε εδω απλά πατάμε “Get Noise Profile“. Αμέσως το παράθυρο αυτό κλεινει χώρις καμια ξεκάθαρη ένδειξη οτι κάτι έγινε. Κι ομως το Audacity έχει τωρα ενα προφίλ του θορύβου βάση του τμήματος που επιλέξαμε.

Screen Shot 2013-01-31 at 14.46.57

εικονα 5

Βημα πέμπτο:

Τώρα θα είμαστε πάλι πίσω στην εικόνα 3 και θα βλέπουμε την κυματομορφή του ηχητικού μας με επιλεγμένο το τμήμα του θορύβου. Πλέον ομως εχουμε τελειώσει με το profiling του θορύβου και θέλουμε επιτέλους να τον αφαιρέσουμε. Τώρα μας μένει να επιλέξουμε το τμήμα εκεινο του ηχητικού μας απο το οποίο θέλουμε να αφαιρεθεί ο θόρυβος.  Καταρχήν πατάμε οπουδηποτε πάνω στην κυματομορφή ωστε να αποεπιλεχτεί το τμήμα του θορύβου. Μιας και εμεις θελουμε να αφαιρέσουμε τον θόρυβο απο όλο το ηχητικό, πατάμε CTRL+A ωστε να επιλεχτεί όλοκληρο το ηχητικο μας απο αρχή μέχρι τέλος (εικόνα 6). Αν θέλαμε να αφαιρεσουμε τον ήχο μόνο απο ενα συγκεκριμενο τμημα θα κάναμε highlight μόνο εκεινο το τμήμα. Ξαναπάμε Effects -> Noise Removal, ξαναβλέπουμε την εικόνα 5 παραπάνω αλλα αυτή τη φορά πατάμε απλά OK κάτω δεξια.

Σημείωση: σε αυτό το σημείο μπορούμε να ακούσουμε με το κουμπί “Preview” ενα δείγμα απο το τελικό αποτελεσμα με βαση τις παραμέτρους που εχει θέσει το Audacity βασισμενο στον θόρυβο που του δώσαμε. Αν πατησουμε Preview και κατι μας χαλάει στο δειγμα (π.χ υπάρχει ακομα θόρυβος, το ηχητικό ακούγεται λίγο σαν ρομποτικό) τότε μπορουμε να παίξουμε με τις τιμες των παραμέτρων οπως βλεπουμε στην εικονα 5 και να ξαναδοκιμασουμε το Preview μεχρι να ειμαστε ικανοποιημενοι ωστε να πατησουμε το ΟΚ.

Το Audacity μας πετάει ενα παραθυράκι οπως αυτό στην εικόνα 7 και μόλις ολοκληρωθεί ο θόρυβος θα εχει αφαιρέθει απο το ηχητικό μας αρχείο.

audacity-full-highlight

εικόνα 6

Screen Shot 2013-01-31 at 14.48.01

εικόνα 7

Advertisements

πως “εξάγουμε” το λινκ κατεβάσματος μιας εκπομπής απ’το μιξκλαουντ

Καθώς ολο και περισσότεροι απο τους παραγωγούς του radiobubble χρησιμοποιουν πλεον το μιξκλαουντ για να ανεβαζουν τις εκπομπές τους, και δεδομενου οτι το μιξκλαουντ δεν παρέχει δυνατοτητα stream-αρισματος ή κατεβάσματος των ανεβασμενων εκπομπών επρεπε να βρω μια λυση σχετικα με το πως να παρέχω τη δυνατότητα ακρόασης των εκπομπών αυτών μεσα απο την εφαρμογη του radiobubble για Android (#rbandroid). Η αναζητηση της λύσης στο συγκεκριμένο πρόβλημα με οδηγησε στην ανακάλυψη ενος site το οποιο με ενα πολυ απλό και μινιμαλιστικό περιβάλλον “εξαγει” απο μια εκπομπή του μιξκλαουντ το λινκ του αρχείου mp3 το οποίο ειναι αποθηκευμένο σε καποιον σερβερ της εν λόγω υπηρεσίας.

Αυτό παρέχει δυο καλά. Αφενός δινει την ελπίδα σε μενα να υλοποιησω τελικα τη δυνατότητα κατεβάσματος των εκπομπων του radiobubble που ειναι ανεβασμενες στο μιξκλαουντ μεσα απο το #rbandroid  (αν και δεν εχω βρει τον χρόνο ακομα να δοκιμασω την λυση που εχω υποψην, ειμαι πολυ αισιοδοξος), αφετέρου δίνει την δυνατότητα στους παραγωγούς του radiobubble, οταν ολοκληρωθει η διαδικασία ανεβάσματος της εκπομπης τους στο μιξκλαουντ να εχουν κατευθείαν και το download link του αρχειου χωρις να χρειάζεται να το ξανα-ανεβαζουν σε αλλη υπηρεσία (π.χ mediafire).  Παρακάτω θα περιγράψω πως γινεται αυτό για να γίνει κατανοητό σε οποιον ενδιαφέρεται.

Μια σημειωση μονο: η “εξαγωγή” του λινκ για το mp3 ισως να ειναι παρανομη καθως το μιξκλαουντ δεν παρεχει δυνατότητα κατεβάσματος αυτων των αρχειων λογω των αδειων χρησης που κατεχει (αν δεν κανω λαθος).

Ωραια,τωρα που έφυγε κι αυτο απ’τη μεση παμε να δουμε πως βρισκουμε το λινκ για το αρχείο mp3 μιας ανεβασμενης εκπομπής.

——————————-

Καθε εκπομπη που ανεβαινει στο μιξκλαουντ εχει ενα λινκ της εκπομπης οπως για παράδειγμα αυτο απο την εκπομπή “Ροζ Ταξιαρχίες” της 17ης Νοεμβρίου.

http://www.mixcloud.com/ailatank/roz_taxiarhies-17-nov/?utm_source=redirect&utm_medium=shorturl&utm_campaign=cloudcast

Αντιγράφουμε αυτο το λινκ λοιπόν και πάμε στη σελίδα http://offliberty.com/.

Στο κεντρικό μεγάλο κουτί της πρώτης σελίδας κανουμε paste το παραπάνω λινκ που ειχαμε αντιγράψει και πατάμε το κουμπί απο κάτω που λεει “Off”.

Το εργαλείο αρχίζει να κανει τα δικά του βγάζωντας ενα μήνυμα “Wait” και μετα απο λίγο βλέπουμε μια εικόνα σαν τη παρακάτω :

Image

Οπως βλέπετε εχει βγαλει ενα μεγαλο κιτρινο κουμπι που λεει “Right-click here and “Save link as..” και απο κάτω του ενα λινκ. ΑΓΝΟΟΥΜΕ το απο κάτω λινκ και ακολουθουμε την συμβουλή του κίτρινου κουμπιου και κάνουμε δεξί κλικ επάνω του και βλεπουμε το μενου επιλογών οπως παρακάτω.

Ομως αντί να πατήσουμε “Save link as..” που μας ζητούσε το κιτρινο κουμπί, εμεις πατάμε πανω στο “Copy Link Location“.

Αφου το κανουμε αυτό, η διευθυνση του αρχείου mp3 εχει αποθηκευτει στην μνήμη του υπολογιστη. Αν παμε σε καποιο κειμενογράφο ή οποιοδηποτε πρόγραμμα που παιρνει κειμενο και πατησουμε paste θα δουμε κατι σαν αυτό:

http://stream18.mxcdn.com/cloudcasts/originals/c/e/b/7/36fa-670b-4b21-88e8-147dd85034f0.mp3”

Μπορούμε τωρα να παμε στο post της εκπομπής και να βαλουμε αυτο το link ως download link για οποιον ενδιαφέρεται να κατεβάσει την εκπομπή.

How to delete multiple files from an svn repository with one line

With this post I hope to start a new habit on this blog. Every time I find a cool and useful one-liner or a nice script or if I write one myself and feel it’s good enough for sharing, I want to make a quick blog post about it. So here’s the first one.

If you use svn a lot on your everyday work you might end up with a situation like this. You have a directory – let’s call it “images”- where you store your.. well images 🙂

Now say you remove from that directory 5 obsolete images. Considering that the ones you delete from that folder have been at some point in the past commited to the svn repository then if you go on a terminal and type

‘svn st’ , among other things you will see something like this

!       /images/image1.png
!       /images/image2.png
!       /images/image3.png
!       /images/image4.png
!       /images/image5.png

now you need to issue a command like this “svn delete images/image1.png” for evey image in that list so that the svn repository deletes those images from the server. You could copy paste the names of those images after the ‘svn delete’ command seperated by a comma to do this in one go, but that would be tiresome especially if you have deleted hundreds of files at once. Copy pasting is just not gonna cut it for you then. So here’s an easy way of doing this with one line on any unix terminal

> svn st | grep ^! | awk ‘{print $2}’ |xargs svn delete

so what does this do? Let’s break it down and see

the first part [ svn st ] prints the status of the svn status of your working directory.

the second part [ grep ^!] filters the contents of the first part (notice the | in between? that’s a pipe which turns the output of one command to input for another) and only prints the lines that start with an exclamation mark. The ^ in regular expression terms means –starts with-. So ^! means starts with an exclamantion mark. This will essentially print your deleted files only and not all the other svn status messages that might be visible if they weren’t filtered out.So you would see a list like this.

!       /images/image1.png
!       /images/image2.png

…[more]

the third part [awk ‘{print $2’}] prints the second column of the output of grep (our previous part). In the listing above there are two columns, the excalamation mark and the file path ( !     /images/image1.png]). the $2 makes sure awk parses the lines and only prints the second column on your terminal.

finally the fourth part [xargs svn delete] passes the result of the previous command (i.e. the paths for the files) as arguments to the [svn delete] command.

After you run the above one-liner, typing “svn st” on the terminal now will, among other things,  print a list of your deleted files like this:

D      /images/image1.png
D      /images/image2.png
D      /images/image3.png
D      /images/image4.png
D      /images/image5.png

notice that the exclamation mark has now changed to a D. Now if you commit to the svn repository the delete commad will be sent for these files and they will be removed from the server.

One tip. The above one liner can be executed in steps for you to see exactly what is happening. So you can run the first step alone, see what happens then add the second part to it and see what happens then the third and then the fourth.Remember to always separate them using the pipe character |.  Actually it’s a good idea to run this one liner without the fourth part once to make sure you see all the files that you intend to delete before passing them as arguments to [xargs svn delete].

That’s it. I hope someone will find this as useful as I found it when I first discovered it.

 

 

How to configure HTC Desire HD for Android development on Gnu/Linux

[UPDATE 26-1-2011] I had to setup my Android phone to be used for development on another machine today, but although I followed the exact same steps that I describe in the post below (which have worked in the past),this time I was still getting

List of devices attached
???????????    insufficient permissions

when running ‘adb devices’ in the terminal. The solution it seems is to run ‘adb kill-server’ and ‘adb start-server’ as root. Then my device was sucessfuly recognized. Hope this helps anyone stuck in the same situation

——————————————————————————————————————

I’ve just recently received my new HTC Desire HD (DHD) and naturally I’m gonna be doing all my development on it from now on. The first time I tried to install one of my apps using [adb] on the DHD I got the notorious permissions error [error: insufficient permissions for device]. Here’s a detailed step-by-step guide to fix this for the DHD (works with other Android devices too).

1. Plug in the device  🙂

2. fire up a terminal and type [lsusb] (without the square brackets)

You should see something like the following:

Bus 002 Device 003: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 002 Device 002: ID 046d:c316 Logitech, Inc. HID-Compliant Keyboard
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 019: ID 0bb4:0ca2 High Tech Computer Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Your list will be different depending on the usb devices that you have plugged in on your PC at the time. The one line that you should see and that is important here is the one that says “Hight Tech Computer Corp” aka HTC! The part we are interested in is higlhighted in red. Keep this in mind and move to the next step.

3. Create a file with your favorite editor under /etc/udev/rules.d called 51-android.rules (so you’ll have /etc/udev/rules.d/51-android.rules)

4. Add the following line in that file

SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4“, ATTRS{idProduct}==”0ca2“, MODE=”0666″ OWNER=”username

Notice the red highlighted parts? Those are taken from the listing that we got when we executed [lsbusb] on the terminal. For other android devices these should be filled in accordingly. Finally replace your username in the OWNER field and save the file.

5. Make sure the file is executable by typing [chmod a+rx 51-android.rules] in the terminal

6. If you have used root priviliges to create/edit the file under /etc/udev/rules.d you might need to change the owner and the group of the file to make sure that you can execute it from your normal user account. Run the following two commands in a terminal in that case

sudo chown username 51-android.rules

sudo chgrp username 51-android.rules

7. finally restart the udev service by typing [service udev restart] or [/etc/init.d/udev restart]. Will need root privileges to do that

8. run [adb devices] on the terminal to see your device name. If you see something like this

List of devices attached
HTXXXXXXXX    device

then it worked!. If you see something like this

List of devices attached
???????????    insufficient permissions

then something is still wrong and you might want to re-iterate over the steps above

Hope this helped someone out there in androidsphere!

How to handle Android orientations in your Android app

I’ve just found an interesting article from the Android Developer’s Blog about how to properly handle orientation changes in an Android applications. Locking your app in one orientation is not enough to avoid potential problems as some new devices on the market now have a default landscape screen (e.g. Dell Streak) and even more devices have keyboards that will force an orientation change even if you have locked it programatically. So read on to the main website if you want to build better apps in the future.

How to solve “network unreachable” problem when installing the Android SDK on Gnu/Linux

When I was trying to get the Available Packages from the Android SDK and AVD Manager, I kept on getting an error saying

"Failed to fetch URL http://dl-ssl.google.com/android/repository/repository.xml, reason: Network is unreachable"

Apparently others had the same problem as I had when trying to get the Android SDK to work on my Gnu/Linux box and I found the solution here.

All you have to do is edit the /etc/sysctl.d/bindv6only.conf file and change the line

net.ipv6.bindv6only = 1
to

net.ipv6.bindv6only = 0

and reboot since the kernel needs to read this option before booting

Get gnu/linux hardware information

I just found this cool tool called dmidecode which “decodes your computer’s DMI (some say  SMBIOS) table contents in a human readble form” and basically spits out detailed information of your system hardware. For example to see what type of RAM memory you have on your motherboard just type as root

dmidecode –type=17.

Similarly if you want to check your processor’s details

dmidecode –type=4

The type parameter can be set to a specific number depending on the hardware you want to investigate. The full list of supported types is found in the dmidecode manual accessible through > man dmidecode. You can use the command without specifying a type in which case you’ll get a really long list of information.

UPDATE:

You can also get the similar information using keywords. For example

dmidecode –type=memory

is the same as using type=17.

The supported keywords are
bios
system
baseboard
chassis
processor
memory
cache
connector
slot

Change system-wide default browser on Debian

Type the following command as root:

update-alternatives –config x-www-browser

This will present a list of installed browser from which you can select the one you prefer.

[credits]

Disable ipv6 on Debian

A few days ago I got my girlfriend’s old PC and set a Debian unstable on it. After installation Iceweasel was taking too long to do the DNS lookup of websites that I was typing into it, something I have never encountered before. After searching over the net, most people seemed to suggest that Debian (for some reason) defaults to ipv6 and apparently when its ipv6 requests don’t resolved properly it falls back to ipv4. So disabling ipv6 should fix the slow DNS lookup problem. Here’s how to disable ipv6 on Debian

-> open /etc/modprobe.d/aliases
-> find a line that says : alias net-pf-10 ipv6
-> change it to : alias net-pf-10 off ipv6

and reboot the machine.

If the problem still persists, go to iceweasel/firefox and type about:config in the url bar. search for “network.dns.disableIPv6” and set it to true.

Hope this helps anyone else with similar problems.

Greek subs in Kaffeine

Credits for this post go to http://zeps-corner.blogspot.com/2008/11/kaffeine-greek-subtitles.html

  1. Download arial fonts,
  2. Extract arialBySapioiCorp.tar.gz to /usr/share/xine/libxine1/fonts/
  3. Settings –> xine Engine Parameters –> subtitles
  4. Beginer Options: normal 0 iso-8859-7
  5. Expert Options: arial
%d bloggers like this: