domingo, 1 de abril de 2012

Depurción del software SoundCatch

Solucion a la rerpoduccion de sonido


El problema del soundcatcher fue que al capturar el sonido media también lo reproducia el sonido que capturaba y se producia un eco eterno entonces ese problema solamente se soluciono con integrarle un mute que al capturar sonido no lo reproducira el software solo lo escuchara atraves del microfono estara la opcion de recuperar el sonido desactivando el mute volviendo el sonido para escuchar lo grabación

sábado, 10 de diciembre de 2011

Detector de movimiento en visual basic 2008

Detector de movimiento

Por que un detector de movimiento de esta calidad??
Es necesario un detector de movimiento de este tipo ya que los anteriores no tenian esa sencillez de deteccion de movimiento ademas este software tiene 4 diferentes modos para la deteccion de movimiento y es muy util para el proyecto ya que cuando una persona presente su exposicion el software detectara si mueve sus manos o el cuerpo de un lado para el otro asi se le podra exijir mas y que saque mayor personalidad al momento de exponer y tambien observar con mayor detalle sus deficiencias.


Chicos que han visitado el blog les agradesco su interes aqui les dejares unos links sobre una persona que que realizo una webcam que detecta movimiento y mediante un boton avisa si hay o no hay movimiento


Visiten este blog


Rolando Pari Sucasaire - Sistemas

Descargar

Sensor de Movimiento Webcam

El nuevo software de sonido (SoundCatcher) en visual y agregado en flash.

Por que nos cambiamos a visual basic??


Los motivos de porque nos cambiamos a visual y no nos quedamos con java es por que no encontravamos un software mejor que el que habiamos mostrado anteriormente de sonido ademas de no encontrar un software de deteccion de movimiento en webcam mejor al cambiarnos de plataforma se nos facilito arto el trabajo ya que en opencv habian muchos software de deteccion de movimiento en webcam trabajados en c++ y bueno buscando softwares en visual encontramos este de audio el SoundCatcher que es abstante bueno y es lo que buscabamos y de webcam tambien encontramos uno bastante bueno en estos momentos no hay nada preparado para mostrar pero ya veran el software de webcam que encontramos que esta buenisimo.


SoundCatcher + software creado por Dario en flash

Que es SoundCatcher??

Es un software en visual basic que al momento de reconocer sonido en un dispositivo de entrada, inicia una grabacion de sonido y grafica espectogramas en tiempo real.
A este software le agregamos un panel de en Adobe Flash que es capaz de indicar la cantidad de saturacion en el microfono del computador, dando por resultado mensajes que indican que tan fuerte o bajo está el nivel de sonido. La mayor complicacion de este pequeño proyecto fué encontrar la manera de combinar nuestro flash con el proyecto existente dentro de Visual.


Aqui el sitio donde fue descargado el codigo de SoundCatcher: SoundCatcher(Por Jeff Morton)


Aqui un video de como funcion y ciertos errores que les puede ocurri al trtar de hacerlo funcionar


Descargar

SoundCatcher(Por Jeff Morton)Archivo descargable

domingo, 13 de noviembre de 2011

Graficador de espectros de audio en java

Aqui mostraremos lo siguiente que encontramos el graficador de sonido en java bueno no hay mucho que explicar ya que el codigo lo encontramos el blog de Rolando palermo Rodríguez Cruz y ahi se encuentra con mas detalles la informacion del codigo


sábado, 29 de octubre de 2011

Continuación de la segunda revisión


Aqui continuando con el segundo avance mostraremos informacion de softwares no terminados que detectan movimiento con un webcam y lenguaje java encontramos 2 sitios se los dejaremos marcados con la respectiva descarga del codigo fuente aqui:



  • http://joelbecker.net/





  • Java – JMF – Detección de Movimiento (Motion Detect)





  • sábado, 22 de octubre de 2011

    Avance proyecto (Segunda revisión)


    Esta es el siguiente avance que tenemos referente a nuestro proyecto que es la reproducción un tipo de formato de audio los formatos que logramos reproducir son WAV OGG y aquí se muestra el código que utilizamos para la reproducción de un sonido WAV que es un platillo de batería todo código referente al audio es sacado es de este sitio código reproducción de audio y como al principio mostramos el main que llama la clase para la reproduccion de el audio "wav2.wav".


    Codigo que se utilizo para la reproducción del audio



    public class Main {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here
    new AePlayWave("wav2.wav").start();
    }
    }

    Esta es la clase que llamad en el main para la reproduccion


    package soundex;

    import java.io.File;
    import java.io.IOException;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.FloatControl;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.SourceDataLine;
    import javax.sound.sampled.UnsupportedAudioFileException;

    public class AePlayWave extends Thread {

    private String filename;

    private Position curPosition;

    private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb

    enum Position {
    LEFT, RIGHT, NORMAL
    };

    public AePlayWave(String wavfile) {
    filename = wavfile;
    curPosition = Position.NORMAL;
    }

    public AePlayWave(String wavfile, Position p) {
    filename = wavfile;
    curPosition = p;
    }

    public void run() {

    File soundFile = new File(filename);
    if (!soundFile.exists()) {
    System.err.println("Wave file not found: " + filename);
    return;
    }

    AudioInputStream audioInputStream = null;
    try {
    audioInputStream = AudioSystem.getAudioInputStream(soundFile);
    } catch (UnsupportedAudioFileException e1) {
    e1.printStackTrace();
    return;
    } catch (IOException e1) {
    e1.printStackTrace();
    return;
    }

    AudioFormat format = audioInputStream.getFormat();
    SourceDataLine auline = null;
    DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);

    try {
    auline = (SourceDataLine) AudioSystem.getLine(info);
    auline.open(format);
    } catch (LineUnavailableException e) {
    e.printStackTrace();
    return;
    } catch (Exception e) {
    e.printStackTrace();
    return;
    }

    if (auline.isControlSupported(FloatControl.Type.PAN)) {
    FloatControl pan = (FloatControl) auline
    .getControl(FloatControl.Type.PAN);
    if (curPosition == Position.RIGHT)
    pan.setValue(1.0f);
    else if (curPosition == Position.LEFT)
    pan.setValue(-1.0f);
    }

    auline.start();
    int nBytesRead = 0;
    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];

    try {
    while (nBytesRead != -1) {
    nBytesRead = audioInputStream.read(abData, 0, abData.length);
    if (nBytesRead >= 0)
    auline.write(abData, 0, nBytesRead);
    }
    } catch (IOException e) {
    e.printStackTrace();
    return;
    } finally {
    auline.drain();
    auline.close();
    }

    }
    }


    miércoles, 5 de octubre de 2011

    Avance del proyecto (Primera revision)


    Informacion sobre JMF

    Sobre JMF la informacion fue bastante escasa ya que manuales para el uso del framework no hay ademas de ser antiguo y tener pocas actualizaciones que lo hacen incompatible con algunos codecs en lo que es reproduccion de audio pero si hay foros en la que publican el uso que le dieron al framework orientado a la utilizacion de webcam y publican los codigos la pagina que fue abstante util fue jc-mouse(Captura de video con webcam) en la que utilizamos arios codigos para nuestro proyecto.


    Codigos que se utilizaron para conectar la webcam


    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.media.*;
    import javax.media.cdm.CaptureDeviceManager;
    import java.io.*;
    import java.awt.*;
    import javax.swing.JOptionPane;
    /**
    * @web http://jc-mouse.blogspot.com/
    * @author Mouse
    */
    public class jmfVideo {
    //Controlador universal de windows
    private String dispositivo = "vfw:Microsoft WDM Image Capture (Win32):0";
    private Player player = null;

    public Component Componente(){
    Component componente_video;
    try {
    // Se obtiene el dispositivo
    CaptureDeviceInfo device = CaptureDeviceManager.getDevice(dispositivo);
    //se obtiene la fuente de datos de captura
    MediaLocator localizador = device.getLocator();
    //El localizador es del tipo "vfw://0" video para windows
    //se crea el PLAYER y se ejecuta
    player = Manager.createRealizedPlayer(localizador);
    player.start();
    } catch (IOException ex) {
    Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NoPlayerException ex) {
    Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
    } catch (CannotRealizeException ex) {
    Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
    }
    //Si se pudo crear el PLAYER, se obtiene el componente de video
    if ((componente_video = player.getVisualComponent()) != null) {
    //se da un tamaño al componente
    componente_video.setSize(320, 240);
    return componente_video;
    } else {
    JOptionPane.showMessageDialog(null,"No se pudo crear el video...");
    return null;
    }
    }

    }

    public class video extends javax.swing.JFrame {
    jmfVideo b = new jmfVideo();
    /** Creates new form video */
    public video() {
    initComponents();
    this.setTitle("WebCam - by Mouse");
    //formulario al centro de la pantalla
    this.setLocationRelativeTo(null);
    //se da un tamaño al jFrame
    this.setSize(320, 240);
    //se coloca un layout tipo CAJA
    getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.LINE_AXIS));
    //se añade el componente de video
    this.add( b.Componente());
    }

    Video de captura de video con jmf