├── Experiment ├── createFrames.m ├── demo.m ├── extract.m ├── extract2.m ├── extractTrackSources.m ├── fusionFrames.m ├── hannWin.m ├── johnny0.mes ├── moving_crossing.raw ├── moving_noncrossing.raw ├── spectrogram.m ├── static_clean.wav └── static_recorded.raw ├── README.md ├── manyears-C ├── CMakeLists.txt ├── COPYING.TXT ├── INTROLAB-ManyEars.cbp ├── Info.plist ├── ManyEars.icns ├── ManyEars.plist ├── Qt4GUI │ ├── CMakeLists.txt │ ├── COPYING.TXT │ ├── Configuration_Vectors │ │ ├── HRIDemo.mes │ │ ├── default.mes │ │ ├── olddefault001.mes │ │ ├── olddefault002.mes │ │ ├── vector-13oct2010-Moderate delete-Very Slow detect.mes │ │ └── vector14.mes │ ├── Images │ │ ├── logo5.png │ │ ├── logo5_bgwhite.png │ │ └── logoonly.png │ ├── PlotBeamformerLatitude.cpp │ ├── PlotBeamformerLatitude.h │ ├── PlotBeamformerLongitude.cpp │ ├── PlotBeamformerLongitude.h │ ├── PlotLatitude.cpp │ ├── PlotLongitude.cpp │ ├── README.TXT │ ├── StreamOutputWidget.cpp │ ├── StreamOutputWidget.h │ ├── StreamOutputWidget.ui │ ├── aboutDialog.cpp │ ├── aboutDialog.h │ ├── algorithmCore.cpp │ ├── algorithmCore.h │ ├── audioManager.cpp │ ├── audioManager.h │ ├── colorID.cpp │ ├── colorID.h │ ├── colorPalette.cpp │ ├── colorPalette.h │ ├── configurationLoadSave.cpp │ ├── configurationLoadSave.h │ ├── configurationVector.cpp │ ├── configurationVector.h │ ├── coreThread.cpp │ ├── coreThread.h │ ├── graph2D.cpp │ ├── graph2D.h │ ├── graph3D.cpp │ ├── graph3D.h │ ├── inputOutputManager.cpp │ ├── inputOutputManager.h │ ├── listProperty.cpp │ ├── listProperty.h │ ├── main.cpp │ ├── manyearsObj.cpp │ ├── manyearsObj.h │ ├── mdiSubWindow.cpp │ ├── mdiSubWindow.h │ ├── mdiWindow.cpp │ ├── mdiWindow.h │ ├── parametersManager.cpp │ ├── parametersManager.h │ ├── plot.cpp │ ├── plot.h │ ├── plotLatitude.h │ ├── plotLongitude.h │ ├── potentialSource.cpp │ ├── potentialSource.h │ ├── potentialSourceManager.cpp │ ├── potentialSourceManager.h │ ├── potentialSourceVector.cpp │ ├── potentialSourceVector.h │ ├── property.cpp │ ├── property.h │ ├── propertyEditor.cpp │ ├── propertyEditor.h │ ├── resources.qrc │ ├── scrollListProperty.cpp │ ├── scrollListProperty.h │ ├── soundInputConfig.cpp │ ├── soundInputConfig.h │ ├── source.cpp │ ├── source.h │ ├── sourceBuffer.cpp │ ├── sourceBuffer.h │ ├── sourceEvents.cpp │ ├── sourceEvents.h │ ├── sourceGenerator.cpp │ ├── sourceGenerator.h │ ├── sourceManager.cpp │ ├── sourceManager.h │ ├── sphereObj.cpp │ ├── sphereObj.h │ ├── spherePlot.cpp │ ├── spherePlot.h │ ├── trackedSource.cpp │ ├── trackedSource.h │ ├── trackedSourceManager.cpp │ ├── trackedSourceManager.h │ ├── trackedSourceVector.cpp │ ├── trackedSourceVector.h │ ├── winBeamformerLatitude.cpp │ ├── winBeamformerLatitude.h │ ├── winBeamformerLongitude.cpp │ ├── winBeamformerLongitude.h │ ├── winLatitude.cpp │ ├── winLatitude.h │ ├── winLongitude.cpp │ ├── winLongitude.h │ ├── winSphere.cpp │ ├── winSphere.h │ ├── window.cpp │ └── window.h ├── README.TXT ├── RTAudio │ ├── CMakeLists.txt │ ├── RtAudio.cpp │ ├── RtAudio.h │ ├── RtError.h │ ├── asio.cpp │ ├── asio.h │ ├── asiodrivers.cpp │ ├── asiodrivers.h │ ├── asiodrvr.h │ ├── asiolist.cpp │ ├── asiolist.h │ ├── asiosys.h │ ├── dsound.h │ ├── ginclude.h │ ├── iasiodrv.h │ ├── iasiothiscallresolver.cpp │ ├── iasiothiscallresolver.h │ ├── readme │ └── soundcard.h ├── Samples │ └── rawdata_2srcs_90_90.raw ├── demo │ ├── CMakeLists.txt │ └── manyears_demo.c ├── dsplib │ ├── CMakeLists.txt │ ├── Geometry │ │ ├── microphones.c │ │ └── microphones.h │ ├── Localisation │ │ ├── beamformer.c │ │ ├── beamformer.h │ │ ├── delays.c │ │ ├── delays.h │ │ ├── potentialSources.c │ │ ├── potentialSources.h │ │ ├── rij.c │ │ ├── rij.h │ │ ├── sphere.c │ │ └── sphere.h │ ├── Output │ │ ├── output.c │ │ ├── output.h │ │ ├── outputChunk.c │ │ ├── outputChunk.h │ │ ├── outputSingleStream.c │ │ └── outputSingleStream.h │ ├── Postprocessing │ │ ├── postprocessor.c │ │ └── postprocessor.h │ ├── Preprocessing │ │ ├── mcra.c │ │ ├── mcra.h │ │ ├── micst.c │ │ ├── micst.h │ │ ├── preprocessor.c │ │ └── preprocessor.h │ ├── Separation │ │ ├── gss.c │ │ ├── gss.h │ │ ├── postfilter.c │ │ ├── postfilter.h │ │ ├── postfilteredSources.c │ │ ├── postfilteredSources.h │ │ ├── separatedSources.c │ │ └── separatedSources.h │ ├── Tracking │ │ ├── filter.c │ │ ├── filter.h │ │ ├── mixture.c │ │ ├── mixture.h │ │ ├── trackedSources.c │ │ └── trackedSources.h │ ├── Utilities │ │ ├── dynamicMemory.c │ │ ├── dynamicMemory.h │ │ ├── fft.c │ │ ├── fft.h │ │ ├── idList.c │ │ ├── idList.h │ │ ├── idManager.c │ │ ├── idManager.h │ │ ├── linearCorrelation.c │ │ ├── linearCorrelation.h │ │ ├── mathadvanced.c │ │ ├── mathadvanced.h │ │ ├── matrix.c │ │ ├── matrix.h │ │ ├── randGen.c │ │ ├── randGen.h │ │ ├── transcendental.c │ │ ├── transcendental.h │ │ ├── window.c │ │ └── window.h │ ├── hardware.h │ ├── overallContext.c │ ├── overallContext.h │ ├── parameters.c │ ├── parameters.h │ ├── sseTest.c │ └── sseTest.h ├── example │ ├── CMakeLists.txt │ ├── manyears_console.c │ ├── manyears_iterative.c │ └── manyears_live.cpp ├── macros │ ├── FindJack.cmake │ └── FindQtMobility.cmake └── package │ └── CMakeLists.txt └── manyears-flowdesigner ├── AUTHORS ├── CMakeLists.txt ├── COPYING ├── ChangeLog ├── GUI ├── AudioSource.h ├── CMakeLists.txt ├── DefaultImage.xpm ├── FDReader.cpp ├── FDReader.h ├── ImageView.cpp ├── ImageView.h ├── QtProbeAudioViewer.cpp ├── QtProbeAudioViewer.h ├── SNCRZ30Cam.cpp ├── SNCRZ30Cam.h ├── TrackAudioWidget.cpp ├── TrackAudioWidget.h ├── audioview.cpp ├── audioview.h └── main.cpp ├── INSTALL ├── ManyEars3D ├── CMakeLists.txt ├── EqualGains3D.cc ├── Localize3D.cc ├── SourceTrack3D.cc ├── SteeringVector3D.cc ├── TrackingDecision3D.cc ├── particles3D.cc └── particles3D.h ├── MicrophoneArrayKit ├── Electret-preamp │ ├── Electret 252EM9765.pdf │ ├── Electret FG-23329-C05.pdf │ ├── Electret preamp public release (AUD0522.03).bot │ ├── Electret preamp public release (AUD0522.03).gko │ ├── Electret preamp public release (AUD0522.03).pdf │ ├── Electret preamp public release (AUD0522.03).smb │ ├── Electret preamp public release (AUD0522.03).smt │ ├── Electret preamp public release (AUD0522.03).ssb │ ├── Electret preamp public release (AUD0522.03).sst │ ├── Electret preamp public release (AUD0522.03).tap │ ├── Electret preamp public release (AUD0522.03).top │ ├── Electret preamp public release (AUD0522.03).xls │ ├── LICENSE.TXT │ └── layers.txt ├── LICENSE.TXT └── Mic_Interface │ ├── LICENSE.TXT │ ├── Mic Interface public release (AUD0816.02).bot │ ├── Mic Interface public release (AUD0816.02).gko │ ├── Mic Interface public release (AUD0816.02).pdf │ ├── Mic Interface public release (AUD0816.02).smb │ ├── Mic Interface public release (AUD0816.02).smt │ ├── Mic Interface public release (AUD0816.02).ssb │ ├── Mic Interface public release (AUD0816.02).sst │ ├── Mic Interface public release (AUD0816.02).tap │ ├── Mic Interface public release (AUD0816.02).top │ ├── Mic Interface public release (AUD0816.02).xls │ └── layers.txt ├── NEWS ├── README ├── TODO ├── cameraBridge ├── CMakeLists.txt ├── CameraBridge.cpp ├── CameraBridge.h ├── MainWindow.ui ├── main.cpp ├── posix_qextserialport.cpp ├── posix_qextserialport.h ├── qextserialbase.cpp ├── qextserialbase.h ├── qextserialenumerator.cpp ├── qextserialenumerator.h ├── qextserialport.cpp ├── qextserialport.h ├── win_qextserialport.cpp └── win_qextserialport.h ├── config ├── cube_mic_pos.mat ├── planar_mic_pos.mat └── robot_mic_pos.mat ├── license.txt ├── macros ├── FindAlsa.cmake ├── FindFFTW3.cmake └── FindLibXml2.cmake ├── n-files ├── LocalizeOSC.n ├── LocalizeSeparAndSaveTCP.n ├── LocalizeSeparAndSaveWav.n ├── LocalizeSeparAndSaveWavWin32.n ├── TestSphinx.n ├── localization.n ├── localize.n ├── separation_spl_coque_raw.n ├── speex.n ├── start_manyears.bat ├── track_sources.n └── tracking3D.n ├── sphinx4 ├── 10001-90210-01803.wav ├── CMakeLists.txt ├── README ├── Sphinx4TcpServer.java ├── TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar ├── config.xml ├── digits.gram ├── js.jar ├── jsapi.jar ├── sphinx4.jar └── tags.jar ├── src ├── AudioServer.cc ├── AudioServer.h ├── CMakeLists.txt ├── EqualGains.cc ├── LocalizeBeam.cc ├── Map.h ├── QtTCPBinarySend.cc ├── RtAudio.cpp ├── RtAudio.h ├── RtError.h ├── SaveAudioStreamTCP.cc ├── SaveRawAudio.cc ├── SaveSources.cc ├── SaveSpeex.cc ├── SaveWav.cc ├── SaveWavWin32.cc ├── SeparGSS.cc ├── ServerSave.cc ├── ServerSaveRaw.cc ├── ServerSaveSpeex.cc ├── ServerSaveWav.cc ├── SoundMap.cc ├── SourceInfo.cc ├── SourceInfo.h ├── SourceTrack.cc ├── UDPOSCOut.cc ├── alsadevice.cpp ├── alsadevice.h ├── asio │ ├── asio.cpp │ ├── asio.h │ ├── asiodrivers.cpp │ ├── asiodrivers.h │ ├── asiodrvr.h │ ├── asiolist.cpp │ ├── asiolist.h │ ├── asiosys.h │ ├── dsound.h │ ├── ginclude.h │ ├── iasiodrv.h │ ├── iasiothiscallresolver.cpp │ ├── iasiothiscallresolver.h │ └── soundcard.h ├── audio_client.cc ├── audio_server.cc ├── audio_server2.cc ├── conj_window.cc ├── conj_window.h ├── info.cc ├── openStream.cc ├── particles.cc ├── particles.h ├── play_client.cc ├── solver.h ├── speex_play.sh ├── sphere.cc ├── sphere.h └── sphinx_server.cc ├── start_manyears.sh └── tools ├── CMakeLists.txt └── ManyEars_Setup.nsi /Experiment/extract.m: -------------------------------------------------------------------------------- 1 | fid = fopen('/media/Data/Maîtrise/Expériences/Experience3/Test/TwoSpeakers/Recorded/2011-05-22_13-09-12.raw','r'); 2 | 3 | nChannels = 8; 4 | nSamplesNoise = 400000; 5 | nSamplesSpeech = 768000; 6 | 7 | vectorNoise = fread(fid, nChannels * nSamplesNoise, 'int16'); 8 | vectorSpeech = fread(fid, nChannels * nSamplesSpeech, 'int16'); 9 | 10 | fclose(fid); 11 | 12 | oneChannelNoise = vectorNoise(1:8:(nChannels*nSamplesNoise))/32768; 13 | oneChannelSpeech = vectorSpeech(1:8:(nChannels*nSamplesSpeech))/32768; 14 | 15 | fid = fopen('/media/Data/Maîtrise/Expériences/Experience3/Test/TwoSpeakers/Recorded/01-02.raw','w'); 16 | fwrite(fid, vectorSpeech, 'int16'); 17 | fclose(fid); 18 | 19 | figure(1); 20 | plot(oneChannelNoise); 21 | figure(2); 22 | plot(oneChannelSpeech); -------------------------------------------------------------------------------- /Experiment/extract2.m: -------------------------------------------------------------------------------- 1 | fid = fopen('/media/Data/Doctorat/Articles/AR2012ManyEars/Experiment/essai3_2sources_180_croise.raw','r'); 2 | 3 | nChannels = 8; 4 | nSamplesSpeech = 1152000; 5 | 6 | vectorSpeech = fread(fid, nChannels * nSamplesSpeech, 'int16'); 7 | 8 | fclose(fid); 9 | 10 | oneChannelSpeech = vectorSpeech(1:8:(nChannels*nSamplesSpeech))/32768; 11 | 12 | fid = fopen('/media/Data/Doctorat/Articles/AR2012ManyEars/Experiment/essai3_2sources_180_croise_cropped.raw','w'); 13 | fwrite(fid, vectorSpeech, 'int16'); 14 | fclose(fid); 15 | 16 | figure(1); 17 | plot(oneChannelSpeech); -------------------------------------------------------------------------------- /Experiment/hannWin.m: -------------------------------------------------------------------------------- 1 | % 2 | % ************************************************************************* 3 | % * Authors: Francois Grondin * 4 | % ************************************************************************* 5 | % * Inputs: nSamples Size of the window * 6 | % * Outputs: hannWindow Resulting window * 7 | % ************************************************************************* 8 | % * Description: * 9 | % * * 10 | % * This function creates a hann window * 11 | % * * 12 | % ************************************************************************* 13 | % * DISCLAIMER: * 14 | % * * 15 | % * Copyright and other intellectual property laws protect these * 16 | % * materials. Reproduction or retransmission of the materials, in whole * 17 | % * or in part, in any manner, without the prior consent of the copyright * 18 | % * holders, is a violation of copyright law. * 19 | % * * 20 | % * The authors are not responsible for any damages whatsoever, including * 21 | % * any type of loss of information, interruption of business, personal * 22 | % * injury and/or any damage or consequential damage without any * 23 | % * limitation incurred before, during or after the use of this code. * 24 | % ************************************************************************* 25 | % 26 | 27 | function [hannWindow] = hannWin(nSamples) 28 | 29 | n = 0:1:(nSamples-1); 30 | 31 | hannWindow = 0.5 * (1 - cos( 2 * pi * n / (nSamples - 1) ) ); 32 | 33 | return -------------------------------------------------------------------------------- /Experiment/johnny0.mes: -------------------------------------------------------------------------------- 1 | GEO_MICS_MIC1_GAIN=F1; 2 | GEO_MICS_MIC1_X=F0.02999999933; 3 | GEO_MICS_MIC1_Y=F-0.1000000015; 4 | GEO_MICS_MIC1_Z=F-0.01999999955; 5 | GEO_MICS_MIC2_GAIN=F1; 6 | GEO_MICS_MIC2_X=F0.1000000015; 7 | GEO_MICS_MIC2_Y=F0; 8 | GEO_MICS_MIC2_Z=F-0.200000003; 9 | GEO_MICS_MIC3_GAIN=F1; 10 | GEO_MICS_MIC3_X=F0.1199999973; 11 | GEO_MICS_MIC3_Y=F0; 12 | GEO_MICS_MIC3_Z=F-0.6899999976; 13 | GEO_MICS_MIC4_GAIN=F1; 14 | GEO_MICS_MIC4_X=F0.02999999933; 15 | GEO_MICS_MIC4_Y=F0.1000000015; 16 | GEO_MICS_MIC4_Z=F-0.01999999955; 17 | GEO_MICS_MIC5_GAIN=F1; 18 | GEO_MICS_MIC5_X=F-0.1700000018; 19 | GEO_MICS_MIC5_Y=F0.1099999994; 20 | GEO_MICS_MIC5_Z=F-0.2700000107; 21 | GEO_MICS_MIC6_GAIN=F1; 22 | GEO_MICS_MIC6_X=F-0.1700000018; 23 | GEO_MICS_MIC6_Y=F0.1099999994; 24 | GEO_MICS_MIC6_Z=F-0.7200000286; 25 | GEO_MICS_MIC7_GAIN=F1; 26 | GEO_MICS_MIC7_X=F-0.1700000018; 27 | GEO_MICS_MIC7_Y=F-0.1099999994; 28 | GEO_MICS_MIC7_Z=F-0.7200000286; 29 | GEO_MICS_MIC8_GAIN=F1; 30 | GEO_MICS_MIC8_X=F-0.1700000018; 31 | GEO_MICS_MIC8_Y=F-0.1099999994; 32 | GEO_MICS_MIC8_Z=F-0.2700000107; 33 | BEAMFORMER_MAXSOURCES=I4; 34 | BEAMFORMER_ET=F600; 35 | BEAMFORMER_FILTERRANGE=I5; 36 | BEAMFORMER_RESETRANGE=I5; 37 | FILTER_STANDARDDEVIATION=F0.200000003; 38 | FILTER_PREDICTION_STOP_ALPHA=F2; 39 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 40 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 41 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 42 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 43 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 44 | FILTER_INERTIA_X=F1; 45 | FILTER_INERTIA_Y=F1; 46 | FILTER_INERTIA_Z=F1; 47 | FILTER_DELTAT=F0.00800000038; 48 | FILTER_STATEUPDATE=F0.02999999933; 49 | FILTER_STOP_PERCENTAGE=F0.5; 50 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 51 | FILTER_ACCELERATED_PERCENTAGE=F0.3000000119; 52 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 53 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 54 | FILTER_P0=F0.5; 55 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 56 | FILTER_BUFFERSIZE=I1; 57 | GEN_DYNSOURCES=I8; 58 | MIXTURE_PNEW=F0.004999999888; 59 | MIXTURE_PFALSE=F0.05000000075; 60 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 61 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 62 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 63 | MIXTURE_CONFIRM_COUNT_COUNTER=I50; 64 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 65 | MIXTURE_CUMULATIVE_TIME_PROBATION=I50; 66 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 67 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I25; 68 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.5; 69 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I50; 70 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9499999881; 71 | MICST_ALPHAD=F0.1000000015; 72 | MICST_GAMMA=F0.3000000119; 73 | MICST_DELTA=F1; 74 | MICST_MCRA_ALPHAS=F0.9499999881; 75 | MICST_MCRA_ALPHAP=F0.200000003; 76 | MICST_MCRA_ALPHAD=F0.9499999881; 77 | MICST_MCRA_L=I150; 78 | MICST_MCRA_DELTA=F1; 79 | -------------------------------------------------------------------------------- /Experiment/moving_crossing.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/Experiment/moving_crossing.raw -------------------------------------------------------------------------------- /Experiment/moving_noncrossing.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/Experiment/moving_noncrossing.raw -------------------------------------------------------------------------------- /Experiment/static_clean.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/Experiment/static_clean.wav -------------------------------------------------------------------------------- /Experiment/static_recorded.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/Experiment/static_recorded.raw -------------------------------------------------------------------------------- /manyears-C/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ManyEars 9 | CFBundleGetInfoString 10 | ManyEars App 11 | CFBundleIconFile 12 | ManyEars.icns 13 | CFBundleIdentifier 14 | ManyEars 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleLongVersionString 18 | ManyEars 1.0.0 19 | CFBundleName 20 | ManyEars 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | 1.0.0 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | 1.0.0 29 | CSResourcesFileMapped 30 | 31 | LSRequiresCarbon 32 | 33 | NSHumanReadableCopyright 34 | François Grondin, Dominic Létourneau 35 | 36 | 37 | -------------------------------------------------------------------------------- /manyears-C/ManyEars.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/ManyEars.icns -------------------------------------------------------------------------------- /manyears-C/ManyEars.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ManyEarsStartup 9 | CFBundleGetInfoString 10 | ManyEars App 11 | CFBundleIconFile 12 | ManyEars.icns 13 | CFBundleIdentifier 14 | ManyEars 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleLongVersionString 18 | ManyEars 1.0.0 19 | CFBundleName 20 | ManyEars 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | 0.10.0 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | 0.10.0 29 | CSResourcesFileMapped 30 | 31 | LSRequiresCarbon 32 | 33 | NSHumanReadableCopyright 34 | François Grondin, Dominic Létourneau 35 | 36 | 37 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/COPYING.TXT: -------------------------------------------------------------------------------- 1 | (C) IntRoLab 2002-2010 - 2 | Francois Grondin, 3 | Jean-Marc Valin, 4 | Dominic Letourneau 5 | 6 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/HRIDemo.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXSOURCES=I4; 2 | BEAMFORMER_ET=F1000; 3 | BEAMFORMER_FILTERRANGE=I5; 4 | BEAMFORMER_RESETRANGE=I5; 5 | GEO_MICS_MIC1_GAIN=F1; 6 | GEO_MICS_MIC1_X=F-0.1075; 7 | GEO_MICS_MIC1_Y=F0.08; 8 | GEO_MICS_MIC1_Z=F0.1075; 9 | GEO_MICS_MIC2_GAIN=F1; 10 | GEO_MICS_MIC2_X=F0.1075; 11 | GEO_MICS_MIC2_Y=F0.08; 12 | GEO_MICS_MIC2_Z=F0.1075; 13 | GEO_MICS_MIC3_GAIN=F1; 14 | GEO_MICS_MIC3_X=F-0.1075; 15 | GEO_MICS_MIC3_Y=F0.08; 16 | GEO_MICS_MIC3_Z=F-0.1075; 17 | GEO_MICS_MIC4_GAIN=F1; 18 | GEO_MICS_MIC4_X=F0.1075; 19 | GEO_MICS_MIC4_Y=F0.08; 20 | GEO_MICS_MIC4_Z=F-0.1075; 21 | GEO_MICS_MIC5_GAIN=F1; 22 | GEO_MICS_MIC5_X=F0.1075; 23 | GEO_MICS_MIC5_Y=F-0.08; 24 | GEO_MICS_MIC5_Z=F0.1075; 25 | GEO_MICS_MIC6_GAIN=F1; 26 | GEO_MICS_MIC6_X=F-0.1075; 27 | GEO_MICS_MIC6_Y=F-0.08; 28 | GEO_MICS_MIC6_Z=F0.1075; 29 | GEO_MICS_MIC7_GAIN=F1; 30 | GEO_MICS_MIC7_X=F0.1075; 31 | GEO_MICS_MIC7_Y=F-0.08; 32 | GEO_MICS_MIC7_Z=F-0.1075; 33 | GEO_MICS_MIC8_GAIN=F1; 34 | GEO_MICS_MIC8_X=F-0.1075; 35 | GEO_MICS_MIC8_Y=F-0.08; 36 | GEO_MICS_MIC8_Z=F-0.1075; 37 | FILTER_STANDARDDEVIATION=F0.200000003; 38 | FILTER_PREDICTION_STOP_ALPHA=F2; 39 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 40 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 41 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 42 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 43 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 44 | FILTER_INERTIA_X=F1; 45 | FILTER_INERTIA_Y=F1; 46 | FILTER_INERTIA_Z=F1; 47 | FILTER_DELTAT=F0.00800000038; 48 | FILTER_STATEUPDATE=F0.02999999933; 49 | FILTER_STOP_PERCENTAGE=F0.5; 50 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 51 | FILTER_ACCELERATED_PERCENTAGE=F0.3000000119; 52 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 53 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 54 | FILTER_P0=F0.5; 55 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 56 | FILTER_BUFFERSIZE=I1; 57 | GEN_DYNSOURCES=I8; 58 | MIXTURE_PNEW=F0.004999999888; 59 | MIXTURE_PFALSE=F0.05000000075; 60 | MIXTURE_ET=F500; 61 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 62 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 63 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 64 | MIXTURE_CONFIRM_COUNT_COUNTER=I1; 65 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 66 | MIXTURE_CUMULATIVE_TIME_PROBATION=I50; 67 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 68 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I25; 69 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.5; 70 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I50; 71 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9499999881; 72 | MICST_ALPHAD=F0.1000000015; 73 | MICST_GAMMA=F0.3000000119; 74 | MICST_DELTA=F1; 75 | MICST_MCRA_ALPHAS=F0.9499999881; 76 | MICST_MCRA_ALPHAP=F0.200000003; 77 | MICST_MCRA_ALPHAD=F0.9499999881; 78 | MICST_MCRA_L=I150; 79 | MICST_MCRA_DELTA=F1; 80 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/default.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXSOURCES=I4; 2 | BEAMFORMER_ET=F1000; 3 | BEAMFORMER_FILTERRANGE=I5; 4 | BEAMFORMER_RESETRANGE=I5; 5 | GEO_MICS_MIC1_GAIN=F1; 6 | GEO_MICS_MIC1_X=F-0.1599999964; 7 | GEO_MICS_MIC1_Y=F0.1599999964; 8 | GEO_MICS_MIC1_Z=F0.1599999964; 9 | GEO_MICS_MIC2_GAIN=F1; 10 | GEO_MICS_MIC2_X=F-0.1599999964; 11 | GEO_MICS_MIC2_Y=F0.1599999964; 12 | GEO_MICS_MIC2_Z=F-0.1599999964; 13 | GEO_MICS_MIC3_GAIN=F1; 14 | GEO_MICS_MIC3_X=F0.1599999964; 15 | GEO_MICS_MIC3_Y=F0.1599999964; 16 | GEO_MICS_MIC3_Z=F0.1599999964; 17 | GEO_MICS_MIC4_GAIN=F1; 18 | GEO_MICS_MIC4_X=F0.1599999964; 19 | GEO_MICS_MIC4_Y=F0.1599999964; 20 | GEO_MICS_MIC4_Z=F-0.1599999964; 21 | GEO_MICS_MIC5_GAIN=F1; 22 | GEO_MICS_MIC5_X=F-0.1599999964; 23 | GEO_MICS_MIC5_Y=F-0.1599999964; 24 | GEO_MICS_MIC5_Z=F0.1599999964; 25 | GEO_MICS_MIC6_GAIN=F1; 26 | GEO_MICS_MIC6_X=F-0.1599999964; 27 | GEO_MICS_MIC6_Y=F-0.1599999964; 28 | GEO_MICS_MIC6_Z=F-0.1599999964; 29 | GEO_MICS_MIC7_GAIN=F1; 30 | GEO_MICS_MIC7_X=F0.1599999964; 31 | GEO_MICS_MIC7_Y=F-0.1599999964; 32 | GEO_MICS_MIC7_Z=F0.1599999964; 33 | GEO_MICS_MIC8_GAIN=F1; 34 | GEO_MICS_MIC8_X=F0.1599999964; 35 | GEO_MICS_MIC8_Y=F-0.1599999964; 36 | GEO_MICS_MIC8_Z=F-0.1599999964; 37 | FILTER_STANDARDDEVIATION=F0.200000003; 38 | FILTER_PREDICTION_STOP_ALPHA=F2; 39 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 40 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 41 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 42 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 43 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 44 | FILTER_INERTIA_X=F1; 45 | FILTER_INERTIA_Y=F1; 46 | FILTER_INERTIA_Z=F1; 47 | FILTER_DELTAT=F0.00800000038; 48 | FILTER_STATEUPDATE=F0.02999999933; 49 | FILTER_STOP_PERCENTAGE=F0.5; 50 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 51 | FILTER_ACCELERATED_PERCENTAGE=F0.3000000119; 52 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 53 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 54 | FILTER_P0=F0.5; 55 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 56 | FILTER_BUFFERSIZE=I1; 57 | GEN_DYNSOURCES=I8; 58 | MIXTURE_PNEW=F0.004999999888; 59 | MIXTURE_PFALSE=F0.05000000075; 60 | MIXTURE_ET=F500; 61 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 62 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 63 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 64 | MIXTURE_CONFIRM_COUNT_COUNTER=I1; 65 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 66 | MIXTURE_CUMULATIVE_TIME_PROBATION=I50; 67 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 68 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I25; 69 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.5; 70 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I50; 71 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9499999881; 72 | MICST_ALPHAD=F0.1000000015; 73 | MICST_GAMMA=F0.3000000119; 74 | MICST_DELTA=F1; 75 | MICST_MCRA_ALPHAS=F0.9499999881; 76 | MICST_MCRA_ALPHAP=F0.200000003; 77 | MICST_MCRA_ALPHAD=F0.9499999881; 78 | MICST_MCRA_L=I150; 79 | MICST_MCRA_DELTA=F1; 80 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/olddefault001.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXPOTENTIAL=I4; 2 | BEAMFORMER_NUMBERMAX=I50; 3 | BEAMFORMER_MAXTHRESHOLD=F0.8500000238; 4 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL=F0.200000003; 5 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL_NEXT=F0.5; 6 | BEAMFORMER_ANGLE_TOLERANCE_VERTICAL=F0; 7 | BEAMFORMER_MAXRANGE=I6; 8 | BEAMFORMER_DELAYS_RESET=I3; 9 | BEAMFORMER_MIC1_GAIN=F1; 10 | BEAMFORMER_MIC1_X=F-0.1599999964; 11 | BEAMFORMER_MIC1_Y=F0.1599999964; 12 | BEAMFORMER_MIC1_Z=F0.1599999964; 13 | BEAMFORMER_MIC2_GAIN=F1; 14 | BEAMFORMER_MIC2_X=F-0.1599999964; 15 | BEAMFORMER_MIC2_Y=F0.1599999964; 16 | BEAMFORMER_MIC2_Z=F-0.1599999964; 17 | BEAMFORMER_MIC3_GAIN=F1; 18 | BEAMFORMER_MIC3_X=F0.1599999964; 19 | BEAMFORMER_MIC3_Y=F0.1599999964; 20 | BEAMFORMER_MIC3_Z=F0.1599999964; 21 | BEAMFORMER_MIC4_GAIN=F1; 22 | BEAMFORMER_MIC4_X=F0.1599999964; 23 | BEAMFORMER_MIC4_Y=F0.1599999964; 24 | BEAMFORMER_MIC4_Z=F-0.1599999964; 25 | BEAMFORMER_MIC5_GAIN=F1; 26 | BEAMFORMER_MIC5_X=F-0.1599999964; 27 | BEAMFORMER_MIC5_Y=F-0.1599999964; 28 | BEAMFORMER_MIC5_Z=F0.1599999964; 29 | BEAMFORMER_MIC6_GAIN=F1; 30 | BEAMFORMER_MIC6_X=F-0.1599999964; 31 | BEAMFORMER_MIC6_Y=F-0.1599999964; 32 | BEAMFORMER_MIC6_Z=F-0.1599999964; 33 | BEAMFORMER_MIC7_GAIN=F1; 34 | BEAMFORMER_MIC7_X=F0.1599999964; 35 | BEAMFORMER_MIC7_Y=F-0.1599999964; 36 | BEAMFORMER_MIC7_Z=F0.1599999964; 37 | BEAMFORMER_MIC8_GAIN=F1; 38 | BEAMFORMER_MIC8_X=F0.1599999964; 39 | BEAMFORMER_MIC8_Y=F-0.1599999964; 40 | BEAMFORMER_MIC8_Z=F-0.1599999964; 41 | FILTER_STANDARDDEVIATION=F0.200000003; 42 | FILTER_PREDICTION_STOP_ALPHA=F2; 43 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 44 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 45 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 46 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 47 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 48 | FILTER_INERTIA_X=F1; 49 | FILTER_INERTIA_Y=F1; 50 | FILTER_INERTIA_Z=F1; 51 | FILTER_DELTAT=F0.00800000038; 52 | FILTER_STATEUPDATE=F0.02999999933; 53 | FILTER_STOP_PERCENTAGE=F0.200000003; 54 | FILTER_CONSTANT_PERCENTAGE=F0.1000000015; 55 | FILTER_ACCELERATED_PERCENTAGE=F0.6999999881; 56 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 57 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 58 | FILTER_P0=F0.5; 59 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 60 | FILTER_BUFFERSIZE=I1; 61 | GEN_DYNSOURCES=I8; 62 | MIXTURE_PNEW=F0.004999999888; 63 | MIXTURE_PFALSE=F0.05000000075; 64 | MIXTURE_ET=F500; 65 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 66 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 67 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 68 | MIXTURE_CONFIRM_COUNT_COUNTER=I20; 69 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 70 | MIXTURE_CUMULATIVE_TIME_PROBATION=I10; 71 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 72 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I50; 73 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.1000000015; 74 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I300; 75 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9950000048; 76 | MICST_ALPHAD=F0.1000000015; 77 | MICST_GAMMA=F0.3000000119; 78 | MICST_DELTA=F1; 79 | MICST_MCRA_ALPHAS=F0.9499999881; 80 | MICST_MCRA_ALPHAP=F0.200000003; 81 | MICST_MCRA_ALPHAD=F0.9499999881; 82 | MICST_MCRA_L=I150; 83 | MICST_MCRA_DELTA=F1; 84 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/olddefault002.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXPOTENTIAL=I4; 2 | BEAMFORMER_NUMBERMAX=I50; 3 | BEAMFORMER_MAXTHRESHOLD=F0.8500000238; 4 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL=F0.200000003; 5 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL_NEXT=F0.5; 6 | BEAMFORMER_ANGLE_TOLERANCE_VERTICAL=F0; 7 | BEAMFORMER_MAXRANGE=I6; 8 | BEAMFORMER_DELAYS_RESET=I3; 9 | BEAMFORMER_MIC1_GAIN=F1; 10 | BEAMFORMER_MIC1_X=F-0.1599999964; 11 | BEAMFORMER_MIC1_Y=F0.1599999964; 12 | BEAMFORMER_MIC1_Z=F0.1599999964; 13 | BEAMFORMER_MIC2_GAIN=F1; 14 | BEAMFORMER_MIC2_X=F-0.1599999964; 15 | BEAMFORMER_MIC2_Y=F0.1599999964; 16 | BEAMFORMER_MIC2_Z=F-0.1599999964; 17 | BEAMFORMER_MIC3_GAIN=F1; 18 | BEAMFORMER_MIC3_X=F0.1599999964; 19 | BEAMFORMER_MIC3_Y=F0.1599999964; 20 | BEAMFORMER_MIC3_Z=F0.1599999964; 21 | BEAMFORMER_MIC4_GAIN=F1; 22 | BEAMFORMER_MIC4_X=F0.1599999964; 23 | BEAMFORMER_MIC4_Y=F0.1599999964; 24 | BEAMFORMER_MIC4_Z=F-0.1599999964; 25 | BEAMFORMER_MIC5_GAIN=F1; 26 | BEAMFORMER_MIC5_X=F-0.1599999964; 27 | BEAMFORMER_MIC5_Y=F-0.1599999964; 28 | BEAMFORMER_MIC5_Z=F0.1599999964; 29 | BEAMFORMER_MIC6_GAIN=F1; 30 | BEAMFORMER_MIC6_X=F-0.1599999964; 31 | BEAMFORMER_MIC6_Y=F-0.1599999964; 32 | BEAMFORMER_MIC6_Z=F-0.1599999964; 33 | BEAMFORMER_MIC7_GAIN=F1; 34 | BEAMFORMER_MIC7_X=F0.1599999964; 35 | BEAMFORMER_MIC7_Y=F-0.1599999964; 36 | BEAMFORMER_MIC7_Z=F0.1599999964; 37 | BEAMFORMER_MIC8_GAIN=F1; 38 | BEAMFORMER_MIC8_X=F0.1599999964; 39 | BEAMFORMER_MIC8_Y=F-0.1599999964; 40 | BEAMFORMER_MIC8_Z=F-0.1599999964; 41 | FILTER_STANDARDDEVIATION=F0.200000003; 42 | FILTER_PREDICTION_STOP_ALPHA=F2; 43 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 44 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 45 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 46 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 47 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 48 | FILTER_INERTIA_X=F1; 49 | FILTER_INERTIA_Y=F1; 50 | FILTER_INERTIA_Z=F1; 51 | FILTER_DELTAT=F0.00800000038; 52 | FILTER_STATEUPDATE=F0.02999999933; 53 | FILTER_STOP_PERCENTAGE=F0.5; 54 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 55 | FILTER_ACCELERATED_PERCENTAGE=F0.3000000119; 56 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 57 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 58 | FILTER_P0=F0.5; 59 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 60 | FILTER_BUFFERSIZE=I1; 61 | GEN_DYNSOURCES=I8; 62 | MIXTURE_PNEW=F0.004999999888; 63 | MIXTURE_PFALSE=F0.05000000075; 64 | MIXTURE_ET=F500; 65 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 66 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 67 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 68 | MIXTURE_CONFIRM_COUNT_COUNTER=I50; 69 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 70 | MIXTURE_CUMULATIVE_TIME_PROBATION=I50; 71 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 72 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I25; 73 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.5; 74 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I50; 75 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9950000048; 76 | MICST_ALPHAD=F0.1000000015; 77 | MICST_GAMMA=F0.3000000119; 78 | MICST_DELTA=F1; 79 | MICST_MCRA_ALPHAS=F0.9499999881; 80 | MICST_MCRA_ALPHAP=F0.200000003; 81 | MICST_MCRA_ALPHAD=F0.9499999881; 82 | MICST_MCRA_L=I150; 83 | MICST_MCRA_DELTA=F1; 84 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/vector-13oct2010-Moderate delete-Very Slow detect.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXPOTENTIAL=I4; 2 | BEAMFORMER_NUMBERMAX=I50; 3 | BEAMFORMER_MAXTHRESHOLD=F0.8500000238; 4 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL=F0.200000003; 5 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL_NEXT=F0.5; 6 | BEAMFORMER_ANGLE_TOLERANCE_VERTICAL=F0; 7 | BEAMFORMER_MAXRANGE=I6; 8 | BEAMFORMER_DELAYS_RESET=I3; 9 | BEAMFORMER_MIC1_GAIN=F1; 10 | BEAMFORMER_MIC1_X=F-0.1599999964; 11 | BEAMFORMER_MIC1_Y=F0.1599999964; 12 | BEAMFORMER_MIC1_Z=F0.1599999964; 13 | BEAMFORMER_MIC2_GAIN=F1; 14 | BEAMFORMER_MIC2_X=F-0.1599999964; 15 | BEAMFORMER_MIC2_Y=F0.1599999964; 16 | BEAMFORMER_MIC2_Z=F-0.1599999964; 17 | BEAMFORMER_MIC3_GAIN=F1; 18 | BEAMFORMER_MIC3_X=F0.1599999964; 19 | BEAMFORMER_MIC3_Y=F0.1599999964; 20 | BEAMFORMER_MIC3_Z=F0.1599999964; 21 | BEAMFORMER_MIC4_GAIN=F1; 22 | BEAMFORMER_MIC4_X=F0.1599999964; 23 | BEAMFORMER_MIC4_Y=F0.1599999964; 24 | BEAMFORMER_MIC4_Z=F-0.1599999964; 25 | BEAMFORMER_MIC5_GAIN=F1; 26 | BEAMFORMER_MIC5_X=F-0.1599999964; 27 | BEAMFORMER_MIC5_Y=F-0.1599999964; 28 | BEAMFORMER_MIC5_Z=F0.1599999964; 29 | BEAMFORMER_MIC6_GAIN=F1; 30 | BEAMFORMER_MIC6_X=F-0.1599999964; 31 | BEAMFORMER_MIC6_Y=F-0.1599999964; 32 | BEAMFORMER_MIC6_Z=F-0.1599999964; 33 | BEAMFORMER_MIC7_GAIN=F1; 34 | BEAMFORMER_MIC7_X=F0.1599999964; 35 | BEAMFORMER_MIC7_Y=F-0.1599999964; 36 | BEAMFORMER_MIC7_Z=F0.1599999964; 37 | BEAMFORMER_MIC8_GAIN=F1; 38 | BEAMFORMER_MIC8_X=F0.1599999964; 39 | BEAMFORMER_MIC8_Y=F-0.1599999964; 40 | BEAMFORMER_MIC8_Z=F-0.1599999964; 41 | FILTER_STANDARDDEVIATION=F0.200000003; 42 | FILTER_PREDICTION_STOP_ALPHA=F2; 43 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 44 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 45 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 46 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 47 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 48 | FILTER_INERTIA_X=F1; 49 | FILTER_INERTIA_Y=F1; 50 | FILTER_INERTIA_Z=F1; 51 | FILTER_DELTAT=F0.00800000038; 52 | FILTER_STATEUPDATE=F0.02999999933; 53 | FILTER_STOP_PERCENTAGE=F0.5; 54 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 55 | FILTER_ACCELERATED_PERCENTAGE=F0.3000000119; 56 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 57 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 58 | FILTER_P0=F0.5; 59 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 60 | FILTER_BUFFERSIZE=I1; 61 | GEN_DYNSOURCES=I8; 62 | MIXTURE_PNEW=F0.004999999888; 63 | MIXTURE_PFALSE=F0.05000000075; 64 | MIXTURE_ET=F500; 65 | MIXTURE_NEWSOURCE_THRESHOLD=F0.3000000119; 66 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.6999999881; 67 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.5; 68 | MIXTURE_CONFIRM_COUNT_COUNTER=I50; 69 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F1; 70 | MIXTURE_CUMULATIVE_TIME_PROBATION=I50; 71 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 72 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I25; 73 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.5; 74 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I50; 75 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9950000048; 76 | MICST_ALPHAD=F0.1000000015; 77 | MICST_GAMMA=F0.3000000119; 78 | MICST_DELTA=F1; 79 | MICST_MCRA_ALPHAS=F0.9499999881; 80 | MICST_MCRA_ALPHAP=F0.200000003; 81 | MICST_MCRA_ALPHAD=F0.9499999881; 82 | MICST_MCRA_L=I150; 83 | MICST_MCRA_DELTA=F1; 84 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Configuration_Vectors/vector14.mes: -------------------------------------------------------------------------------- 1 | BEAMFORMER_MAXPOTENTIAL=I4; 2 | BEAMFORMER_NUMBERMAX=I50; 3 | BEAMFORMER_MAXTHRESHOLD=F0.8500000238; 4 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL=F0.200000003; 5 | BEAMFORMER_ANGLE_TOLERANCE_HORIZONTAL_NEXT=F1; 6 | BEAMFORMER_ANGLE_TOLERANCE_VERTICAL=F0; 7 | BEAMFORMER_MAXRANGE=I6; 8 | BEAMFORMER_DELAYS_RESET=I3; 9 | BEAMFORMER_MIC1_GAIN=F1; 10 | BEAMFORMER_MIC1_X=F-0.1599999964; 11 | BEAMFORMER_MIC1_Y=F0.1599999964; 12 | BEAMFORMER_MIC1_Z=F0.1599999964; 13 | BEAMFORMER_MIC2_GAIN=F1; 14 | BEAMFORMER_MIC2_X=F-0.1599999964; 15 | BEAMFORMER_MIC2_Y=F0.1599999964; 16 | BEAMFORMER_MIC2_Z=F-0.1599999964; 17 | BEAMFORMER_MIC3_GAIN=F1; 18 | BEAMFORMER_MIC3_X=F0.1599999964; 19 | BEAMFORMER_MIC3_Y=F0.1599999964; 20 | BEAMFORMER_MIC3_Z=F0.1599999964; 21 | BEAMFORMER_MIC4_GAIN=F1; 22 | BEAMFORMER_MIC4_X=F0.1599999964; 23 | BEAMFORMER_MIC4_Y=F0.1599999964; 24 | BEAMFORMER_MIC4_Z=F-0.1599999964; 25 | BEAMFORMER_MIC5_GAIN=F1; 26 | BEAMFORMER_MIC5_X=F-0.1599999964; 27 | BEAMFORMER_MIC5_Y=F-0.1599999964; 28 | BEAMFORMER_MIC5_Z=F0.1599999964; 29 | BEAMFORMER_MIC6_GAIN=F1; 30 | BEAMFORMER_MIC6_X=F-0.1599999964; 31 | BEAMFORMER_MIC6_Y=F-0.1599999964; 32 | BEAMFORMER_MIC6_Z=F-0.1599999964; 33 | BEAMFORMER_MIC7_GAIN=F1; 34 | BEAMFORMER_MIC7_X=F0.1599999964; 35 | BEAMFORMER_MIC7_Y=F-0.1599999964; 36 | BEAMFORMER_MIC7_Z=F0.1599999964; 37 | BEAMFORMER_MIC8_GAIN=F1; 38 | BEAMFORMER_MIC8_X=F0.1599999964; 39 | BEAMFORMER_MIC8_Y=F-0.1599999964; 40 | BEAMFORMER_MIC8_Z=F-0.1599999964; 41 | FILTER_STANDARDDEVIATION=F0.3000000119; 42 | FILTER_PREDICTION_STOP_ALPHA=F2; 43 | FILTER_PREDICTION_STOP_BETA=F0.03999999911; 44 | FILTER_PREDICTION_CONSTANT_ALPHA=F0.05000000075; 45 | FILTER_PREDICTION_CONSTANT_BETA=F0.5; 46 | FILTER_PREDICTION_ACCELERATED_ALPHA=F0.5; 47 | FILTER_PREDICTION_ACCELERATED_BETA=F0.200000003; 48 | FILTER_INERTIA_X=F1; 49 | FILTER_INERTIA_Y=F1; 50 | FILTER_INERTIA_Z=F0.25; 51 | FILTER_DELTAT=F0.00400000019; 52 | FILTER_STATEUPDATE=F0.02999999933; 53 | FILTER_STOP_PERCENTAGE=F0.200000003; 54 | FILTER_CONSTANT_PERCENTAGE=F0.200000003; 55 | FILTER_ACCELERATED_PERCENTAGE=F0.6000000238; 56 | FILTER_ACTIVE_ACTIVE=F0.6999999881; 57 | FILTER_INACTIVE_ACTIVE=F0.3000000119; 58 | FILTER_P0=F0.5; 59 | FILTER_RESAMPLING_THRESHOLD=F0.6999999881; 60 | FILTER_BUFFERSIZE=I50; 61 | MIXTURE_MAX_FILTERS=I8; 62 | MIXTURE_PNEW=F0.004999999888; 63 | MIXTURE_PFALSE=F0.05000000075; 64 | MIXTURE_ET=F250; 65 | MIXTURE_NEWSOURCE_THRESHOLD=F0.8000000119; 66 | MIXTURE_CONFIRM_SOURCE_EXISTS=F0.9800000191; 67 | MIXTURE_CONFIRM_COUNT_THRESHOLD=F0.8000000119; 68 | MIXTURE_CONFIRM_COUNT_COUNTER=I20; 69 | MIXTURE_NEWSOURCE_HORIZONTALANGLE=F0.6000000238; 70 | MIXTURE_CUMULATIVE_TIME_PROBATION=I10; 71 | MIXTURE_NOTOBSERVED_PROBATION_THRESHOLD=F0.9499999881; 72 | MIXTURE_CUMULATIVE_TIME_LEVEL1=I50; 73 | MIXTURE_NOTOBSERVED_LEVEL1_THRESHOLD=F0.1000000015; 74 | MIXTURE_CUMULATIVE_TIME_LEVEL2=I300; 75 | MIXTURE_NOTOBSERVED_LEVEL2_THRESHOLD=F0.9950000048; 76 | MICST_ALPHAD=F0.1000000015; 77 | MICST_GAMMA=F0.3000000119; 78 | MICST_DELTA=F1; 79 | MICST_MCRA_ALPHAS=F0.9499999881; 80 | MICST_MCRA_ALPHAP=F0.200000003; 81 | MICST_MCRA_ALPHAD=F0.9499999881; 82 | MICST_MCRA_L=I150; 83 | MICST_MCRA_DELTA=F1; 84 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Images/logo5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/Qt4GUI/Images/logo5.png -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Images/logo5_bgwhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/Qt4GUI/Images/logo5_bgwhite.png -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/Images/logoonly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/Qt4GUI/Images/logoonly.png -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/README.TXT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/Qt4GUI/README.TXT -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/StreamOutputWidget.h: -------------------------------------------------------------------------------- 1 | #ifndef _STREAM_OUTPUT_WIDGET_ 2 | #define _STREAM_OUTPUT_WIDGET_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include "ui_StreamOutputWidget.h" 10 | 11 | 12 | class StreamOutputWidget : public QWidget 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | 18 | StreamOutputWidget(QWidget *parent=NULL); 19 | ~StreamOutputWidget(); 20 | QVector popFrame(); 21 | void pushFrame(const QVector &frame); 22 | 23 | protected slots: 24 | 25 | void enabledButtonClicked(bool enabled); 26 | void startButtonClicked(); 27 | void stopButtonClicked(); 28 | void clearButtonClicked(); 29 | void refreshTimeout(); 30 | void audioStateChanged(QAudio::State state ); 31 | void notify(); 32 | 33 | 34 | protected: 35 | virtual bool event(QEvent* event); 36 | void scanOutputDevice(); 37 | Ui::StreamOutputWidget m_ui; 38 | QList > m_frames; 39 | QMutex m_mutex; 40 | QTimer *m_timer; 41 | QAudioOutput *m_audioOutput; 42 | QIODevice *m_IODevice; 43 | bool m_enabled; 44 | }; 45 | 46 | 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/aboutDialog.h: -------------------------------------------------------------------------------- 1 | #ifndef ABOUTDIALOG_H 2 | #define ABOUTDIALOG_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #ifndef DEF_PACKAGE_NAME 15 | #define DEF_PACKAGE_NAME "" 16 | #endif 17 | 18 | #ifndef DEF_PACKAGE_VERSION 19 | #define DEF_PACKAGE_VERSION "" 20 | #endif 21 | 22 | #ifndef DEF_PACKAGE_VENDOR 23 | #define DEF_PACKAGE_VENDOR "" 24 | #endif 25 | 26 | #ifndef DEF_NSIS_URL_INFO_ABOUT 27 | #define DEF_NSIS_URL_INFO_ABOUT "" 28 | #endif 29 | 30 | #ifndef DEF_RESOURCE_FILE_LICENSE 31 | #define DEF_RESOURCE_FILE_LICENSE "" 32 | #endif 33 | 34 | #ifndef DEF_PACKAGE_DESCRIPTION_FILE 35 | #define DEF_PACKAGE_DESCRIPTION_FILE "" 36 | #endif 37 | 38 | #ifndef DEF_PROJECT_SOURCE_DIR 39 | #define DEF_PROJECT_SOURCE_DIR "" 40 | #endif 41 | 42 | class AboutDialog: public QDialog 43 | { 44 | 45 | Q_OBJECT 46 | 47 | public: 48 | 49 | AboutDialog(); 50 | 51 | ~AboutDialog(); 52 | 53 | protected slots: 54 | 55 | void launchURL(const QString _url); 56 | void closeDialog(); 57 | 58 | private: 59 | 60 | QLabel* logo; 61 | QLabel* title; 62 | QLabel* version; 63 | QLabel* authors; 64 | QLabel* website; 65 | QLabel* copyright; 66 | QTextEdit* readme; 67 | QPushButton* buttons; 68 | 69 | }; 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/audioManager.h: -------------------------------------------------------------------------------- 1 | #ifndef AUDIOMANAGER_H 2 | #define AUDIOMANAGER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | #include "RTAudio/RtAudio.h" 13 | 14 | typedef void (*callBackFcn)( void *objPtr ); 15 | 16 | class AudioManager : public QObject 17 | { 18 | 19 | Q_OBJECT; 20 | 21 | public: 22 | 23 | static const char TYPE_RECORD = 1; 24 | static const char TYPE_FILE = 2; 25 | 26 | AudioManager(int _numberChannels, int _frameSize, int _numberHopPerFrame, int _samplingRate, callBackFcn _callback, void *_parentObj, char _inputType); 27 | AudioManager(); 28 | 29 | virtual ~AudioManager(); 30 | 31 | unsigned int getAudioDevicesCount(); 32 | 33 | QString getAudioDeviceName(unsigned int _deviceIndex); 34 | 35 | int getAudioDeviceIndex(QString _deviceName); 36 | 37 | void openStream(int _deviceIndex); 38 | void openStream(QString _filePath); 39 | 40 | void startRecording(); 41 | 42 | void stopRecording(); 43 | 44 | void closeStream(); 45 | 46 | int getNumberChannels(); 47 | 48 | float *getBuffers(); 49 | 50 | float **newBuffers(); 51 | 52 | int getIndexHop(); 53 | 54 | int getHopSize(); 55 | 56 | int getNumberHopPerFrame(); 57 | 58 | void updateIndexHop(); 59 | 60 | void gotoCallBack(); 61 | 62 | void postEmptyFrame(); 63 | 64 | int getInputType() const; 65 | 66 | QString getFileName() const; 67 | 68 | private slots: 69 | 70 | void processTimer(); 71 | 72 | private: 73 | 74 | RtAudio *audioDriver; 75 | 76 | FILE *fileDriver; 77 | 78 | char inputType; 79 | 80 | QString filePath; 81 | 82 | QTimer* fileTimer; 83 | 84 | int numberChannels; 85 | 86 | unsigned int hopSize; 87 | 88 | int frameSize; 89 | 90 | int numberHopPerFrame; 91 | 92 | int indexHop; 93 | 94 | int samplingRate; 95 | 96 | float *buffers; 97 | 98 | callBackFcn callback; 99 | 100 | void *parentObj; 101 | 102 | QVector newBuffersStack; 103 | 104 | QMutex stackIsUsed; 105 | 106 | signed short *recordedStream; 107 | 108 | int sampleIndex; 109 | 110 | int fileSize; 111 | 112 | }; 113 | 114 | int fillBuffer(void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *manager); 115 | 116 | #endif // AUDIOMANAGER_H 117 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/configurationLoadSave.cpp: -------------------------------------------------------------------------------- 1 | #include "configurationLoadSave.h" 2 | 3 | /*********************************************************** 4 | * Constructor * 5 | ***********************************************************/ 6 | 7 | ConfigurationLoadSave::ConfigurationLoadSave() 8 | { 9 | 10 | this->configVector = new ConfigurationVector(); 11 | 12 | } 13 | 14 | /*********************************************************** 15 | * Destructor * 16 | ***********************************************************/ 17 | 18 | ConfigurationLoadSave::~ConfigurationLoadSave() 19 | { 20 | 21 | delete this->configVector; 22 | 23 | } 24 | 25 | /*********************************************************** 26 | * Save to file * 27 | ***********************************************************/ 28 | 29 | void ConfigurationLoadSave::saveToFile(QString _filePath) 30 | { 31 | 32 | QString outputStr; 33 | 34 | QFile outputFile(_filePath); 35 | 36 | outputStr = this->configVector->generateOutput(); 37 | 38 | outputFile.open(QFile::WriteOnly | QFile::Text); 39 | 40 | QTextStream outputStream(&outputFile); 41 | 42 | outputStream << outputStr; 43 | 44 | outputFile.close(); 45 | 46 | } 47 | 48 | /*********************************************************** 49 | * Open from file * 50 | ***********************************************************/ 51 | 52 | void ConfigurationLoadSave::openFromFile(QString _filePath) 53 | { 54 | 55 | QString inputStr; 56 | QString currentLine; 57 | 58 | QFile inputFile(_filePath); 59 | 60 | inputFile.open(QFile::ReadOnly | QFile::Text); 61 | 62 | QTextStream inputStream(&inputFile); 63 | 64 | inputStr = ""; 65 | 66 | while(!inputStream.atEnd()) 67 | { 68 | currentLine = inputStream.readLine(); 69 | inputStr.append(currentLine); 70 | } 71 | 72 | this->configVector->readInput(inputStr); 73 | 74 | inputFile.close(); 75 | 76 | } 77 | 78 | /*********************************************************** 79 | * Accessor * 80 | ***********************************************************/ 81 | 82 | // +-------------------------------------------------------+ 83 | // | Configuration vector | 84 | // +-------------------------------------------------------+ 85 | 86 | ConfigurationVector* ConfigurationLoadSave::getConfigurationVector() 87 | { 88 | return (this->configVector); 89 | } 90 | 91 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/configurationLoadSave.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIGURATIONLOADSAVE_H 2 | #define CONFIGURATIONLOADSAVE_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "configurationVector.h" 9 | 10 | class ConfigurationLoadSave 11 | { 12 | 13 | public: 14 | 15 | 16 | /*********************************************************** 17 | * Constructor * 18 | ***********************************************************/ 19 | 20 | ConfigurationLoadSave(); 21 | 22 | /*********************************************************** 23 | * Destructor * 24 | ***********************************************************/ 25 | 26 | ~ConfigurationLoadSave(); 27 | 28 | 29 | 30 | }; 31 | 32 | #endif // CONFIGURATIONLOADSAVE_H 33 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/manyearsObj.h: -------------------------------------------------------------------------------- 1 | #ifndef MANYEARSOBJ_H 2 | #define MANYEARSOBJ_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include "audioManager.h" 10 | #include "potentialSourceManager.h" 11 | #include "sourceManager.h" 12 | #include "window.h" 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #include "ManyEars/beamformer.h" 19 | #include "ManyEars/mixture.h" 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | 25 | void updateCallBack(void *objPtr); 26 | 27 | class ManyEarsObject : public QObject 28 | { 29 | 30 | Q_OBJECT; 31 | 32 | public: 33 | 34 | ManyEarsObject(PotentialSourceManager *_potentialSourceManager, SourceManager *_sourceManager, Window *_windowPlot); 35 | 36 | virtual ~ManyEarsObject(); 37 | 38 | void setRecordDevice(int _deviceIndex); 39 | 40 | QString getRecordDeviceName(int _deviceIndex); 41 | 42 | int getRecordDeviceCount(); 43 | 44 | void updateInputFrames(); 45 | 46 | void findPotentialSources(); 47 | 48 | void applyFilter(); 49 | 50 | void loadSources(); 51 | 52 | void start(); 53 | 54 | void stop(); 55 | 56 | public slots: 57 | 58 | void slotStart(); 59 | 60 | void slotStop(); 61 | 62 | signals: 63 | 64 | // +-------------------------------------------------------+ 65 | // | Confirm operation | 66 | // +-------------------------------------------------------+ 67 | 68 | void confirmOperation(); 69 | 70 | private: 71 | 72 | AudioManager *recorder; 73 | 74 | int deviceIndex; 75 | 76 | int maximumSources; 77 | 78 | struct objMixture *currentMixture; 79 | 80 | struct objSources *currentSources; 81 | 82 | SourceManager *sourceManager; 83 | 84 | PotentialSourceManager *potentialSourceManager; 85 | 86 | Window *windowPlot; 87 | 88 | bool running; 89 | 90 | QMutex threadMutex; 91 | 92 | }; 93 | 94 | #endif // MANYEARSOBJ_H 95 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/mdiSubWindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mdiSubWindow.h" 2 | #include 3 | 4 | MdiSubWindow::MdiSubWindow(QWidget * parent, Qt::WindowFlags flags): QMdiSubWindow(parent, flags) 5 | { 6 | 7 | } 8 | 9 | MdiSubWindow::~MdiSubWindow() 10 | { 11 | 12 | } 13 | 14 | bool MdiSubWindow::event(QEvent *event) 15 | { 16 | 17 | if (event->type() == QEvent::User) 18 | { 19 | 20 | // +-----------------------------------------------+ 21 | // | Window needs to be shown | 22 | // +-----------------------------------------------+ 23 | 24 | ShowEvent *showEvent = dynamic_cast(event); 25 | 26 | if (showEvent != NULL) 27 | { 28 | 29 | this->show(); 30 | 31 | } 32 | 33 | return true; 34 | 35 | } 36 | 37 | return QMdiSubWindow::event(event); 38 | 39 | } 40 | 41 | void MdiSubWindow::closeEvent ( QCloseEvent * event ) 42 | { 43 | 44 | hide(); 45 | event->ignore(); 46 | 47 | emit this->windowIsHidden(); 48 | 49 | } 50 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/mdiSubWindow.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include "sourceBuffer.h" 3 | 4 | class MdiSubWindow: public QMdiSubWindow 5 | { 6 | 7 | Q_OBJECT 8 | 9 | public: 10 | 11 | MdiSubWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0); 12 | 13 | ~MdiSubWindow(); 14 | 15 | protected: 16 | 17 | virtual bool event(QEvent *event); 18 | virtual void closeEvent ( QCloseEvent * event ); 19 | 20 | signals: 21 | 22 | void windowIsHidden(); 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/potentialSource.cpp: -------------------------------------------------------------------------------- 1 | #include "potentialSource.h" 2 | 3 | /*********************************************************** 4 | * Constructor * 5 | ***********************************************************/ 6 | 7 | PotentialSource::PotentialSource(const float _X, const float _Y, const float _Z, const float _E) 8 | { 9 | 10 | this->setX(_X); 11 | this->setY(_Y); 12 | this->setZ(_Z); 13 | this->setE(_E); 14 | 15 | } 16 | 17 | PotentialSource::PotentialSource() 18 | { 19 | 20 | this->setX(0.0); 21 | this->setY(0.0); 22 | this->setZ(0.0); 23 | this->setE(0.0); 24 | 25 | } 26 | 27 | /*********************************************************** 28 | * Destructor * 29 | ***********************************************************/ 30 | 31 | PotentialSource::~PotentialSource() 32 | { 33 | 34 | } 35 | 36 | /*********************************************************** 37 | * Accessors * 38 | ***********************************************************/ 39 | 40 | // +-------------------------------------------------------+ 41 | // | Position | 42 | // +-------------------------------------------------------+ 43 | 44 | const float PotentialSource::getX() 45 | { 46 | return (this->X); 47 | } 48 | 49 | const float PotentialSource::getY() 50 | { 51 | return (this->Y); 52 | } 53 | 54 | const float PotentialSource::getZ() 55 | { 56 | return (this->Z); 57 | } 58 | 59 | // +-------------------------------------------------------+ 60 | // | Energy | 61 | // +-------------------------------------------------------+ 62 | 63 | const float PotentialSource::getE() 64 | { 65 | return (this->E); 66 | } 67 | 68 | /*********************************************************** 69 | * Mutators * 70 | ***********************************************************/ 71 | 72 | // +-------------------------------------------------------+ 73 | // | Position | 74 | // +-------------------------------------------------------+ 75 | 76 | void PotentialSource::setX(const float _X) 77 | { 78 | this->X = _X; 79 | } 80 | 81 | void PotentialSource::setY(const float _Y) 82 | { 83 | this->Y = _Y; 84 | } 85 | 86 | void PotentialSource::setZ(const float _Z) 87 | { 88 | this->Z = _Z; 89 | } 90 | 91 | // +-------------------------------------------------------+ 92 | // | Energy | 93 | // +-------------------------------------------------------+ 94 | 95 | void PotentialSource::setE(const float _E) 96 | { 97 | this->E = _E; 98 | } 99 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/potentialSource.h: -------------------------------------------------------------------------------- 1 | #ifndef POTENTIALSOURCE_H 2 | #define POTENTIALSOURCE_H 3 | 4 | class PotentialSource 5 | { 6 | 7 | public: 8 | 9 | /*********************************************************** 10 | * Constructor * 11 | ***********************************************************/ 12 | 13 | PotentialSource(const float _X, const float _Y, const float _Z, const float _E); 14 | PotentialSource(); 15 | 16 | /*********************************************************** 17 | * Destructor * 18 | ***********************************************************/ 19 | 20 | ~PotentialSource(); 21 | 22 | /*********************************************************** 23 | * Accessors * 24 | ***********************************************************/ 25 | 26 | // +-------------------------------------------------------+ 27 | // | Position | 28 | // +-------------------------------------------------------+ 29 | 30 | const float getX(); 31 | const float getY(); 32 | const float getZ(); 33 | 34 | // +-------------------------------------------------------+ 35 | // | Energy | 36 | // +-------------------------------------------------------+ 37 | 38 | const float getE(); 39 | 40 | /*********************************************************** 41 | * Mutators * 42 | ***********************************************************/ 43 | 44 | // +-------------------------------------------------------+ 45 | // | Position | 46 | // +-------------------------------------------------------+ 47 | 48 | void setX(const float _X); 49 | void setY(const float _Y); 50 | void setZ(const float _Z); 51 | 52 | // +-------------------------------------------------------+ 53 | // | Energy | 54 | // +-------------------------------------------------------+ 55 | 56 | void setE(const float _E); 57 | 58 | private: 59 | 60 | /*********************************************************** 61 | * Fields * 62 | ***********************************************************/ 63 | 64 | float X, Y, Z; 65 | float E; 66 | 67 | }; 68 | 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | README.TXT 4 | COPYING.TXT 5 | Images/logoonly.png 6 | Images/logo5_bgwhite.png 7 | Configuration_Vectors/default.mes 8 | Configuration_Vectors/HRIDemo.mes 9 | 10 | 11 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/scrollListProperty.h: -------------------------------------------------------------------------------- 1 | #ifndef SCROLLLISTPROPERTY_H 2 | #define SCROLLLISTPROPERTY_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "listProperty.h" 9 | 10 | class ScrollListProperty: public QWidget 11 | { 12 | 13 | Q_OBJECT 14 | 15 | public: 16 | 17 | /*********************************************************** 18 | * Constructor * 19 | ***********************************************************/ 20 | 21 | ScrollListProperty(int _width, int _scrollBarWidth, int _height); 22 | 23 | /*********************************************************** 24 | * Destructor * 25 | ***********************************************************/ 26 | 27 | ~ScrollListProperty(); 28 | 29 | /*********************************************************** 30 | * Access the list * 31 | ***********************************************************/ 32 | 33 | ListProperty *getListProperty(); 34 | 35 | public slots: 36 | 37 | /*********************************************************** 38 | * Slots * 39 | ***********************************************************/ 40 | 41 | // +-------------------------------------------------------+ 42 | // | Resize occured | 43 | // +-------------------------------------------------------+ 44 | 45 | void resizeOccured(); 46 | 47 | protected: 48 | 49 | /*********************************************************** 50 | * Events * 51 | ***********************************************************/ 52 | 53 | // +-------------------------------------------------------+ 54 | // | Resize occurs | 55 | // +-------------------------------------------------------+ 56 | 57 | void resizeEvent(QResizeEvent *event); 58 | 59 | private: 60 | 61 | /*********************************************************** 62 | * Adjust range of the scroll bar * 63 | ***********************************************************/ 64 | void adjustRange(); 65 | 66 | /*********************************************************** 67 | * Private fields * 68 | ***********************************************************/ 69 | 70 | // +-------------------------------------------------------+ 71 | // | Widgets | 72 | // +-------------------------------------------------------+ 73 | 74 | ListProperty *list; 75 | QScrollBar *scrollBar; 76 | QGridLayout *grid; 77 | 78 | // +-------------------------------------------------------+ 79 | // | Dimensions | 80 | // +-------------------------------------------------------+ 81 | 82 | int width; 83 | int scrollBarWidth; 84 | int height; 85 | 86 | }; 87 | 88 | #endif // SCROLLLISTPROPERTY_H 89 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/source.cpp: -------------------------------------------------------------------------------- 1 | #include "source.h" 2 | 3 | /*********************************************************** 4 | * Constructor * 5 | ***********************************************************/ 6 | 7 | Source::Source(int _sourceID, int _colorID, float _x, float _y, float _z) 8 | { 9 | this->sourceID = _sourceID; 10 | this->colorID = _colorID; 11 | this->active = true; 12 | this->x = _x; 13 | this->y = _y; 14 | this->z = _z; 15 | } 16 | 17 | Source::Source() 18 | { 19 | this->sourceID = 0; 20 | this->colorID = 0; 21 | this->active = false; 22 | this->x = 0; 23 | this->y = 0; 24 | this->z = 0; 25 | } 26 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/source.h: -------------------------------------------------------------------------------- 1 | #ifndef SOURCE_H 2 | #define SOURCE_H 3 | 4 | class Source 5 | { 6 | 7 | public: 8 | 9 | /*********************************************************** 10 | * Constructor * 11 | ***********************************************************/ 12 | 13 | Source(int _sourceID, int _colorID, float _x, float _y, float _z); 14 | Source(); 15 | 16 | /*********************************************************** 17 | * Public fields * 18 | ***********************************************************/ 19 | 20 | int sourceID; 21 | int colorID; 22 | bool active; 23 | float x; 24 | float y; 25 | float z; 26 | 27 | }; 28 | 29 | #endif // SOURCE_H 30 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/sourceGenerator.cpp: -------------------------------------------------------------------------------- 1 | #include "sourceGenerator.h" 2 | 3 | SourceGenerator::SourceGenerator(SourceManager *_myManager, PlotLongitude *_myPlotLongitude, PlotLatitude *_myPlotLatitude, SpherePlot *_mySpherePlot) 4 | { 5 | 6 | this->myManager = _myManager; 7 | this->myPlotLongitude = _myPlotLongitude; 8 | this->myPlotLatitude = _myPlotLatitude; 9 | this->mySpherePlot = _mySpherePlot; 10 | this->t = 0; 11 | this->refresh3d = 0; 12 | 13 | } 14 | 15 | void SourceGenerator::generateSources() 16 | { 17 | 18 | this->t++; 19 | 20 | this->myManager->addSource(1,0.8*cos(t/100.0),0.8*sin(t/100.0),+0.6); 21 | this->myManager->addSource(2,0.8*sin(t/100.0),0.8*cos(t/100.0),-0.6); 22 | 23 | this->myManager->updateFrame(); 24 | this->myPlotLongitude->updateGraph(); 25 | this->myPlotLatitude->updateGraph(); 26 | 27 | this->refresh3d++; 28 | 29 | if (this->refresh3d > 5) 30 | { 31 | this->refresh3d = 0; 32 | this->mySpherePlot->updateGL(); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/sourceGenerator.h: -------------------------------------------------------------------------------- 1 | #ifndef SOURCEGENERATOR_H 2 | #define SOURCEGENERATOR_H 3 | 4 | #include 5 | 6 | #include "sourceManager.h" 7 | #include "plotLongitude.h" 8 | #include "plotLatitude.h" 9 | #include "spherePlot.h" 10 | 11 | class SourceGenerator: public QWidget 12 | { 13 | 14 | Q_OBJECT 15 | 16 | public: 17 | 18 | SourceGenerator(SourceManager *_myManager, PlotLongitude *_myPlotLongitude, PlotLatitude *_myPlotLatitude, SpherePlot *_mySpherePlot); 19 | 20 | public slots: 21 | 22 | void generateSources(); 23 | 24 | private: 25 | 26 | SourceManager *myManager; 27 | PlotLongitude *myPlotLongitude; 28 | PlotLatitude *myPlotLatitude; 29 | SpherePlot *mySpherePlot; 30 | float t; 31 | int refresh3d; 32 | 33 | }; 34 | 35 | #endif // SOURCEGENERATOR_H 36 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/sourceManager.h: -------------------------------------------------------------------------------- 1 | #ifndef SOURCEMANAGER_H 2 | #define SOURCEMANAGER_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "colorPalette.h" 10 | #include "source.h" 11 | 12 | 13 | 14 | class SourceManager 15 | { 16 | 17 | public: 18 | 19 | /*********************************************************** 20 | * Constructor * 21 | ***********************************************************/ 22 | 23 | SourceManager(int _maxSources, ColorPalette *_colorPalette); 24 | 25 | /*********************************************************** 26 | * Update * 27 | ***********************************************************/ 28 | 29 | // +-------------------------------------------------------+ 30 | // | Update the frame for plotting | 31 | // +-------------------------------------------------------+ 32 | 33 | void updateFrame(); 34 | 35 | // +-------------------------------------------------------+ 36 | // | Add a source for the current frame | 37 | // +-------------------------------------------------------+ 38 | 39 | void addSource(int _sourceID, float _x, float _y, float _z); 40 | 41 | // +-------------------------------------------------------+ 42 | // | Reset (clear all sources) | 43 | // +-------------------------------------------------------+ 44 | 45 | void reset(); 46 | 47 | // +-------------------------------------------------------+ 48 | // | Start | 49 | // +-------------------------------------------------------+ 50 | 51 | void start(); 52 | 53 | // +-------------------------------------------------------+ 54 | // | Stop | 55 | // +-------------------------------------------------------+ 56 | 57 | void stop(); 58 | 59 | /*********************************************************** 60 | * Public fields * 61 | ***********************************************************/ 62 | 63 | int numberSources; 64 | QVector connectLongitudeAngles; 65 | QVector connectLatitudeAngles; 66 | QVector connectColors; 67 | QVector connectXPosition; 68 | QVector connectYPosition; 69 | QVector connectZPosition; 70 | 71 | // +-------------------------------------------------------+ 72 | // | Mutex | 73 | // +-------------------------------------------------------+ 74 | 75 | // Lock the plot for rendering 76 | //QMutex blockRendering; 77 | 78 | private: 79 | 80 | /*********************************************************** 81 | * Private fields * 82 | ***********************************************************/ 83 | 84 | ColorPalette *sourcePalette; 85 | 86 | QVector listSources; 87 | 88 | int maxSources; 89 | 90 | bool active; 91 | 92 | 93 | 94 | }; 95 | 96 | #endif // SOURCEMANAGER_H 97 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/sphereObj.h: -------------------------------------------------------------------------------- 1 | #ifndef SPHEREOBJ_H 2 | #define SPHEREOBJ_H 3 | 4 | #include "math.h" 5 | 6 | class Sphere 7 | { 8 | 9 | public: 10 | 11 | /*********************************************************** 12 | * Constructor * 13 | ***********************************************************/ 14 | 15 | Sphere(int _numberLevels, float _radius); 16 | 17 | /*********************************************************** 18 | * Destructor * 19 | ***********************************************************/ 20 | 21 | ~Sphere(); 22 | 23 | /*********************************************************** 24 | * Accessors * 25 | ***********************************************************/ 26 | 27 | // +-------------------------------------------------------+ 28 | // | Get the number of triangles | 29 | // +-------------------------------------------------------+ 30 | 31 | int getNumberTriangles(); 32 | 33 | // +-------------------------------------------------------+ 34 | // | Get the number of levels | 35 | // +-------------------------------------------------------+ 36 | 37 | int getNumberLevels(); 38 | 39 | // +-------------------------------------------------------+ 40 | // | Get the vertices of a given triangle | 41 | // +-------------------------------------------------------+ 42 | 43 | void getTriangleVertices(int _triangleIndex, float *_x1, float *_y1, float *_z1, float *_x2, float *_y2, float *_z2, float *_x3, float *_y3, float *_z3); 44 | 45 | // +-------------------------------------------------------+ 46 | // | Get the radius | 47 | // +-------------------------------------------------------+ 48 | 49 | float getRadius(); 50 | 51 | 52 | private: 53 | 54 | /*********************************************************** 55 | * Computations * 56 | ***********************************************************/ 57 | 58 | // +-------------------------------------------------------+ 59 | // | Initialization of the sphere triangles | 60 | // +-------------------------------------------------------+ 61 | 62 | void initSphere(float _radius); 63 | 64 | /*********************************************************** 65 | * Private fields * 66 | ***********************************************************/ 67 | 68 | // Array of vertices 69 | float **arrayTriangles; 70 | 71 | // Number of triangles 72 | int numberTriangles; 73 | 74 | // Number of levels 75 | int numberLevels; 76 | 77 | // Radius of the sphere 78 | float radius; 79 | 80 | // Position of the sphere 81 | float x, y, z; 82 | 83 | }; 84 | 85 | #endif // SPHERE_H 86 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/trackedSource.h: -------------------------------------------------------------------------------- 1 | #ifndef TRACKEDSOURCE_H 2 | #define TRACKEDSOURCE_H 3 | 4 | class TrackedSource 5 | { 6 | 7 | public: 8 | 9 | /*********************************************************** 10 | * Constructor * 11 | ***********************************************************/ 12 | 13 | TrackedSource(const float _X, const float _Y, const float _Z, const int _trackedSourceID, const int _colorID); 14 | TrackedSource(); 15 | 16 | /*********************************************************** 17 | * Destructor * 18 | ***********************************************************/ 19 | 20 | ~TrackedSource(); 21 | 22 | /*********************************************************** 23 | * Accessors * 24 | ***********************************************************/ 25 | 26 | // +-------------------------------------------------------+ 27 | // | Position | 28 | // +-------------------------------------------------------+ 29 | 30 | const float getX(); 31 | const float getY(); 32 | const float getZ(); 33 | 34 | // +-------------------------------------------------------+ 35 | // | Tracked source ID | 36 | // +-------------------------------------------------------+ 37 | 38 | const int getTrackedSourceID(); 39 | 40 | // +-------------------------------------------------------+ 41 | // | Color ID | 42 | // +-------------------------------------------------------+ 43 | 44 | const int getColorID(); 45 | 46 | 47 | /*********************************************************** 48 | * Mutators * 49 | ***********************************************************/ 50 | 51 | // +-------------------------------------------------------+ 52 | // | Position | 53 | // +-------------------------------------------------------+ 54 | 55 | void setX(const float _X); 56 | void setY(const float _Y); 57 | void setZ(const float _Z); 58 | 59 | // +-------------------------------------------------------+ 60 | // | Tracked source ID | 61 | // +-------------------------------------------------------+ 62 | 63 | void setTrackedSourceID(const int _trackedSourceID); 64 | 65 | // +-------------------------------------------------------+ 66 | // | Color ID | 67 | // +-------------------------------------------------------+ 68 | 69 | void setColorID(const int _colorID); 70 | 71 | private: 72 | 73 | /*********************************************************** 74 | * Fields * 75 | ***********************************************************/ 76 | 77 | float X, Y, Z; 78 | int trackedSourceID; 79 | int colorID; 80 | 81 | }; 82 | 83 | 84 | #endif 85 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/winBeamformerLatitude.h: -------------------------------------------------------------------------------- 1 | #ifndef WINBEAMFORMERLATITUDE_H 2 | #define WINBEAMFORMERLATITUDE_H 3 | 4 | #include 5 | #include 6 | 7 | #include "PlotBeamformerLatitude.h" 8 | #include "sourceManager.h" 9 | 10 | //class WinBeamformerLatitude : public QMdiSubWindow 11 | //{ 12 | // 13 | //public: 14 | // 15 | // /*********************************************************** 16 | // * Constructor * 17 | // ***********************************************************/ 18 | // 19 | // WinBeamformerLatitude(int _width, int _height, int _samplingRate, int _hopSize, PotentialSourceManager *_sourceManager); 20 | // 21 | // /*********************************************************** 22 | // * Destructor * 23 | // ***********************************************************/ 24 | // 25 | // ~WinBeamformerLatitude(); 26 | // 27 | // /*********************************************************** 28 | // * Refresh * 29 | // ***********************************************************/ 30 | // 31 | // void updatePlot(); 32 | // void initPlot(); 33 | // 34 | // /*********************************************************** 35 | // * Mutator * 36 | // ***********************************************************/ 37 | // 38 | // // +-------------------------------------------------------+ 39 | // // | Time scale | 40 | // // +-------------------------------------------------------+ 41 | // 42 | // void setXMin(float _xMin); 43 | // void setXMax(float _xMax); 44 | // void setXInterval(float _xInterval); 45 | // 46 | // // +-------------------------------------------------------+ 47 | // // | Background | 48 | // // +-------------------------------------------------------+ 49 | // 50 | // void setColorBackground(QColor _colorBackground); 51 | // 52 | // // +-------------------------------------------------------+ 53 | // // | Trace | 54 | // // +-------------------------------------------------------+ 55 | // 56 | // void setSizePoint(int _sizePoint); 57 | // 58 | // // +-------------------------------------------------------+ 59 | // // | Axes | 60 | // // +-------------------------------------------------------+ 61 | // 62 | // void setColorHorizontalBar(QColor _colorHorizontalBar); 63 | // void setColorVerticalBar(QColor _colorVerticalBar); 64 | // 65 | //private: 66 | // 67 | // /*********************************************************** 68 | // * Private fields * 69 | // ***********************************************************/ 70 | // 71 | // QGridLayout *mainGrid; 72 | // QWidget *tmpWidget; 73 | // int width; 74 | // int height; 75 | // PlotBeamformerLatitude *mainPlot; 76 | // 77 | // int samplingRate; 78 | // int hopSize; 79 | // 80 | // PotentialSourceManager *mainManager; 81 | // 82 | //}; 83 | 84 | #endif // WINLATITUDE_H 85 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/winLatitude.h: -------------------------------------------------------------------------------- 1 | #ifndef WINLATITUDE_H 2 | #define WINLATITUDE_H 3 | 4 | #include 5 | #include 6 | 7 | #include "plotLatitude.h" 8 | #include "sourceManager.h" 9 | 10 | class WinLatitude : public QMdiSubWindow 11 | { 12 | 13 | public: 14 | 15 | /*********************************************************** 16 | * Constructor * 17 | ***********************************************************/ 18 | 19 | WinLatitude(int _width, int _height, int _samplingRate, int _hopSize, SourceManager *_sourceManager); 20 | 21 | /*********************************************************** 22 | * Destructor * 23 | ***********************************************************/ 24 | 25 | ~WinLatitude(); 26 | 27 | /*********************************************************** 28 | * Refresh * 29 | ***********************************************************/ 30 | 31 | void updatePlot(); 32 | void initPlot(); 33 | 34 | /*********************************************************** 35 | * Mutator * 36 | ***********************************************************/ 37 | 38 | // +-------------------------------------------------------+ 39 | // | Time scale | 40 | // +-------------------------------------------------------+ 41 | 42 | void setXMin(float _xMin); 43 | void setXMax(float _xMax); 44 | void setXInterval(float _xInterval); 45 | 46 | // +-------------------------------------------------------+ 47 | // | Background | 48 | // +-------------------------------------------------------+ 49 | 50 | void setColorBackground(QColor _colorBackground); 51 | 52 | // +-------------------------------------------------------+ 53 | // | Trace | 54 | // +-------------------------------------------------------+ 55 | 56 | void setSizePoint(int _sizePoint); 57 | 58 | // +-------------------------------------------------------+ 59 | // | Axes | 60 | // +-------------------------------------------------------+ 61 | 62 | void setColorHorizontalBar(QColor _colorHorizontalBar); 63 | void setColorVerticalBar(QColor _colorVerticalBar); 64 | 65 | private: 66 | 67 | /*********************************************************** 68 | * Private fields * 69 | ***********************************************************/ 70 | 71 | QGridLayout *mainGrid; 72 | QWidget *tmpWidget; 73 | int width; 74 | int height; 75 | PlotLatitude *mainPlot; 76 | 77 | int samplingRate; 78 | int hopSize; 79 | 80 | SourceManager *mainManager; 81 | 82 | }; 83 | 84 | #endif // WINLATITUDE_H 85 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/winLongitude.h: -------------------------------------------------------------------------------- 1 | #ifndef WINLONGITUDE_H 2 | #define WINLONGITUDE_H 3 | 4 | #include 5 | #include 6 | 7 | #include "plotLongitude.h" 8 | #include "sourceManager.h" 9 | 10 | class WinLongitude : public QMdiSubWindow 11 | { 12 | 13 | public: 14 | 15 | /*********************************************************** 16 | * Constructor * 17 | ***********************************************************/ 18 | 19 | WinLongitude(int _width, int _height, int _samplingRate, int _hopSize, SourceManager *_sourceManager); 20 | 21 | /*********************************************************** 22 | * Destructor * 23 | ***********************************************************/ 24 | 25 | ~WinLongitude(); 26 | 27 | /*********************************************************** 28 | * Refresh * 29 | ***********************************************************/ 30 | 31 | void updatePlot(); 32 | void initPlot(); 33 | 34 | /*********************************************************** 35 | * Mutator * 36 | ***********************************************************/ 37 | 38 | // +-------------------------------------------------------+ 39 | // | Time scale | 40 | // +-------------------------------------------------------+ 41 | 42 | void setXMin(float _xMin); 43 | void setXMax(float _xMax); 44 | void setXInterval(float _xInterval); 45 | 46 | // +-------------------------------------------------------+ 47 | // | Background | 48 | // +-------------------------------------------------------+ 49 | 50 | void setColorBackground(QColor _colorBackground); 51 | 52 | // +-------------------------------------------------------+ 53 | // | Trace | 54 | // +-------------------------------------------------------+ 55 | 56 | void setSizePoint(int _sizePoint); 57 | 58 | // +-------------------------------------------------------+ 59 | // | Axes | 60 | // +-------------------------------------------------------+ 61 | 62 | void setColorHorizontalBar(QColor _colorHorizontalBar); 63 | void setColorVerticalBar(QColor _colorVerticalBar); 64 | 65 | private: 66 | 67 | /*********************************************************** 68 | * Private fields * 69 | ***********************************************************/ 70 | 71 | QGridLayout *mainGrid; 72 | QWidget *tmpWidget; 73 | int width; 74 | int height; 75 | PlotLongitude *mainPlot; 76 | 77 | int samplingRate; 78 | int hopSize; 79 | 80 | SourceManager *mainManager; 81 | 82 | }; 83 | 84 | #endif // WINLONGITUDE_H 85 | -------------------------------------------------------------------------------- /manyears-C/Qt4GUI/winSphere.h: -------------------------------------------------------------------------------- 1 | #ifndef WINSPHERE_H 2 | #define WINSPHERE_H 3 | 4 | #include 5 | #include 6 | 7 | #include "spherePlot.h" 8 | #include "sourceManager.h" 9 | 10 | class WinSphere : public QMdiSubWindow 11 | { 12 | 13 | public: 14 | 15 | /*********************************************************** 16 | * Constructor * 17 | ***********************************************************/ 18 | 19 | WinSphere(int _width, int _height, int _samplingRate, int _hopSize, SourceManager *_sourceManager, int _updateFactor); 20 | 21 | /*********************************************************** 22 | * Destructor * 23 | ***********************************************************/ 24 | 25 | ~WinSphere(); 26 | 27 | /*********************************************************** 28 | * Mutator * 29 | ***********************************************************/ 30 | 31 | // +-------------------------------------------------------+ 32 | // | Set the background color | 33 | // +-------------------------------------------------------+ 34 | 35 | void setBackgroundColor(QColor _color); 36 | 37 | // +-------------------------------------------------------+ 38 | // | Set the top grid color | 39 | // +-------------------------------------------------------+ 40 | 41 | void setTopGridColor(QColor _color); 42 | 43 | // +-------------------------------------------------------+ 44 | // | Set the bottom grid color | 45 | // +-------------------------------------------------------+ 46 | 47 | void setBottomGridColor(QColor _color); 48 | 49 | /*********************************************************** 50 | * Refresh * 51 | ***********************************************************/ 52 | 53 | void updatePlot(); 54 | 55 | 56 | 57 | private: 58 | 59 | /*********************************************************** 60 | * Private fields * 61 | ***********************************************************/ 62 | 63 | int width; 64 | int height; 65 | SpherePlot *mainPlot; 66 | 67 | int samplingRate; 68 | int hopSize; 69 | 70 | int updateFactor; 71 | int updateCounter; 72 | 73 | SourceManager *mainManager; 74 | 75 | }; 76 | 77 | #endif // WINSPHERE_H 78 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | MESSAGE( STATUS "Buiding RTAudio Library...") 2 | 3 | 4 | find_package(Jack) 5 | 6 | 7 | IF (WIN32) 8 | 9 | ADD_DEFINITIONS(-D__WINDOWS_ASIO__) 10 | 11 | 12 | SET(RTAudioLib_SRCS 13 | RtAudio.cpp 14 | iasiothiscallresolver.cpp 15 | asiolist.cpp 16 | asiodrivers.cpp 17 | asio.cpp 18 | ) 19 | 20 | SET(RTAudioLib_HEADERS 21 | soundcard.h 22 | RtError.h 23 | RtAudio.h 24 | iasiothiscallresolver.h 25 | iasiodrv.h 26 | ginclude.h 27 | dsound.h 28 | asiosys.h 29 | asiolist.h 30 | asiodrvr.h 31 | asiodrivers.h 32 | asio.h 33 | ) 34 | 35 | INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/RTAudio ${ALSA_INCLUDE_DIR} ) 36 | add_library(RTAudioLib STATIC ${RTAudioLib_SRCS} ${RTAudioLib_HEADERS} ) 37 | target_link_libraries(RTAudioLib ${ALSA_LIBRARY}) 38 | set_target_properties(RTAudioLib PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS} OUTPUT_NAME rtaudio) 39 | #INSTALL(TARGETS RTAudioLib DESTINATION bin) 40 | INSTALL(TARGETS RTAudioLib DESTINATION rtaudio/lib) 41 | INSTALL(FILES ${RTAudioLib_HEADERS} DESTINATION rtaudio/include) 42 | ENDIF(WIN32) 43 | 44 | IF (UNIX) 45 | SET(RTAudioLib_SRCS 46 | RtAudio.cpp 47 | ) 48 | 49 | SET(RTAudioLib_HEADERS 50 | soundcard.h 51 | RtError.h 52 | RtAudio.h 53 | ginclude.h 54 | ) 55 | 56 | 57 | 58 | 59 | IF (APPLE) 60 | ADD_DEFINITIONS(-D__MACOSX_CORE__ -DMAC) 61 | INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/RTAudio) 62 | add_library(RTAudioLib STATIC ${RTAudioLib_SRCS} ${RTAudioLib_HEADERS} ) 63 | target_link_libraries(RTAudioLib "-framework CoreFoundation -framework CoreAudio -framework AudioUnit -framework AudioToolbox") 64 | set_target_properties(RTAudioLib PROPERTIES OUTPUT_NAME rtaudio) 65 | ELSE(APPLE) 66 | 67 | IF (JACK_FOUND) 68 | ADD_DEFINITIONS(-D__UNIX_JACK__) 69 | INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${JACK_INCLUDE_DIR}) 70 | ENDIF(JACK_FOUND) 71 | 72 | #find_package(ALSA REQUIRED) 73 | ADD_DEFINITIONS(-D__LINUX_ALSA__) 74 | SET(ALSA_LIBRARY "-lasound -lpthread") 75 | INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${PROJECT_SOURCE_DIR}/RTAudio ${ALSA_INCLUDE_DIR} ) 76 | add_library(RTAudioLib SHARED ${RTAudioLib_SRCS} ${RTAudioLib_HEADERS} ) 77 | 78 | IF (JACK_FOUND) 79 | target_link_libraries(RTAudioLib ${ALSA_LIBRARY} ${JACK_LIBRARIES}) 80 | ELSE(JACK_FOUND) 81 | target_link_libraries(RTAudioLib ${ALSA_LIBRARY}) 82 | ENDIF(JACK_FOUND) 83 | 84 | MESSAGE("ALSA lib : ${ALSA_LIBRARY}") 85 | set_target_properties(RTAudioLib PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS} OUTPUT_NAME rtaudio) 86 | ENDIF(APPLE) 87 | 88 | #Installation directory 89 | INSTALL(TARGETS RTAudioLib DESTINATION rtaudio/lib) 90 | INSTALL(FILES ${RTAudioLib_HEADERS} DESTINATION rtaudio/include) 91 | 92 | ENDIF(UNIX) 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/RtError.h: -------------------------------------------------------------------------------- 1 | /************************************************************************/ 2 | /*! \class RtError 3 | \brief Exception handling class for RtAudio & RtMidi. 4 | 5 | The RtError class is quite simple but it does allow errors to be 6 | "caught" by RtError::Type. See the RtAudio and RtMidi 7 | documentation to know which methods can throw an RtError. 8 | 9 | */ 10 | /************************************************************************/ 11 | 12 | #ifndef RTERROR_H 13 | #define RTERROR_H 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | class RtError : public std::exception 20 | { 21 | public: 22 | //! Defined RtError types. 23 | enum Type { 24 | WARNING, /*!< A non-critical error. */ 25 | DEBUG_WARNING, /*!< A non-critical error which might be useful for debugging. */ 26 | UNSPECIFIED, /*!< The default, unspecified error type. */ 27 | NO_DEVICES_FOUND, /*!< No devices found on system. */ 28 | INVALID_DEVICE, /*!< An invalid device ID was specified. */ 29 | MEMORY_ERROR, /*!< An error occured during memory allocation. */ 30 | INVALID_PARAMETER, /*!< An invalid parameter was specified to a function. */ 31 | INVALID_USE, /*!< The function was called incorrectly. */ 32 | DRIVER_ERROR, /*!< A system driver error occured. */ 33 | SYSTEM_ERROR, /*!< A system error occured. */ 34 | THREAD_ERROR /*!< A thread error occured. */ 35 | }; 36 | 37 | //! The constructor. 38 | RtError( const std::string& message, Type type = RtError::UNSPECIFIED ) throw() : message_(message), type_(type) {} 39 | 40 | //! The destructor. 41 | virtual ~RtError( void ) throw() {} 42 | 43 | //! Prints thrown error message to stderr. 44 | virtual void printMessage( void ) const throw() { std::cerr << '\n' << message_ << "\n\n"; } 45 | 46 | //! Returns the thrown error message type. 47 | virtual const Type& getType(void) const throw() { return type_; } 48 | 49 | //! Returns the thrown error message string. 50 | virtual const std::string& getMessage(void) const throw() { return message_; } 51 | 52 | //! Returns the thrown error message as a c-style string. 53 | virtual const char* what( void ) const throw() { return message_.c_str(); } 54 | 55 | protected: 56 | std::string message_; 57 | Type type_; 58 | }; 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/asiodrivers.h: -------------------------------------------------------------------------------- 1 | #ifndef __AsioDrivers__ 2 | #define __AsioDrivers__ 3 | 4 | #include "ginclude.h" 5 | 6 | #if MAC 7 | #include "CodeFragments.hpp" 8 | 9 | class AsioDrivers : public CodeFragments 10 | 11 | #elif WINDOWS 12 | #include 13 | #include "asiolist.h" 14 | 15 | class AsioDrivers : public AsioDriverList 16 | 17 | #elif SGI || BEOS 18 | #include "asiolist.h" 19 | 20 | class AsioDrivers : public AsioDriverList 21 | 22 | #else 23 | #error implement me 24 | #endif 25 | 26 | { 27 | public: 28 | AsioDrivers(); 29 | ~AsioDrivers(); 30 | 31 | bool getCurrentDriverName(char *name); 32 | long getDriverNames(char **names, long maxDrivers); 33 | bool loadDriver(char *name); 34 | void removeCurrentDriver(); 35 | long getCurrentDriverIndex() {return curIndex;} 36 | protected: 37 | unsigned long connID; 38 | long curIndex; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/asiodrvr.h: -------------------------------------------------------------------------------- 1 | /* 2 | Steinberg Audio Stream I/O API 3 | (c) 1996, Steinberg Soft- und Hardware GmbH 4 | charlie (May 1996) 5 | 6 | asiodrvr.h 7 | c++ superclass to implement asio functionality. from this, 8 | you can derive whatever required 9 | */ 10 | 11 | #ifndef _asiodrvr_ 12 | #define _asiodrvr_ 13 | 14 | // cpu and os system we are running on 15 | #include "asiosys.h" 16 | // basic "C" interface 17 | #include "asio.h" 18 | 19 | class AsioDriver; 20 | extern AsioDriver *getDriver(); // for generic constructor 21 | 22 | #if WINDOWS 23 | #include 24 | #include "combase.h" 25 | #include "iasiodrv.h" 26 | class AsioDriver : public IASIO ,public CUnknown 27 | { 28 | public: 29 | AsioDriver(LPUNKNOWN pUnk, HRESULT *phr); 30 | 31 | DECLARE_IUNKNOWN 32 | // Factory method 33 | static CUnknown *CreateInstance(LPUNKNOWN pUnk, HRESULT *phr); 34 | // IUnknown 35 | virtual HRESULT STDMETHODCALLTYPE NonDelegatingQueryInterface(REFIID riid,void **ppvObject); 36 | 37 | #else 38 | 39 | class AsioDriver 40 | { 41 | public: 42 | AsioDriver(); 43 | #endif 44 | virtual ~AsioDriver(); 45 | 46 | virtual ASIOBool init(void* sysRef); 47 | virtual void getDriverName(char *name); // max 32 bytes incl. terminating zero 48 | virtual long getDriverVersion(); 49 | virtual void getErrorMessage(char *string); // max 124 bytes incl. 50 | 51 | virtual ASIOError start(); 52 | virtual ASIOError stop(); 53 | 54 | virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels); 55 | virtual ASIOError getLatencies(long *inputLatency, long *outputLatency); 56 | virtual ASIOError getBufferSize(long *minSize, long *maxSize, 57 | long *preferredSize, long *granularity); 58 | 59 | virtual ASIOError canSampleRate(ASIOSampleRate sampleRate); 60 | virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate); 61 | virtual ASIOError setSampleRate(ASIOSampleRate sampleRate); 62 | virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources); 63 | virtual ASIOError setClockSource(long reference); 64 | 65 | virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp); 66 | virtual ASIOError getChannelInfo(ASIOChannelInfo *info); 67 | 68 | virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, 69 | long bufferSize, ASIOCallbacks *callbacks); 70 | virtual ASIOError disposeBuffers(); 71 | 72 | virtual ASIOError controlPanel(); 73 | virtual ASIOError future(long selector, void *opt); 74 | virtual ASIOError outputReady(); 75 | }; 76 | #endif 77 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/asiolist.h: -------------------------------------------------------------------------------- 1 | #ifndef __asiolist__ 2 | #define __asiolist__ 3 | 4 | #define DRVERR -5000 5 | #define DRVERR_INVALID_PARAM DRVERR-1 6 | #define DRVERR_DEVICE_ALREADY_OPEN DRVERR-2 7 | #define DRVERR_DEVICE_NOT_FOUND DRVERR-3 8 | 9 | #define MAXPATHLEN 512 10 | #define MAXDRVNAMELEN 128 11 | 12 | struct asiodrvstruct 13 | { 14 | int drvID; 15 | CLSID clsid; 16 | char dllpath[MAXPATHLEN]; 17 | char drvname[MAXDRVNAMELEN]; 18 | LPVOID asiodrv; 19 | struct asiodrvstruct *next; 20 | }; 21 | 22 | typedef struct asiodrvstruct ASIODRVSTRUCT; 23 | typedef ASIODRVSTRUCT *LPASIODRVSTRUCT; 24 | 25 | class AsioDriverList { 26 | public: 27 | AsioDriverList(); 28 | ~AsioDriverList(); 29 | 30 | LONG asioOpenDriver (int,VOID **); 31 | LONG asioCloseDriver (int); 32 | 33 | // nice to have 34 | LONG asioGetNumDev (VOID); 35 | LONG asioGetDriverName (int,char *,int); 36 | LONG asioGetDriverPath (int,char *,int); 37 | LONG asioGetDriverCLSID (int,CLSID *); 38 | 39 | // or use directly access 40 | LPASIODRVSTRUCT lpdrvlist; 41 | int numdrv; 42 | }; 43 | 44 | typedef class AsioDriverList *LPASIODRIVERLIST; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/asiosys.h: -------------------------------------------------------------------------------- 1 | #ifndef __asiosys__ 2 | #define __asiosys__ 3 | 4 | #ifdef WIN32 5 | #undef MAC 6 | #define PPC 0 7 | #define WINDOWS 1 8 | #define SGI 0 9 | #define SUN 0 10 | #define LINUX 0 11 | #define BEOS 0 12 | 13 | #define NATIVE_INT64 0 14 | #define IEEE754_64FLOAT 1 15 | 16 | #elif BEOS 17 | #define MAC 0 18 | #define PPC 0 19 | #define WINDOWS 0 20 | #define PC 0 21 | #define SGI 0 22 | #define SUN 0 23 | #define LINUX 0 24 | 25 | #define NATIVE_INT64 0 26 | #define IEEE754_64FLOAT 1 27 | 28 | #ifndef DEBUG 29 | #define DEBUG 0 30 | #if DEBUG 31 | void DEBUGGERMESSAGE(char *string); 32 | #else 33 | #define DEBUGGERMESSAGE(a) 34 | #endif 35 | #endif 36 | 37 | #elif SGI 38 | #define MAC 0 39 | #define PPC 0 40 | #define WINDOWS 0 41 | #define PC 0 42 | #define SUN 0 43 | #define LINUX 0 44 | #define BEOS 0 45 | 46 | #define NATIVE_INT64 0 47 | #define IEEE754_64FLOAT 1 48 | 49 | #ifndef DEBUG 50 | #define DEBUG 0 51 | #if DEBUG 52 | void DEBUGGERMESSAGE(char *string); 53 | #else 54 | #define DEBUGGERMESSAGE(a) 55 | #endif 56 | #endif 57 | 58 | #else // MAC 59 | 60 | #define MAC 1 61 | #define PPC 1 62 | #define WINDOWS 0 63 | #define PC 0 64 | #define SGI 0 65 | #define SUN 0 66 | #define LINUX 0 67 | #define BEOS 0 68 | 69 | #define NATIVE_INT64 0 70 | #define IEEE754_64FLOAT 1 71 | 72 | #ifndef DEBUG 73 | #define DEBUG 0 74 | #if DEBUG 75 | void DEBUGGERMESSAGE(char *string); 76 | #else 77 | #define DEBUGGERMESSAGE(a) 78 | #endif 79 | #endif 80 | #endif 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/ginclude.h: -------------------------------------------------------------------------------- 1 | #ifndef __gInclude__ 2 | #define __gInclude__ 3 | 4 | #if SGI 5 | #undef BEOS 6 | #undef MAC 7 | #undef WINDOWS 8 | // 9 | #define ASIO_BIG_ENDIAN 1 10 | #define ASIO_CPU_MIPS 1 11 | #elif defined WIN32 12 | #undef BEOS 13 | #undef MAC 14 | #undef SGI 15 | #define WINDOWS 1 16 | #define ASIO_LITTLE_ENDIAN 1 17 | #define ASIO_CPU_X86 1 18 | #elif BEOS 19 | #undef MAC 20 | #undef SGI 21 | #undef WINDOWS 22 | #define ASIO_LITTLE_ENDIAN 1 23 | #define ASIO_CPU_X86 1 24 | // 25 | #else 26 | #define MAC 1 27 | #undef BEOS 28 | #undef WINDOWS 29 | #undef SGI 30 | #define ASIO_BIG_ENDIAN 1 31 | #define ASIO_CPU_PPC 1 32 | #endif 33 | 34 | // always 35 | #define NATIVE_INT64 0 36 | #define IEEE754_64FLOAT 1 37 | 38 | #endif // __gInclude__ 39 | -------------------------------------------------------------------------------- /manyears-C/RTAudio/iasiodrv.h: -------------------------------------------------------------------------------- 1 | #include "asiosys.h" 2 | #include "asio.h" 3 | 4 | /* Forward Declarations */ 5 | 6 | #ifndef __ASIODRIVER_FWD_DEFINED__ 7 | #define __ASIODRIVER_FWD_DEFINED__ 8 | typedef interface IASIO IASIO; 9 | #endif /* __ASIODRIVER_FWD_DEFINED__ */ 10 | 11 | interface IASIO : public IUnknown 12 | { 13 | 14 | virtual ASIOBool init(void *sysHandle) = 0; 15 | virtual void getDriverName(char *name) = 0; 16 | virtual long getDriverVersion() = 0; 17 | virtual void getErrorMessage(char *string) = 0; 18 | virtual ASIOError start() = 0; 19 | virtual ASIOError stop() = 0; 20 | virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels) = 0; 21 | virtual ASIOError getLatencies(long *inputLatency, long *outputLatency) = 0; 22 | virtual ASIOError getBufferSize(long *minSize, long *maxSize, 23 | long *preferredSize, long *granularity) = 0; 24 | virtual ASIOError canSampleRate(ASIOSampleRate sampleRate) = 0; 25 | virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate) = 0; 26 | virtual ASIOError setSampleRate(ASIOSampleRate sampleRate) = 0; 27 | virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources) = 0; 28 | virtual ASIOError setClockSource(long reference) = 0; 29 | virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp) = 0; 30 | virtual ASIOError getChannelInfo(ASIOChannelInfo *info) = 0; 31 | virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, 32 | long bufferSize, ASIOCallbacks *callbacks) = 0; 33 | virtual ASIOError disposeBuffers() = 0; 34 | virtual ASIOError controlPanel() = 0; 35 | virtual ASIOError future(long selector,void *opt) = 0; 36 | virtual ASIOError outputReady() = 0; 37 | }; 38 | -------------------------------------------------------------------------------- /manyears-C/Samples/rawdata_2srcs_90_90.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/Samples/rawdata_2srcs_90_90.raw -------------------------------------------------------------------------------- /manyears-C/demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #ManyEars Executable 2 | 3 | #add source here 4 | SET(SRCS 5 | manyears_demo.c 6 | ) 7 | 8 | #Include directories 9 | INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} 10 | ${PROJECT_SOURCE_DIR}/ 11 | ${PROJECT_SOURCE_DIR}/dsplib 12 | ${PROJECT_SOURCE_DIR}/RTAudio 13 | ) 14 | 15 | 16 | add_executable(manyears_demo manyears_demo.c) 17 | set_target_properties(manyears_demo PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS}) 18 | target_link_libraries(manyears_demo ManyEarsLib -lm) 19 | 20 | 21 | #INSTALL DEMONSTRATION FILES 22 | INSTALL(FILES ${SRCS} DESTINATION example) 23 | 24 | 25 | -------------------------------------------------------------------------------- /manyears-C/dsplib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | MESSAGE( STATUS "Buiding ManyEarsLib Library...") 2 | 3 | SET(ManyEarsLib_SRCS 4 | Geometry/microphones.c 5 | Preprocessing/mcra.c 6 | Preprocessing/micst.c 7 | Preprocessing/preprocessor.c 8 | Localisation/beamformer.c 9 | Localisation/delays.c 10 | Localisation/potentialSources.c 11 | Localisation/rij.c 12 | Localisation/sphere.c 13 | Tracking/filter.c 14 | Tracking/mixture.c 15 | Tracking/trackedSources.c 16 | Separation/gss.c 17 | Separation/postfilter.c 18 | Separation/postfilteredSources.c 19 | Separation/separatedSources.c 20 | Output/output.c 21 | Output/outputChunk.c 22 | Output/outputSingleStream.c 23 | Postprocessing/postprocessor.c 24 | Utilities/linearCorrelation.c 25 | Utilities/dynamicMemory.c 26 | Utilities/fft.c 27 | Utilities/idList.c 28 | Utilities/idManager.c 29 | Utilities/matrix.c 30 | Utilities/randGen.c 31 | Utilities/transcendental.c 32 | Utilities/window.c 33 | Utilities/mathadvanced.c 34 | parameters.c 35 | overallContext.c 36 | ) 37 | 38 | SET(ManyEarsLib_HEADERS 39 | Geometry/microphones.h 40 | Preprocessing/mcra.h 41 | Preprocessing/micst.h 42 | Preprocessing/preprocessor.h 43 | Localisation/beamformer.h 44 | Localisation/delays.h 45 | Localisation/potentialSources.h 46 | Localisation/rij.h 47 | Localisation/sphere.h 48 | Tracking/filter.h 49 | Tracking/mixture.h 50 | Tracking/trackedSources.h 51 | Separation/gss.h 52 | Separation/postfilter.h 53 | Separation/postfilteredSources.h 54 | Separation/separatedSources.h 55 | Output/output.h 56 | Output/outputChunk.h 57 | Output/outputSingleStream.h 58 | Postprocessing/postprocessor.h 59 | Utilities/linearCorrelation.h 60 | Utilities/dynamicMemory.h 61 | Utilities/fft.h 62 | Utilities/idList.h 63 | Utilities/idManager.h 64 | Utilities/mathadvanced.h 65 | Utilities/matrix.h 66 | Utilities/randGen.h 67 | Utilities/transcendental.h 68 | Utilities/window.h 69 | parameters.h 70 | overallContext.h 71 | hardware.h 72 | ) 73 | 74 | #INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/dsplib ) 75 | INCLUDE_DIRECTORIES(.) 76 | 77 | 78 | add_library(ManyEarsLib STATIC ${ManyEarsLib_SRCS} ${ManyEarsLib_HEADERS} ) 79 | target_link_libraries(ManyEarsLib ) 80 | set_target_properties(ManyEarsLib PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS} OUTPUT_NAME manyears) 81 | 82 | INSTALL(TARGETS ManyEarsLib DESTINATION lib) 83 | 84 | 85 | #Install headers in the adequate directory 86 | FOREACH(header_file ${ManyEarsLib_HEADERS}) 87 | GET_FILENAME_COMPONENT(HEADER_PATH ${header_file} PATH) 88 | INSTALL(FILES ${header_file} DESTINATION include/${HEADER_PATH}) 89 | ENDFOREACH(header_file) 90 | 91 | 92 | #INSTALL(FILES ${ManyEarsLib_HEADERS} DESTINATION include) 93 | 94 | #add_executable(sse_test sseTest.c sseTest.h) 95 | #set_target_properties(sse_test PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS}) 96 | #target_link_libraries(sse_test ManyEarsLib -lm) 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /manyears-C/dsplib/Geometry/microphones.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Geometry/microphones.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Geometry/microphones.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Geometry/microphones.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/beamformer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/beamformer.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/beamformer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/beamformer.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/delays.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/delays.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/delays.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/delays.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/potentialSources.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/potentialSources.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/potentialSources.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/potentialSources.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/rij.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/rij.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/rij.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/rij.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/sphere.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/sphere.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Localisation/sphere.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Localisation/sphere.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/output.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/output.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/output.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/output.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/outputChunk.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/outputChunk.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/outputChunk.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/outputChunk.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/outputSingleStream.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/outputSingleStream.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Output/outputSingleStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Output/outputSingleStream.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Postprocessing/postprocessor.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Postprocessing/postprocessor.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Postprocessing/postprocessor.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Postprocessing/postprocessor.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/mcra.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/mcra.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/mcra.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/mcra.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/micst.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/micst.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/micst.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/micst.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/preprocessor.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/preprocessor.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Preprocessing/preprocessor.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Preprocessing/preprocessor.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/gss.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/gss.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/gss.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/gss.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/postfilter.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/postfilter.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/postfilter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/postfilter.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/postfilteredSources.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/postfilteredSources.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/postfilteredSources.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/postfilteredSources.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/separatedSources.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/separatedSources.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Separation/separatedSources.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Separation/separatedSources.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/filter.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/filter.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/filter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/filter.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/mixture.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/mixture.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/mixture.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/mixture.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/trackedSources.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/trackedSources.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Tracking/trackedSources.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Tracking/trackedSources.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/dynamicMemory.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/dynamicMemory.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/dynamicMemory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/dynamicMemory.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/fft.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/fft.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/fft.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/fft.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/idList.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/idList.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/idList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/idList.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/idManager.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/idManager.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/idManager.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/idManager.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/linearCorrelation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/linearCorrelation.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/linearCorrelation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/linearCorrelation.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/mathadvanced.c: -------------------------------------------------------------------------------- 1 | #include "Utilities/mathadvanced.h" 2 | 3 | float expest(float _arg) 4 | { 5 | 6 | // Compute the exponential with the limit definition: 7 | // 8 | // exp(x) = (1 + x/n)^n 9 | // 10 | // where n is the number of iteration (needs to go to 11 | // infinity to get exact result) 12 | 13 | // Here n = 128; 14 | // 15 | // Only good for range x = [-128,0] 16 | 17 | float sum; 18 | 19 | sum = (float) (1.0 + _arg / 128.0); 20 | 21 | if (sum < 0.0) 22 | { 23 | sum = 0.0; 24 | } 25 | 26 | sum *= sum; 27 | sum *= sum; 28 | sum *= sum; 29 | sum *= sum; 30 | sum *= sum; 31 | sum *= sum; 32 | sum *= sum; 33 | 34 | return sum; 35 | 36 | } 37 | 38 | -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/mathadvanced.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/mathadvanced.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/matrix.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/matrix.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/matrix.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/matrix.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/randGen.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/randGen.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/randGen.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/randGen.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/transcendental.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/transcendental.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/transcendental.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/transcendental.h -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/window.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/window.c -------------------------------------------------------------------------------- /manyears-C/dsplib/Utilities/window.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/Utilities/window.h -------------------------------------------------------------------------------- /manyears-C/dsplib/hardware.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/hardware.h -------------------------------------------------------------------------------- /manyears-C/dsplib/overallContext.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/overallContext.c -------------------------------------------------------------------------------- /manyears-C/dsplib/overallContext.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/overallContext.h -------------------------------------------------------------------------------- /manyears-C/dsplib/parameters.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/parameters.c -------------------------------------------------------------------------------- /manyears-C/dsplib/parameters.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/parameters.h -------------------------------------------------------------------------------- /manyears-C/dsplib/sseTest.c: -------------------------------------------------------------------------------- 1 | #include "hardware.h" 2 | #include "stdio.h" 3 | 4 | int main (int argc, char* argv[]) 5 | { 6 | 7 | #ifdef USE_SIMD 8 | 9 | // SIMD registers 10 | __m128_mod regA, regB, regC; 11 | int i; 12 | 13 | regA.m128_f32[0] = 1.0; 14 | regA.m128_f32[1] = 2.0; 15 | regA.m128_f32[2] = 3.0; 16 | regA.m128_f32[3] = 4.0; 17 | 18 | regB.m128_f32[0] = 10.0; 19 | regB.m128_f32[1] = 20.0; 20 | regB.m128_f32[2] = 30.0; 21 | regB.m128_f32[3] = 40.0; 22 | 23 | regC.m128 = _mm_add_ps(regA.m128,regB.m128); 24 | 25 | for (i = 0; i < 4; i++) 26 | { 27 | printf("%f\n",regC.m128_f32[i]); 28 | } 29 | 30 | #endif 31 | 32 | return 0; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /manyears-C/dsplib/sseTest.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-C/dsplib/sseTest.h -------------------------------------------------------------------------------- /manyears-C/example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #ManyEars Executable 2 | 3 | #add source here 4 | SET(SRCS 5 | manyears_console.c 6 | manyears_iterative.c 7 | ) 8 | 9 | 10 | SET(SAMPLES 11 | "${PROJECT_SOURCE_DIR}/Samples/rawdata_2srcs_90_90.raw" 12 | ) 13 | 14 | #Include directories 15 | INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} 16 | ${PROJECT_SOURCE_DIR}/ 17 | ${PROJECT_SOURCE_DIR}/dsplib 18 | ${PROJECT_SOURCE_DIR}/RTAudio 19 | ) 20 | 21 | #Batch application 22 | add_executable(manyears_console manyears_console.c) 23 | set_target_properties(manyears_console PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS}) 24 | target_link_libraries(manyears_console ManyEarsLib -lm) 25 | 26 | #Live application 27 | add_executable(manyears_live manyears_live.cpp) 28 | set_target_properties(manyears_live PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS}) 29 | target_link_libraries(manyears_live ManyEarsLib RTAudioLib -lm) 30 | 31 | #Iterative separation application 32 | add_executable(manyears_iterative manyears_iterative.c) 33 | set_target_properties(manyears_iterative PROPERTIES LINK_FLAGS ${MANYEARS_LINK_FLAGS}) 34 | target_link_libraries(manyears_iterative ManyEarsLib -lm) 35 | 36 | #INSTALL DEMONSTRATION FILES 37 | INSTALL(FILES ${SRCS} DESTINATION example) 38 | 39 | #INSTALL SAMPLE FILES 40 | INSTALL(FILES ${SAMPLES} DESTINATION samples) 41 | -------------------------------------------------------------------------------- /manyears-C/macros/FindJack.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find jack-2.6 2 | # Once done this will define 3 | # 4 | # JACK_FOUND - system has jack 5 | # JACK_INCLUDE_DIRS - the jack include directory 6 | # JACK_LIBRARIES - Link these to use jack 7 | # JACK_DEFINITIONS - Compiler switches required for using jack 8 | # 9 | # Copyright (c) 2008 Andreas Schneider 10 | # Modified for other libraries by Lasse Kärkkäinen 11 | # 12 | # Redistribution and use is allowed according to the terms of the New 13 | # BSD license. 14 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. 15 | # 16 | 17 | if (JACK_LIBRARIES AND JACK_INCLUDE_DIRS) 18 | # in cache already 19 | set(JACK_FOUND TRUE) 20 | else (JACK_LIBRARIES AND JACK_INCLUDE_DIRS) 21 | # use pkg-config to get the directories and then use these values 22 | # in the FIND_PATH() and FIND_LIBRARY() calls 23 | if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) 24 | include(UsePkgConfig) 25 | pkgconfig(jack _JACK_INCLUDEDIR _JACK_LIBDIR _JACK_LDFLAGS _JACK_CFLAGS) 26 | else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) 27 | find_package(PkgConfig) 28 | if (PKG_CONFIG_FOUND) 29 | pkg_check_modules(_JACK jack) 30 | endif (PKG_CONFIG_FOUND) 31 | endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) 32 | find_path(JACK_INCLUDE_DIR 33 | NAMES 34 | jack/jack.h 35 | PATHS 36 | ${_JACK_INCLUDEDIR} 37 | /usr/include 38 | /usr/local/include 39 | /opt/local/include 40 | /sw/include 41 | ) 42 | 43 | find_library(JACK_LIBRARY 44 | NAMES 45 | jack 46 | PATHS 47 | ${_JACK_LIBDIR} 48 | /usr/lib 49 | /usr/local/lib 50 | /opt/local/lib 51 | /sw/lib 52 | ) 53 | 54 | if (JACK_LIBRARY AND JACK_INCLUDE_DIR) 55 | set(JACK_FOUND TRUE) 56 | 57 | set(JACK_INCLUDE_DIRS 58 | ${JACK_INCLUDE_DIR} 59 | ) 60 | 61 | set(JACK_LIBRARIES 62 | ${JACK_LIBRARIES} 63 | ${JACK_LIBRARY} 64 | ) 65 | 66 | endif (JACK_LIBRARY AND JACK_INCLUDE_DIR) 67 | 68 | if (JACK_FOUND) 69 | if (NOT JACK_FIND_QUIETLY) 70 | message(STATUS "Found jack: ${JACK_LIBRARY}") 71 | endif (NOT JACK_FIND_QUIETLY) 72 | else (JACK_FOUND) 73 | if (JACK_FIND_REQUIRED) 74 | message(FATAL_ERROR "Could not find JACK") 75 | endif (JACK_FIND_REQUIRED) 76 | endif (JACK_FOUND) 77 | 78 | # show the JACK_INCLUDE_DIRS and JACK_LIBRARIES variables only in the advanced view 79 | mark_as_advanced(JACK_INCLUDE_DIRS JACK_LIBRARIES) 80 | 81 | endif (JACK_LIBRARIES AND JACK_INCLUDE_DIRS) 82 | -------------------------------------------------------------------------------- /manyears-flowdesigner/AUTHORS: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | Jean-Marc Valin 3 | Dominic Letourneau 4 | Yannick Brosseau 5 | -------------------------------------------------------------------------------- /manyears-flowdesigner/ChangeLog: -------------------------------------------------------------------------------- 1 | ChangeLog 2 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | # the next line sets up include and link directories and defines some variables that we will use. 3 | # you can modify the behavior by setting some variables, e.g. 4 | # set(QT_USE_OPENGL TRUE) 5 | # -> this will cause cmake to include and link against the OpenGL module 6 | 7 | #finding qt 8 | 9 | SET(QT_USE_QTNETWORK TRUE) 10 | SET(QT_USE_QTWEBKIT TRUE) 11 | SET(QT_USE_PHONON TRUE) 12 | 13 | 14 | find_package(Qt4 REQUIRED) 15 | 16 | IF (QT_PHONON_FOUND) 17 | ADD_DEFINITIONS(-D_HAVE_PHONON_) 18 | ENDIF(QT_PHONON_FOUND) 19 | 20 | #REQUIRED 21 | include(${QT_USE_FILE}) 22 | 23 | #Sources for the AudioViewer application 24 | SET(AUDIOVIEWER_SRCS 25 | main.cpp 26 | FDReader.cpp 27 | ) 28 | 29 | SET(AUDIOVIEWER_HEADERS 30 | FDReader.h 31 | ) 32 | 33 | #Shared sources between AudioViewer application and Probes used in FlowDesigner 34 | SET(AUDIOVIEWERSHARED_SRCS 35 | audioview.cpp 36 | TrackAudioWidget.cpp 37 | ImageView.cpp 38 | SNCRZ30Cam.cpp 39 | ) 40 | 41 | SET(AUDIOVIEWERSHARED_HEADERS 42 | audioview.h 43 | TrackAudioWidget.h 44 | ImageView.h 45 | SNCRZ30Cam.h 46 | ) 47 | 48 | #Sources for Probes used in FlowDesigner 49 | SET(AUDIOVIEWERPROBES_SRCS 50 | QtProbeAudioViewer.cpp 51 | ) 52 | 53 | SET(AUDIOVIEWERPROBES_HEADERS 54 | QtProbeAudioViewer.h 55 | ) 56 | 57 | #This will generate moc_* for Qt 58 | QT4_WRAP_CPP(AUDIOVIEWER_MOC_SRCS ${AUDIOVIEWER_HEADERS}) 59 | #This will generate moc_* for Qt 60 | QT4_WRAP_CPP(AUDIOVIEWERSHARED_MOC_SRCS ${AUDIOVIEWERSHARED_HEADERS}) 61 | #This will generate moc_* for Qt 62 | QT4_WRAP_CPP(AUDIOVIEWERPROBES_MOC_SRCS ${AUDIOVIEWERPROBES_HEADERS}) 63 | 64 | #Qtflow includes 65 | SET (FLOWDESIGNER_QTFLOW_INCLUDE_DIR "${FLOWDESIGNER_INCLUDE_DIR}/qtflow/") 66 | 67 | #include files 68 | INCLUDE_DIRECTORIES(./ ../src ${FLOWDESIGNER_INCLUDE_DIR} ${QT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ${FLOWDESIGNER_QTFLOW_INCLUDE_DIR} ) 69 | 70 | # create an executable file named "AUDIOVIEWER" from the source files 71 | add_executable(audioviewer ${AUDIOVIEWER_SRCS} ${AUDIOVIEWER_MOC_SRCS} ${AUDIOVIEWERSHARED_SRCS} ${AUDIOVIEWERSHARED_MOC_SRCS}) 72 | 73 | # Linking with libflow and Qt libraries 74 | 75 | target_link_libraries(audioviewer ${QT_LIBRARIES} -L${FLOWDESIGNER_LIB_DIR} -lflow ${LIBXML2_LIBRARIES} libmanyears-dynamic) 76 | 77 | #install application 78 | install(TARGETS audioviewer DESTINATION bin) 79 | 80 | #Create a library, used for probes 81 | ADD_DEFINITIONS(-DINSTALL_PREFIX=\"${FD_PREFIX}\") 82 | add_library(libmanyears-probe-dynamic SHARED ${AUDIOVIEWERSHARED_SRCS} ${AUDIOVIEWERSHARED_MOC_SRCS} ${AUDIOVIEWERPROBES_SRCS} ${AUDIOVIEWERPROBES_MOC_SRCS}) 83 | 84 | set_target_properties(libmanyears-probe-dynamic PROPERTIES OUTPUT_NAME manyears.probe 85 | 86 | ) 87 | 88 | IF (APPLE) 89 | set_target_properties(libmanyears-probe-dynamic PROPERTIES 90 | BUILD_WITH_INSTALL_RPATH ON 91 | INSTALL_NAME_DIR ${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/lib) 92 | ENDIF(APPLE) 93 | 94 | 95 | target_link_libraries(libmanyears-probe-dynamic ${QT_LIBRARIES} -L${FLOWDESIGNER_LIB_DIR} -lflow -lqtflow ${LIBXML2_LIBRARIES} libmanyears-dynamic) 96 | install(TARGETS libmanyears-probe-dynamic DESTINATION ${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/lib) 97 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/FDReader.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006-2007 Eric Beaudry, Simon Briere, Dominic Letourneau 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #ifndef _FDREADER_H_ 19 | #define _FDREADER_H_ 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include "Vector.h" 27 | #include "AudioSource.h" 28 | 29 | 30 | class FDReader : public QTcpServer { 31 | 32 | Q_OBJECT; 33 | 34 | public: 35 | 36 | FDReader(int port=30011, int backlog=1); 37 | 38 | ~FDReader(); 39 | 40 | public slots: 41 | 42 | void dataReady(); 43 | void udpDataReady(); 44 | 45 | signals: 46 | 47 | void putData(FD::RCPtr > sources); 48 | void sourceReady(AudioSource source); 49 | 50 | protected: 51 | 52 | virtual void incomingConnection ( int socketDescriptor ); 53 | 54 | std::vector m_sockets; 55 | 56 | QUdpSocket *m_udpSocket; 57 | 58 | }; 59 | #endif 60 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/ImageView.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006-2007 Eric Beaudry, Simon Briere, Dominic Letourneau 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #include "ImageView.h" 19 | #include 20 | #include 21 | #include "DefaultImage.xpm" 22 | 23 | ImageView::ImageView(QWidget*parent) 24 | : QLabel(parent) { 25 | 26 | setPixmap(QPixmap (Default_xpm)); 27 | } 28 | 29 | ImageView::~ImageView() 30 | { 31 | } 32 | 33 | void ImageView::putImage(const QImage& image) 34 | { 35 | setPixmap(QPixmap().fromImage(image)); 36 | } 37 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/ImageView.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006-2007 Eric Beaudry, Simon Briere, Dominic Letourneau 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #ifndef _IMAGE_VIEW_H_ 19 | #define _IMAGE_VIEW_H_ 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | 26 | class ImageView : public QLabel 27 | { 28 | Q_OBJECT; 29 | 30 | public: 31 | ImageView(QWidget*parent); 32 | 33 | ~ImageView(); 34 | 35 | public slots: 36 | void putImage(const QImage& image); 37 | 38 | private: 39 | 40 | }; 41 | 42 | 43 | #endif 44 | 45 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/QtProbeAudioViewer.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "QtProbeAudioViewer.h" 3 | #include "TrackAudioWidget.h" 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | using namespace FD; 12 | 13 | DECLARE_PROBE(QtProbeAudioViewer) 14 | DECLARE_PROBE_ALLOWED_DATA_TYPE(QtProbeAudioViewer, "Vector") 15 | 16 | QtProbeAudioViewer::QtProbeAudioViewer(QWidget *parent, const QString &processHost, const int &processPort, const int &linkId) 17 | : QtProbe(parent, processHost, processPort, linkId) 18 | { 19 | } 20 | 21 | QtProbeAudioViewer::~QtProbeAudioViewer() 22 | { 23 | } 24 | 25 | void QtProbeAudioViewer::setupUi() 26 | { 27 | this->setWindowTitle(tr("AudioViewer - Link %1").arg(m_linkId)); 28 | this->resize(1024, 768); 29 | 30 | TrackAudioWidget* trackAudioWidget = new TrackAudioWidget(this); 31 | this->setCentralWidget(trackAudioWidget); 32 | 33 | QObject::connect(this, SIGNAL(putData(FD::RCPtr >)), trackAudioWidget, SLOT(getData(FD::RCPtr >))); 34 | } 35 | 36 | void QtProbeAudioViewer::dataReceived(const QByteArray &bytes) 37 | { 38 | const char* data = bytes.data(); 39 | int size = bytes.size(); 40 | std::stringstream inputStream; 41 | inputStream.write(data,size); 42 | 43 | try { 44 | FD::RCPtr > fdData; 45 | inputStream >> fdData; 46 | //Will send signal putData 47 | //Object will self destruct when unused 48 | emit putData(fdData); 49 | } 50 | catch(FD::BaseException *e) 51 | { 52 | e->print(std::cerr); 53 | delete e; 54 | } 55 | catch(...) 56 | { 57 | std::cerr<<"Unknown exception in :"<<__FILE__<<":"<<__LINE__< > sources); 28 | 29 | protected: 30 | virtual void dataReceived(const QByteArray &data); 31 | 32 | private: 33 | virtual void setupUi(); 34 | }; 35 | 36 | #endif /*QTPROBEAUDIOVIEWER_H_*/ 37 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/TrackAudioWidget.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006-2007 Eric Beaudry, Simon Briere, Dominic Letourneau 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #ifndef _TRACK_AUDIO_WIDGET_H_ 19 | #define _TRACK_AUDIO_WIDGET_H_ 20 | 21 | #include "audioview.h" 22 | #include "ImageView.h" 23 | #include "Vector.h" 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include "SNCRZ30Cam.h" 36 | 37 | 38 | class TrackAudioWidget : public QWidget 39 | { 40 | Q_OBJECT; 41 | 42 | public: 43 | TrackAudioWidget(QWidget* parent=NULL, bool startSphinxServers = false, int basePort = 7000); 44 | ~TrackAudioWidget(); 45 | virtual void setTime (unsigned long long time); 46 | 47 | bool isSourceActive(int id); 48 | unsigned long long getTime(); 49 | 50 | public slots: 51 | void getData(FD::RCPtr > sources); 52 | void sourceReady(AudioSource source); 53 | void selectedTime(unsigned long long time); 54 | void playClicked(int source_id); 55 | void timeout(); 56 | void cameraTimeout(); 57 | void setRecogString(int sourceID, QString recogString); 58 | 59 | protected slots: 60 | void sphinxProcessError(QProcess::ProcessError error ); 61 | void sphinxProcessStarted(); 62 | void sphinxProcessFinished( int exitCode, QProcess::ExitStatus exitStatus); 63 | void sphinxProcessReadStdErr(); 64 | void sphinxProcessReadStdOut(); 65 | 66 | protected: 67 | 68 | void startSphinxServers(int basePort); 69 | 70 | 71 | long long maxTimeSetted; 72 | AudioView* audioView; 73 | QVBoxLayout* Form1Layout; 74 | QHBoxLayout* bottomLayout; 75 | QGridLayout* gridLayout; 76 | QPushButton* sourceButtons[4]; 77 | QLabel* sourceID[4]; 78 | QLabel* sourceTheta[4]; 79 | QLabel* sourcePhi[4]; 80 | QLabel* sourceStrength[4]; 81 | QLabel* sourceDistance[4]; 82 | SNCRZ30View* m_cameraView; 83 | QButtonGroup* buttonGroup; 84 | //ImageView* imageView; 85 | QTimer* timer; 86 | QTimer* m_cameraTimer; 87 | std::map m_recogString; 88 | QProcess *m_sphinxProcess[4]; 89 | int m_sphinxBasePort; 90 | }; 91 | 92 | #endif 93 | -------------------------------------------------------------------------------- /manyears-flowdesigner/GUI/main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006-2007 Eric Beaudry, Simon Briere, Dominic Letourneau 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #include "TrackAudioWidget.h" 19 | #include "FDReader.h" 20 | #include 21 | #include 22 | #include 23 | #include "UINodeRepository.h" 24 | #include "ObjectRef.h" 25 | #include "path.h" 26 | #include "iextensions.h" 27 | 28 | void printusage(){ 29 | std::cout << "audioviewer " << std::endl << std::endl 30 | << std::endl << std::endl; 31 | } 32 | 33 | 34 | int main( int argc, char **argv) 35 | { 36 | 37 | //load FD toolboxes 38 | // FD::IExtensions::detect(); 39 | // FD::scanDL(); 40 | // FD::UINodeRepository::Scan(); 41 | 42 | 43 | //QApplication::setColorSpec( QApplication::CustomColor ); 44 | QApplication app( argc, argv ); 45 | 46 | QMainWindow mainWindow; 47 | FDReader fdReader; 48 | TrackAudioWidget audioview(NULL,true); 49 | 50 | //FlowDesigner SourceInfo reader 51 | QObject::connect(&fdReader, SIGNAL(putData(FD::RCPtr >)), &audioview, SLOT(getData(FD::RCPtr >))); 52 | QObject::connect(&fdReader, SIGNAL(sourceReady(AudioSource)), &audioview, SLOT(sourceReady(AudioSource))); 53 | 54 | mainWindow.setCentralWidget(&audioview); 55 | 56 | app.setActiveWindow(&mainWindow); 57 | mainWindow.resize(1024, 768); 58 | mainWindow.show(); 59 | return app.exec(); 60 | } 61 | -------------------------------------------------------------------------------- /manyears-flowdesigner/INSTALL: -------------------------------------------------------------------------------- 1 | See README files for details. 2 | -------------------------------------------------------------------------------- /manyears-flowdesigner/ManyEars3D/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # use, i.e. don't skip the full RPATH for the build tree 2 | SET(CMAKE_SKIP_BUILD_RPATH FALSE) 3 | 4 | # when building, don't use the install RPATH already 5 | # (but later on when installing) 6 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) 7 | 8 | # the RPATH to be used when installing 9 | SET(CMAKE_INSTALL_RPATH "${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/lib") 10 | 11 | # add the automatically determined parts of the RPATH 12 | # which point to directories outside the build tree to the install RPATH 13 | SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) 14 | 15 | 16 | SET(manyears3D_SRCS 17 | EqualGains3D.cc 18 | SourceTrack3D.cc 19 | TrackingDecision3D.cc 20 | Localize3D.cc 21 | SteeringVector3D.cc 22 | particles3D.cc 23 | ) 24 | 25 | #Look for dependencies 26 | FIND_PACKAGE(FFTW3 REQUIRED) 27 | 28 | SET(CMAKE_CXX_FLAGS "-msse -O3") 29 | 30 | 31 | INCLUDE_DIRECTORIES(${FLOWDESIGNER_INCLUDE_DIR} 32 | ${FFTW3_INCLUDE_DIR} 33 | ../src 34 | ) 35 | 36 | # create an executable file named "flowdesigner" from the source files 37 | 38 | add_library(libmanyears3D-dynamic SHARED ${manyears3D_SRCS}) 39 | 40 | set_target_properties(libmanyears3D-dynamic PROPERTIES OUTPUT_NAME manyears3D.tlb) 41 | 42 | target_link_libraries(libmanyears3D-dynamic -L${FLOWDESIGNER_LIB_DIR} -lflow ${LIBXML2_LIBRARIES} ${FFTW3_LIBRARY} libmanyears-dynamic) 43 | 44 | 45 | install(TARGETS libmanyears3D-dynamic DESTINATION ${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/lib) 46 | 47 | #INSTALLING .def file 48 | MESSAGE( STATUS "EXECUTING : ${PERL} ${FLOWDESIGNER_BIN_DIR}/info2def.pl ${manyears3D_SRCS}") 49 | INSTALL( CODE "EXECUTE_PROCESS(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/ManyEars3D OUTPUT_FILE libmanyears3D.def COMMAND ${PERL} ${FLOWDESIGNER_BIN_DIR}/info2def.pl ${manyears3D_SRCS})" ) 50 | INSTALL( FILES libmanyears3D.def DESTINATION ${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/def) 51 | 52 | -------------------------------------------------------------------------------- /manyears-flowdesigner/ManyEars3D/EqualGains3D.cc: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2002-2005 Jean-Marc Valin/Universite de Sherbrooke 2 | // All rights reserved 3 | 4 | #include "BufferedNode.h" 5 | #include "Buffer.h" 6 | #include "Vector.h" 7 | 8 | class EqualGains3D; 9 | 10 | using namespace FD; 11 | 12 | DECLARE_NODE(EqualGains3D) 13 | /*Node 14 | * 15 | * @name EqualGains3D 16 | * @category ManyEars:3D 17 | * @description Applies a gain to a vector 18 | * 19 | * @input_name INPUT 20 | * @input_type Vector 21 | * @input_description Input vector 22 | * 23 | * @output_name OUTPUT 24 | * @output_type Vector 25 | * @output_description Output vector (after gain) 26 | * 27 | * @parameter_name NB_CHANNELS 28 | * @parameter_type int 29 | * @parameter_description Number of channels 30 | * 31 | * @parameter_name GAINS 32 | * @parameter_type object 33 | * @parameter_description Value of the gains 34 | * 35 | END*/ 36 | 37 | class EqualGains3D : public BufferedNode { 38 | 39 | int inputID; 40 | int outputID; 41 | Vector gains; 42 | int nb_channels; 43 | 44 | public: 45 | EqualGains3D(std::string nodeName, ParameterSet params) 46 | : BufferedNode(nodeName, params) 47 | { 48 | inputID = addInput("INPUT"); 49 | outputID = addOutput("OUTPUT"); 50 | gains = object_cast > (parameters.get("GAINS")); 51 | nb_channels = dereference_cast (parameters.get("NB_CHANNELS")); 52 | } 53 | 54 | void calculate(int output_id, int count, Buffer &out) 55 | { 56 | ObjectRef inputValue = getInput(inputID, count); 57 | 58 | const Vector &in = object_cast > (inputValue); 59 | int inputLength = in.size(); 60 | 61 | Vector &output = *Vector::alloc(inputLength); 62 | out[count] = &output; 63 | 64 | for (int i=0;i 10 | 11 | using namespace FD; 12 | 13 | class SteeringVector3D; 14 | 15 | DECLARE_NODE(SteeringVector3D); 16 | /*Node 17 | * 18 | * @name SteeringVector3D 19 | * @category ManyEars:3D 20 | * @description Decide which source should be tracked 21 | * 22 | * @input_name INPUT 23 | * @input_type SourceInfo 24 | * @input_description Selected source for tracking 25 | * 26 | * @input_name MIC_POS 27 | * @input_type Matrix 28 | * @input_description Microphone position 29 | * 30 | * @output_name OUTPUT 31 | * @output_type Vector 32 | * @output_description Steering vector (delays) for selected source 33 | * 34 | * @output_name STRING 35 | * @output_type String 36 | * @output_description Steering vector (delays) for selected source (as string) 37 | * 38 | END*/ 39 | 40 | class SteeringVector3D : public BufferedNode { 41 | 42 | int inputID; 43 | int micID; 44 | int outputID; 45 | int stringID; 46 | 47 | public: 48 | SteeringVector3D(std::string nodeName, ParameterSet params) 49 | : BufferedNode(nodeName, params) 50 | { 51 | inputID = addInput("INPUT"); 52 | micID = addInput("MIC_POS"); 53 | outputID = addOutput("OUTPUT"); 54 | stringID = addOutput("STRING"); 55 | 56 | inOrder = true; 57 | } 58 | 59 | void calculate(int output_id, int count, Buffer &out) 60 | { 61 | ObjectRef inputValue = getInput(inputID, count); 62 | 63 | if (inputValue->isNil()) 64 | { 65 | out[count] = nilObject; 66 | return; 67 | } 68 | const SourceInfo &src = object_cast (inputValue); 69 | 70 | FD::RCPtr > micValue = getInput(micID, count); 71 | const FD::Matrix &mat = *micValue; 72 | 73 | int N = mat.nrows(); 74 | FD::Vector &vec = *FD::Vector::alloc(N); 75 | (*(outputs[outputID].buffer))[count]=&vec; 76 | FD::String &str = *new String; 77 | (*(outputs[stringID].buffer))[count]=&str; 78 | 79 | std::ostringstream sstr; 80 | sstr << "begin "; 81 | for (int i=0;i 22 | * @input_description Potential sources 23 | * 24 | * @output_name OUTPUT 25 | * @output_type SourceInfo 26 | * @output_description Selected source for tracking 27 | * 28 | END*/ 29 | 30 | class TrackingDecision3D : public BufferedNode { 31 | 32 | int inputID; 33 | int outputID; 34 | 35 | public: 36 | TrackingDecision3D(std::string nodeName, ParameterSet params) 37 | : BufferedNode(nodeName, params) 38 | { 39 | inputID = addInput("INPUT"); 40 | outputID = addOutput("OUTPUT"); 41 | 42 | inOrder = true; 43 | } 44 | 45 | void calculate(int output_id, int count, Buffer &out) 46 | { 47 | RCPtr > inputValue = getInput(inputID, count); 48 | 49 | const Vector &in = *inputValue; 50 | 51 | if (!in.size()) 52 | { 53 | out[count] = nilObject; 54 | return; 55 | } 56 | 57 | //Insert some better logic here 58 | 59 | out[count] = in[0]; 60 | } 61 | }; 62 | 63 | -------------------------------------------------------------------------------- /manyears-flowdesigner/ManyEars3D/particles3D.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2002-2005 Jean-Marc Valin/Universite de Sherbrooke 2 | // All rights reserved 3 | #ifndef PARTICLES_H 4 | #define PARTICLES_H 5 | 6 | #include 7 | #include 8 | //#include "SourceInfo.h" 9 | 10 | #define DELAY 13 11 | 12 | class Particle3D { 13 | public: 14 | enum State {Stopped=0, ConstVelocity=1, Excitation=2}; 15 | private: 16 | float x[3]; 17 | float v[3]; 18 | //int id; 19 | float weight; 20 | int state; 21 | float old_x[DELAY][3]; 22 | //float old_v[DELAY][3]; 23 | int old_index; 24 | public: 25 | Particle3D() {} 26 | 27 | Particle3D(float pos[3]); 28 | 29 | void predict(); 30 | 31 | float prob(float pos[3], float std_1); 32 | 33 | void updateWeight(float pos[3], float std_1); 34 | 35 | void setWeight(float w) {weight = w;} 36 | 37 | void accumWeight(float pos[3], float std_1, float w) {weight += w*prob(pos, std_1);} 38 | 39 | friend class Particle3DFilter; 40 | }; 41 | 42 | class Particle3DFilter { 43 | public: 44 | std::vector particles; 45 | float weight; 46 | float prob_exist, prob_exist2; 47 | float short_term_weight; 48 | bool srcExists; 49 | //public: 50 | int ID; 51 | int age, age2, aligned; 52 | float currPos[3]; 53 | float delayedPos[3]; 54 | float lastSeenPos[3]; 55 | int lastSeenCount; 56 | float minVarPos[3]; 57 | float minVar; 58 | int minVarCount; 59 | int startCount; 60 | public: 61 | Particle3DFilter(float pos[3], float std, int N, float initial_prob, int count); 62 | ~Particle3DFilter(); 63 | void resample(); 64 | void predict(); 65 | float prob(float pos[3], float std); 66 | void update(float pos[][3], float probs[], int N, float std[], int count); 67 | void print(); 68 | void updateStats(bool aligned, int count); 69 | void getStats(float mean[3], float std[3]); 70 | bool exists() {return srcExists;} 71 | int getID() {return ID;} 72 | //void update(std::vector src); 73 | friend class Particle3DMixture; 74 | }; 75 | 76 | class Particle3DMixture { 77 | int nbParticle3Ds; 78 | float estimStd; 79 | public: 80 | std::vector filters; 81 | int nextID; 82 | public: 83 | Particle3DMixture(int N, float std); 84 | ~Particle3DMixture(); 85 | void resample(); 86 | void predict(); 87 | void update(float pos[][3], float probs[], int N, float std[], int count); 88 | }; 89 | 90 | #endif 91 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret 252EM9765.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret 252EM9765.pdf -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret FG-23329-C05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret FG-23329-C05.pdf -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).bot: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10R,0.1102X0.1102*% 11 | %ADD11C,0.0520*% 12 | %ADD12C,0.0440*% 13 | %ADD13R,0.0512X0.0630*% 14 | %ADD14R,0.0630X0.0512*% 15 | %ADD15R,0.0591X0.0512*% 16 | %ADD16C,0.0436*% 17 | %ADD17C,0.0397*% 18 | %ADD18R,0.0512X0.0591*% 19 | %ADD19C,0.0090*% 20 | %ADD20C,0.2000*% 21 | D10* 22 | X012685Y008650D03* 23 | X015598Y009358D03* 24 | X015598Y005736D03* 25 | D11* 26 | X011604Y005592D03* 27 | X011604Y006592D03* 28 | D12* 29 | X013581Y006892D03* 30 | X014481Y008152D03* 31 | X014501Y004932D03* 32 | X014096Y004314D03* 33 | X013101Y004232D03* 34 | X014096Y003330D03* 35 | X014096Y002346D03* 36 | X013481Y002312D03* 37 | D13* 38 | X012789Y002708D03* 39 | X012041Y002708D03* 40 | X011681Y007380D03* 41 | X012429Y007380D03* 42 | D14* 43 | X010279Y003707D03* 44 | X010279Y004455D03* 45 | X011359Y004450D03* 46 | X011359Y003702D03* 47 | D15* 48 | X012418Y003732D03* 49 | X012418Y004401D03* 50 | D16* 51 | X010998Y005718D03* 52 | X010998Y006466D03* 53 | D17* 54 | X012076Y006092D03* 55 | X012588Y005817D03* 56 | X012588Y006368D03* 57 | D18* 58 | X011136Y002708D03* 59 | X010467Y002708D03* 60 | D19* 61 | X010471Y002382D01* 62 | X010701Y002152D01* 63 | X011541Y002152D01* 64 | X011801Y002412D01* 65 | X012041Y002708D01* 66 | X012789Y002708D02* 67 | X013041Y003012D01* 68 | X013141Y003112D01* 69 | X013141Y004232D01* 70 | X013101Y004232D01* 71 | X013141Y004232D02* 72 | X013141Y008112D01* 73 | X012685Y008650D01* 74 | X012391Y008362D01* 75 | X011891Y008362D01* 76 | X011671Y008142D01* 77 | X011681Y007380D01* 78 | X012429Y007380D02* 79 | X012681Y007072D01* 80 | X012941Y006812D01* 81 | X012941Y006212D01* 82 | X012701Y005972D01* 83 | X012588Y005817D01* 84 | X012501Y005632D01* 85 | X012501Y004652D01* 86 | X012418Y004401D01* 87 | X012141Y004412D01* 88 | X011661Y004412D01* 89 | X011359Y004450D01* 90 | X010881Y004132D02* 91 | X010881Y005532D01* 92 | X010998Y005718D01* 93 | X010521Y006152D02* 94 | X010821Y006452D01* 95 | X010998Y006466D01* 96 | X010521Y006152D02* 97 | X010521Y004832D01* 98 | X010531Y004642D01* 99 | X010279Y004455D01* 100 | X010881Y004132D02* 101 | X011061Y003952D01* 102 | X011359Y003702D01* 103 | X011661Y003732D01* 104 | X012141Y003732D01* 105 | X012418Y003732D01* 106 | X011359Y003702D02* 107 | X011141Y003452D01* 108 | X011141Y002992D01* 109 | X011136Y002708D01* 110 | X010467Y002708D02* 111 | X010481Y002992D01* 112 | X010481Y003452D01* 113 | X010279Y003707D01* 114 | X011881Y006172D02* 115 | X012076Y006092D01* 116 | X011881Y006172D02* 117 | X011721Y006332D01* 118 | X011721Y006352D01* 119 | X011604Y006592D01* 120 | X013461Y006772D02* 121 | X013461Y004392D01* 122 | X013481Y004372D01* 123 | X013481Y002312D01* 124 | X014501Y004932D02* 125 | X014811Y004932D01* 126 | X015061Y005192D01* 127 | X015598Y005736D01* 128 | X013581Y006892D02* 129 | X013461Y006772D01* 130 | X014481Y008152D02* 131 | X014481Y008232D01* 132 | X015061Y008812D01* 133 | X015598Y009358D01* 134 | D20* 135 | X010541Y008942D03* 136 | M02* 137 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).pdf -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).smb: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0749*% 11 | %ADD11R,0.1182X0.1182*% 12 | %ADD12C,0.0600*% 13 | %ADD13C,0.0520*% 14 | %ADD14R,0.0592X0.0710*% 15 | %ADD15R,0.0710X0.0592*% 16 | %ADD16R,0.0671X0.0592*% 17 | %ADD17C,0.0516*% 18 | %ADD18C,0.0477*% 19 | %ADD19R,0.0592X0.0671*% 20 | %ADD20C,0.2080*% 21 | D10* 22 | X014141Y006209D03* 23 | X014141Y008964D03* 24 | D11* 25 | X012685Y008650D03* 26 | X015598Y009358D03* 27 | X015598Y005736D03* 28 | D12* 29 | X011604Y005592D03* 30 | X011604Y006592D03* 31 | D13* 32 | X013581Y006892D03* 33 | X014481Y008152D03* 34 | X014501Y004932D03* 35 | X014096Y004314D03* 36 | X013101Y004232D03* 37 | X014096Y003330D03* 38 | X014096Y002346D03* 39 | X013481Y002312D03* 40 | D14* 41 | X012789Y002708D03* 42 | X012041Y002708D03* 43 | X011681Y007380D03* 44 | X012429Y007380D03* 45 | D15* 46 | X010279Y003707D03* 47 | X010279Y004455D03* 48 | X011359Y004450D03* 49 | X011359Y003702D03* 50 | D16* 51 | X012418Y003732D03* 52 | X012418Y004401D03* 53 | D17* 54 | X010998Y005718D03* 55 | X010998Y006466D03* 56 | D18* 57 | X012076Y006092D03* 58 | X012588Y005817D03* 59 | X012588Y006368D03* 60 | D19* 61 | X011136Y002708D03* 62 | X010467Y002708D03* 63 | D20* 64 | X010541Y008942D03* 65 | M02* 66 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).smt: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0749*% 11 | %ADD11C,0.0600*% 12 | %ADD12R,0.0592X0.0710*% 13 | %ADD13R,0.0592X0.0671*% 14 | %ADD14C,0.0520*% 15 | %ADD15R,0.0710X0.0592*% 16 | %ADD16R,0.0671X0.0592*% 17 | %ADD17R,0.0552X0.0297*% 18 | %ADD18C,0.0516*% 19 | %ADD19C,0.0477*% 20 | %ADD20C,0.2080*% 21 | D10* 22 | X014141Y006209D03* 23 | X014141Y008964D03* 24 | D11* 25 | X011604Y006592D03* 26 | X011604Y005592D03* 27 | D12* 28 | X015036Y006619D03* 29 | X015784Y006619D03* 30 | X015754Y007532D03* 31 | X015006Y007532D03* 32 | X015032Y009339D03* 33 | X015780Y009339D03* 34 | X015799Y003793D03* 35 | X015051Y003793D03* 36 | D13* 37 | X010239Y004118D03* 38 | X010908Y004118D03* 39 | X011136Y002715D03* 40 | X010466Y002715D03* 41 | X015082Y004665D03* 42 | X015751Y004665D03* 43 | X015756Y005529D03* 44 | X015086Y005529D03* 45 | X015070Y008441D03* 46 | X015739Y008441D03* 47 | D14* 48 | X014481Y008152D03* 49 | X013581Y006892D03* 50 | X014501Y004932D03* 51 | X014096Y004314D03* 52 | X013101Y004232D03* 53 | X014096Y003330D03* 54 | X014096Y002346D03* 55 | X013481Y002312D03* 56 | D15* 57 | X014941Y002189D03* 58 | X014941Y002937D03* 59 | D16* 60 | X015917Y002888D03* 61 | X015917Y002219D03* 62 | X013109Y008448D03* 63 | X013109Y009118D03* 64 | D17* 65 | X013017Y003659D03* 66 | X013017Y002911D03* 67 | X011994Y002911D03* 68 | X011994Y003285D03* 69 | X011994Y003659D03* 70 | D18* 71 | X010998Y005718D03* 72 | X010998Y006466D03* 73 | D19* 74 | X012076Y006092D03* 75 | X012588Y005817D03* 76 | X012588Y006368D03* 77 | D20* 78 | X010541Y008942D03* 79 | M02* 80 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).tap: -------------------------------------------------------------------------------- 1 | % 2 | M48 3 | M72 4 | T01C0.0200 5 | T02C0.0240 6 | T04C0.0280 7 | T05C0.0320 8 | T06C0.0669 9 | T07C0.1250 10 | % 11 | T01 12 | X12076Y6092 13 | X12588Y5817 14 | X12588Y6368 15 | T02 16 | X10998Y5718 17 | X10998Y6466 18 | X14096Y4314 19 | X14096Y3330 20 | X14096Y2346 21 | T04 22 | X13481Y2312 23 | X13101Y4232 24 | X14501Y4932 25 | X13581Y6892 26 | X14481Y8152 27 | T05 28 | X11604Y6592 29 | X11604Y5592 30 | T06 31 | X14141Y6209 32 | X14141Y8964 33 | T07 34 | X10541Y8942 35 | M30 36 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/Electret preamp public release (AUD0522.03).xls -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/LICENSE.TXT: -------------------------------------------------------------------------------- 1 | ../LICENSE.TXT -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Electret-preamp/layers.txt: -------------------------------------------------------------------------------- 1 | .top top layer 2 | .bot bottom layer 3 | .gko board edge 4 | .smt solder mask top 5 | .smb solder mask bottom 6 | .sst silk screen top 7 | .ssb silk screen bottom 8 | .tap excellon drill 9 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/LICENSE.TXT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/LICENSE.TXT -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/LICENSE.TXT: -------------------------------------------------------------------------------- 1 | ../LICENSE.TXT -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/Mic Interface public release (AUD0816.02).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/Mic Interface public release (AUD0816.02).pdf -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/Mic Interface public release (AUD0816.02).tap: -------------------------------------------------------------------------------- 1 | % 2 | M48 3 | M72 4 | T01C0.0320 5 | T02C0.0394 6 | T03C0.0400 7 | T04C0.0440 8 | T05C0.0472 9 | T06C0.0669 10 | T07C0.0709 11 | T08C0.0728 12 | T09C0.1250 13 | % 14 | T01 15 | X38786Y10415 16 | X38786Y11415 17 | X44986Y11415 18 | X44986Y10415 19 | X49986Y10415 20 | X49986Y11415 21 | X52886Y11915 22 | X56886Y11915 23 | X56886Y8815 24 | X57886Y8815 25 | T02 26 | X20886Y10315 27 | X18917Y10315 28 | X18917Y12284 29 | X20886Y12284 30 | T03 31 | X32226Y7465 32 | X33306Y7465 33 | X34386Y7465 34 | X35466Y7465 35 | X36546Y7465 36 | X36006Y6465 37 | X34926Y6465 38 | X33846Y6465 39 | X32766Y6465 40 | T04 41 | X26386Y10015 42 | X26386Y11015 43 | X26386Y12015 44 | T05 45 | X21811Y7737 46 | X24960Y7245 47 | X23386Y5965 48 | X17210Y7245 49 | X15636Y5965 50 | X14061Y7737 51 | X42311Y7737 52 | X45460Y7245 53 | X43886Y5965 54 | X50061Y7737 55 | X53210Y7245 56 | X51636Y5965 57 | T06 58 | X54470Y5847 59 | X54470Y6162 60 | X54470Y6477 61 | X48801Y6477 62 | X48801Y6162 63 | X48801Y5847 64 | X46720Y5847 65 | X46720Y6162 66 | X46720Y6477 67 | X41051Y6477 68 | X41051Y6162 69 | X41051Y5847 70 | X26220Y5847 71 | X26220Y6162 72 | X26220Y6477 73 | X20551Y6477 74 | X20551Y6162 75 | X20551Y5847 76 | X18470Y5847 77 | X18470Y6162 78 | X18470Y6477 79 | X12801Y6477 80 | X12801Y6162 81 | X12801Y5847 82 | T07 83 | X21657Y15573 84 | X26157Y15573 85 | X26157Y17778 86 | X25370Y18743 87 | X21657Y17778 88 | X20870Y18743 89 | X29870Y18743 90 | X30657Y17778 91 | X34370Y18743 92 | X35157Y17778 93 | X38870Y18743 94 | X39657Y17778 95 | X43370Y18743 96 | X44157Y17778 97 | X47870Y18743 98 | X48657Y17778 99 | X52370Y18743 100 | X53157Y17778 101 | X53157Y15573 102 | X48657Y15573 103 | X44157Y15573 104 | X39657Y15573 105 | X35157Y15573 106 | X30657Y15573 107 | T08 108 | X14138Y12817 109 | X10386Y13565 110 | X14138Y10967 111 | X14138Y9116 112 | X10386Y8364 113 | T09 114 | X11086Y4565 115 | X11086Y18315 116 | X57686Y18315 117 | X57686Y4565 118 | X16186Y14115 119 | X14335Y15296 120 | X16186Y16477 121 | X32286Y11015 122 | X29456Y6965 123 | X39316Y6965 124 | M30 125 | -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/Mic Interface public release (AUD0816.02).xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/Mic Interface public release (AUD0816.02).xls -------------------------------------------------------------------------------- /manyears-flowdesigner/MicrophoneArrayKit/Mic_Interface/layers.txt: -------------------------------------------------------------------------------- 1 | .top top layer 2 | .bot bottom layer 3 | .gko board edge 4 | .smt solder mask top 5 | .smb solder mask bottom 6 | .sst silk screen top 7 | .ssb silk screen bottom 8 | .tap excellon drill 9 | -------------------------------------------------------------------------------- /manyears-flowdesigner/NEWS: -------------------------------------------------------------------------------- 1 | 2007-05-01: Initial source code upload to the SVN repository. 2 | -------------------------------------------------------------------------------- /manyears-flowdesigner/TODO: -------------------------------------------------------------------------------- 1 | Updated Oct 2 2008 2 | 3 | = TODO for Jean-Marc = 4 | * Make the 3D algorithm work with a big array (change char by short?) 5 | * Code cleanup, remove useless #if 0 6 | * Make the 3D algorithm work with full sphere 7 | * Merge 3D and standard code ? 8 | 9 | 10 | = General TODO = 11 | * Make ManyEars a stand alone C library. 12 | * Redo FlowDesigner wrappers 13 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | #finding qt 4 | SET(QT_USE_QTNETWORK TRUE) 5 | SET(QT_USE_QTWEBKIT TRUE) 6 | 7 | 8 | find_package(Qt4 REQUIRED) 9 | 10 | 11 | #REQUIRED 12 | include(${QT_USE_FILE}) 13 | 14 | #Sources for the BRIDGE application 15 | SET(BRIDGE_SRCS 16 | CameraBridge.cpp 17 | qextserialbase.cpp 18 | qextserialport.cpp 19 | qextserialenumerator.cpp 20 | 21 | ) 22 | 23 | SET(BRIDGE_HEADERS 24 | CameraBridge.h 25 | qextserialenumerator.h 26 | qextserialbase.h 27 | qextserialport.h 28 | ) 29 | 30 | SET (BRIDGE_UIS 31 | MainWindow.ui 32 | ) 33 | 34 | #POSIX/UNIX SPECIFIC FILES & DEFINES 35 | IF (UNIX) 36 | ADD_DEFINITIONS(-D_TTY_POSIX_) 37 | SET(BRIDGE_SRCS ${BRIDGE_SRCS} posix_qextserialport.cpp) 38 | SET(BRIDGE_HEADERS ${BRIDGE_HEADERS} posix_qextserialport.h) 39 | ENDIF(UNIX) 40 | 41 | #WINDOWS SPECIFIC FILES & DEFINES 42 | IF (WIN32) 43 | SET(BRIDGE_SRCS ${BRIDGE_SRCS} win_qextserialport.cpp) 44 | SET(BRIDGE_HEADERS ${BRIDGE_HEADERS} win_qextserialport.h) 45 | ENDIF(WIN32) 46 | 47 | 48 | 49 | #This will generate moc_* for Qt 50 | QT4_WRAP_CPP(BRIDGE_MOC_SRCS ${BRIDGE_HEADERS}) 51 | 52 | #This will generate ui_* for Qt 53 | QT4_WRAP_UI(BRIDGE_UI_SRCS ${BRIDGE_UIS}) 54 | 55 | 56 | #include files 57 | INCLUDE_DIRECTORIES(./ ${QT_INCLUDE_DIR}) 58 | 59 | # create an executable file named "BRIDGE" from the source files 60 | add_executable(cameraBridge ${BRIDGE_SRCS} ${BRIDGE_MOC_SRCS} ${BRIDGE_UI_SRCS} main.cpp) 61 | 62 | # Linking with libflow and Qt libraries 63 | target_link_libraries(cameraBridge ${QT_LIBRARIES}) 64 | 65 | #install application 66 | install(TARGETS cameraBridge DESTINATION bin) 67 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/CameraBridge.h: -------------------------------------------------------------------------------- 1 | #ifndef _CAMERA_BRIDGE_H_ 2 | #define _CAMERA_BRIDGE_H_ 3 | 4 | #include 5 | #include "ui_MainWindow.h" 6 | #include "qextserialport.h" 7 | #include 8 | 9 | class CameraBridge : public QMainWindow 10 | { 11 | Q_OBJECT; 12 | 13 | public: 14 | CameraBridge (QWidget *parent); 15 | ~CameraBridge(); 16 | 17 | public slots: 18 | void updateTimeout(); 19 | void absolutePanTilt(int pan_position, int tilt_position,int pan_speed=24, int tilt_speed=20); 20 | void bytesSent(qint64 bytes); 21 | void readyRead(); 22 | 23 | protected: 24 | void auto_pan_tilt_speed_off(); 25 | void inquiry_pan_tilt(); 26 | Ui::MainWindow *m_uiMainWindow; 27 | QextSerialPort *m_serialPort; 28 | QTimer *m_updateTimer; 29 | bool m_connected; 30 | }; 31 | 32 | 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/MainWindow.ui: -------------------------------------------------------------------------------- 1 | 2 | MainWindow 3 | 4 | 5 | 6 | 0 7 | 0 8 | 800 9 | 600 10 | 11 | 12 | 13 | MainWindow 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 0 26 | 0 27 | 800 28 | 24 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "CameraBridge.h" 3 | 4 | int main(int argc, char* argv[]) 5 | { 6 | QApplication app(argc,argv, true); 7 | 8 | CameraBridge bridge(NULL); 9 | 10 | bridge.show(); 11 | 12 | return app.exec(); 13 | } 14 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/posix_qextserialport.h: -------------------------------------------------------------------------------- 1 | #ifndef _POSIX_QEXTSERIALPORT_H_ 2 | #define _POSIX_QEXTSERIALPORT_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include "qextserialbase.h" 12 | 13 | class Posix_QextSerialPort:public QextSerialBase 14 | { 15 | private: 16 | /*! 17 | * This method is a part of constructor. 18 | */ 19 | void init(); 20 | 21 | protected: 22 | int fd; 23 | struct termios Posix_CommConfig; 24 | struct termios old_termios; 25 | struct timeval Posix_Timeout; 26 | struct timeval Posix_Copy_Timeout; 27 | 28 | virtual qint64 readData(char * data, qint64 maxSize); 29 | virtual qint64 writeData(const char * data, qint64 maxSize); 30 | 31 | public: 32 | Posix_QextSerialPort(QextSerialBase::QueryMode mode); 33 | Posix_QextSerialPort(const Posix_QextSerialPort& s); 34 | Posix_QextSerialPort(const QString & name, QextSerialBase::QueryMode mode); 35 | Posix_QextSerialPort(const PortSettings& settings, QextSerialBase::QueryMode mode); 36 | Posix_QextSerialPort(const QString & name, const PortSettings& settings, QextSerialBase::QueryMode mode); 37 | Posix_QextSerialPort& operator=(const Posix_QextSerialPort& s); 38 | virtual ~Posix_QextSerialPort(); 39 | 40 | virtual void setBaudRate(BaudRateType); 41 | virtual void setDataBits(DataBitsType); 42 | virtual void setParity(ParityType); 43 | virtual void setStopBits(StopBitsType); 44 | virtual void setFlowControl(FlowType); 45 | virtual void setTimeout(long); 46 | 47 | virtual bool open(OpenMode mode); 48 | virtual void close(); 49 | virtual void flush(); 50 | 51 | virtual qint64 size() const; 52 | virtual qint64 bytesAvailable() const; 53 | 54 | virtual void ungetChar(char c); 55 | 56 | virtual void translateError(ulong error); 57 | 58 | virtual void setDtr(bool set=true); 59 | virtual void setRts(bool set=true); 60 | virtual ulong lineStatus(); 61 | 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/qextserialenumerator.h: -------------------------------------------------------------------------------- 1 | /*! 2 | * \file qextserialenumerator.h 3 | * \author Michal Policht 4 | * \see QextSerialEnumerator 5 | */ 6 | 7 | #ifndef _QEXTSERIALENUMERATOR_H_ 8 | #define _QEXTSERIALENUMERATOR_H_ 9 | 10 | 11 | #include 12 | #include 13 | 14 | #ifdef _TTY_WIN_ 15 | #include 16 | #include 17 | #endif /*_TTY_WIN_*/ 18 | 19 | 20 | /*! 21 | * Structure containing port information. 22 | */ 23 | struct QextPortInfo { 24 | QString portName; ///< Port name. 25 | QString physName; ///< Physical name. 26 | QString friendName; ///< Friendly name. 27 | QString enumName; ///< Enumerator name. 28 | }; 29 | 30 | 31 | /*! 32 | * Serial port enumerator. This class provides list of ports available in the system. 33 | * 34 | * Windows implementation is based on Zach Gorman's work from 35 | * The Code Project (http://www.codeproject.com/system/setupdi.asp). 36 | */ 37 | class QextSerialEnumerator 38 | { 39 | private: 40 | #ifdef _TTY_WIN_ 41 | /*! 42 | * Get value of specified property from the registry. 43 | * \param key handle to an open key. 44 | * \param property property name. 45 | * \return property value. 46 | */ 47 | static QString getRegKeyValue(HKEY key, LPCTSTR property); 48 | 49 | /*! 50 | * Get specific property from registry. 51 | * \param devInfo pointer to the device information set that contains the interface 52 | * and its underlying device. Returned by SetupDiGetClassDevs() function. 53 | * \param devData pointer to an SP_DEVINFO_DATA structure that defines the device instance. 54 | * this is returned by SetupDiGetDeviceInterfaceDetail() function. 55 | * \param property registry property. One of defined SPDRP_* constants. 56 | * \return property string. 57 | */ 58 | static QString getDeviceProperty(HDEVINFO devInfo, PSP_DEVINFO_DATA devData, DWORD property); 59 | 60 | /*! 61 | * Search for serial ports using setupapi. 62 | * \param infoList list with result. 63 | */ 64 | static void setupAPIScan(QList & infoList); 65 | #endif /*_TTY_WIN_*/ 66 | 67 | public: 68 | /*! 69 | * Get list of ports. 70 | * \return list of ports currently available in the system. 71 | */ 72 | static QList getPorts(); 73 | }; 74 | 75 | #endif /*_QEXTSERIALENUMERATOR_H_*/ 76 | -------------------------------------------------------------------------------- /manyears-flowdesigner/cameraBridge/qextserialport.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef _QEXTSERIALPORT_H_ 3 | #define _QEXTSERIALPORT_H_ 4 | 5 | /*POSIX CODE*/ 6 | #ifdef _TTY_POSIX_ 7 | #include "posix_qextserialport.h" 8 | #define QextBaseType Posix_QextSerialPort 9 | 10 | /*MS WINDOWS CODE*/ 11 | #else 12 | #include "win_qextserialport.h" 13 | #define QextBaseType Win_QextSerialPort 14 | #endif 15 | 16 | class QextSerialPort: public QextBaseType 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | typedef QextSerialBase::QueryMode QueryMode; 22 | 23 | QextSerialPort(QueryMode mode = QextSerialPort::EventDriven); 24 | QextSerialPort(const QString & name, QueryMode mode = QextSerialPort::EventDriven); 25 | QextSerialPort(PortSettings const& s, QueryMode mode = QextSerialPort::EventDriven); 26 | QextSerialPort(const QString & name, PortSettings const& s, QueryMode mode = QextSerialPort::EventDriven); 27 | QextSerialPort(const QextSerialPort& s); 28 | QextSerialPort& operator=(const QextSerialPort&); 29 | virtual ~QextSerialPort(); 30 | 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /manyears-flowdesigner/config/cube_mic_pos.mat: -------------------------------------------------------------------------------- 1 | 3 | 4 | 14 | > 15 | -------------------------------------------------------------------------------- /manyears-flowdesigner/config/planar_mic_pos.mat: -------------------------------------------------------------------------------- 1 | 3 | 4 | 15 | > 16 | -------------------------------------------------------------------------------- /manyears-flowdesigner/config/robot_mic_pos.mat: -------------------------------------------------------------------------------- 1 | 3 | 4 | 14 | > 15 | 16 | -------------------------------------------------------------------------------- /manyears-flowdesigner/license.txt: -------------------------------------------------------------------------------- 1 | COPYING -------------------------------------------------------------------------------- /manyears-flowdesigner/macros/FindAlsa.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find Alsa 2 | # Once done this will define 3 | # 4 | # LIBALSA_FOUND - system has Alsa 5 | # LIBALSA_INCLUDE_DIR - the Alsa include directory 6 | # LIBALSA_LIBRARIES - the libraries needed to use Alsa 7 | # LIBALSA_DEFINITIONS - Compiler switches required for using Alsa 8 | # 9 | # Important : this is a UNIX macro 10 | 11 | MESSAGE (STATUS "CHECKING FOR LIBALSA ...") 12 | IF(NOT UNIX) 13 | MESSAGE(SEND_ERROR "Alsa macro is only usable in Unix") 14 | ENDIF(NOT UNIX) 15 | 16 | IF (LIBALSA_INCLUDE_DIR AND LIBALSA_LIBRARIES) 17 | # in cache already 18 | SET(LIBALSA_FIND_QUIETLY TRUE) 19 | ENDIF (LIBALSA_INCLUDE_DIR AND LIBALSA_LIBRARIES) 20 | 21 | 22 | # use pkg-config to get the directories and then use these values 23 | # in the FIND_PATH() and FIND_LIBRARY() calls 24 | INCLUDE(UsePkgConfig) 25 | PKGCONFIG(alsa _LIBALSAIncDir _LIBALSALinkDir _LIBALSALinkFlags _LIBALSACflags) 26 | SET(LIBALSA_DEFINITIONS ${_LIBALSACflags}) 27 | SET(LIBALSA_INCLUDE_DIR ${_LIBALSAIncDir}) 28 | SET(LIBALSA_LIBRARIES ${_LIBALSALinkFlags}) 29 | 30 | MESSAGE (STATUS "LIBALSA_INCLUDE_DIR : ${LIBALSA_INCLUDE_DIR}") 31 | MESSAGE (STATUS "LIBALSA_LIBRARIES : ${LIBALSA_LIBRARIES}") 32 | 33 | IF (LIBALSA_INCLUDE_DIR AND LIBALSA_LIBRARIES) 34 | SET(LIBALSA_FOUND TRUE) 35 | ELSE (LIBALSA_INCLUDE_DIR AND LIBALSA_LIBRARIES) 36 | SET(LIBALSA_FOUND FALSE) 37 | ENDIF (LIBALSA_INCLUDE_DIR AND LIBALSA_LIBRARIES) 38 | 39 | IF (LIBALSA_FOUND) 40 | IF (NOT LIBALSA_FIND_QUIETLY) 41 | MESSAGE(STATUS "Found LIBALSA: ${LIBALSA_LIBRARIES}") 42 | ENDIF (NOT LIBALSA_FIND_QUIETLY) 43 | ELSE (LIBALSA_FOUND) 44 | IF (LIBALSA_FIND_REQUIRED) 45 | MESSAGE(SEND_ERROR "Could NOT find LIBALSA") 46 | ENDIF (LIBALSA_FIND_REQUIRED) 47 | ENDIF (LIBALSA_FOUND) 48 | 49 | MARK_AS_ADVANCED(LIBALSA_INCLUDE_DIR LIBALSA_LIBRARIES) 50 | 51 | -------------------------------------------------------------------------------- /manyears-flowdesigner/macros/FindFFTW3.cmake: -------------------------------------------------------------------------------- 1 | MESSAGE (STATUS "CHECKING FOR FFTW3...") 2 | 3 | IF (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY) 4 | SET(FFTW3_FIND_QUIETLY TRUE) 5 | ENDIF (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY) 6 | 7 | IF (NOT WIN32) 8 | INCLUDE(UsePkgConfig) 9 | PKGCONFIG(fftw3 _FFTW3IncDir _FFTW3LinkDir _FFTW3LinkFlags _FFTW3Cflags) 10 | SET(FFTW3_DEFINITIONS ${_FFTW3Cflags}) 11 | ENDIF (NOT WIN32) 12 | 13 | FIND_PATH(FFTW3_INCLUDE_DIR fftw3.h 14 | PATHS "C:/FlowDesigner/fftw-3.2.1-dll" 15 | ${_FFTW3IncDir} 16 | /opt/local/include 17 | ) 18 | 19 | MESSAGE (STATUS "FFTW3_INCLUDE_DIR : ${FFTW3_INCLUDE_DIR}") 20 | 21 | FIND_LIBRARY(FFTW3_LIBRARY NAMES fftw3f-3 fftw3-3 NO_DEFAULT_PATH 22 | PATHS 23 | "C:/FlowDesigner/fftw-3.2.1-dll" 24 | ${_FFTW3LinkDir} 25 | /opt/local/lib 26 | ) 27 | 28 | MESSAGE (STATUS "FFTW3_LIBRARY : ${FFTW3_LIBRARY}") 29 | 30 | IF (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY) 31 | SET(FFTW3_FOUND TRUE) 32 | ELSE (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY) 33 | SET(FFTW3_FOUND FALSE) 34 | ENDIF (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY) 35 | 36 | IF (FFTW3_FOUND) 37 | IF (NOT FFTW3_FIND_QUIETLY) 38 | MESSAGE(STATUS "Found FFTW3: ${FFTW3_LIBRARY}") 39 | ENDIF (NOT FFTW3_FIND_QUIETLY) 40 | ELSE (FFTW3_FOUND) 41 | IF (FFTW3_FIND_REQUIRED) 42 | MESSAGE(SEND_ERROR "Could NOT find FFTW3") 43 | ENDIF (FFTW3_FIND_REQUIRED) 44 | ENDIF (FFTW3_FOUND) 45 | 46 | MARK_AS_ADVANCED(FFTW3_INCLUDE_DIR FFTW3_LIBRARY) 47 | 48 | -------------------------------------------------------------------------------- /manyears-flowdesigner/macros/FindLibXml2.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find LibXml2 2 | # Once done this will define 3 | # 4 | # LIBXML2_FOUND - system has LibXml2 5 | # LIBXML2_INCLUDE_DIR - the LibXml2 include directory 6 | # LIBXML2_LIBRARIES - the libraries needed to use LibXml2 7 | # LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 8 | # 9 | # Copyright (c) 2006, Alexander Neundorf 10 | # This code is available under the BSD license, see licenses/BSD for details. 11 | 12 | # Copyright (c) 2006, Alexander Neundorf, 13 | # 14 | # Redistribution and use is allowed according to the terms of the BSD license. 15 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. 16 | 17 | 18 | IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) 19 | # in cache already 20 | SET(LibXml2_FIND_QUIETLY TRUE) 21 | ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) 22 | 23 | IF (NOT WIN32) 24 | # use pkg-config to get the directories and then use these values 25 | # in the FIND_PATH() and FIND_LIBRARY() calls 26 | INCLUDE(UsePkgConfig) 27 | PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags) 28 | SET(LIBXML2_DEFINITIONS ${_LibXml2Cflags}) 29 | ENDIF (NOT WIN32) 30 | 31 | FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h 32 | PATHS "C:/FlowDesigner/include" 33 | "C:/MinGW/include" 34 | ${_LibXml2IncDir} 35 | PATH_SUFFIXES libxml2 36 | ) 37 | 38 | FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 39 | PATHS 40 | "C:/FlowDesigner/lib" 41 | ${_LibXml2LinkDir} 42 | ) 43 | 44 | IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) 45 | SET(LIBXML2_FOUND TRUE) 46 | ELSE (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) 47 | SET(LIBXML2_FOUND FALSE) 48 | ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) 49 | 50 | IF (LIBXML2_FOUND) 51 | IF (NOT LibXml2_FIND_QUIETLY) 52 | MESSAGE(STATUS "Found LibXml2: ${LIBXML2_LIBRARIES}") 53 | ENDIF (NOT LibXml2_FIND_QUIETLY) 54 | ELSE (LIBXML2_FOUND) 55 | IF (LibXml2_FIND_REQUIRED) 56 | MESSAGE(SEND_ERROR "Could NOT find LibXml2") 57 | ENDIF (LibXml2_FIND_REQUIRED) 58 | ENDIF (LIBXML2_FOUND) 59 | 60 | MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES) 61 | 62 | -------------------------------------------------------------------------------- /manyears-flowdesigner/n-files/start_manyears.bat: -------------------------------------------------------------------------------- 1 | mkdir log 2 | start audioviewer 3 | start flowdesigner LocalizeSeparAndSaveWavWin32.n 4 | -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/10001-90210-01803.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/10001-90210-01803.wav -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Java) 2 | IF(JAVA_COMPILE AND JAVA_RUNTIME) 3 | 4 | SET (SPHINX4TCPSERVER_FILES 5 | Sphinx4TcpServer.class 6 | js.jar 7 | jsapi.jar 8 | sphinx4.jar 9 | tags.jar 10 | TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar 11 | config.xml 12 | digits.gram 13 | ) 14 | 15 | # make sure the class is built before calling make install 16 | INSTALL( CODE "EXECUTE_PROCESS( COMMAND ${JAVA_COMPILE} sphinx4/Sphinx4TcpServer.java -classpath .:sphinx4/js.jar:sphinx4/jsapi.jar:sphinx4/sphinx4.jar:sphinx4/tags.jar:sphinx4/TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar )" ) 17 | 18 | install( FILES ${SPHINX4TCPSERVER_FILES} DESTINATION ${FLOWDESIGNER_TOOLBOX_DIR}/ManyEars/sphinx4 ) 19 | 20 | ENDIF(JAVA_COMPILE AND JAVA_RUNTIME) 21 | -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/README: -------------------------------------------------------------------------------- 1 | *********** 2 | * INFO 3 | *********** 4 | Sphinx4TcpServer is a simple Sphinx4 server that 5 | receives an audio TCP stream and detects 6 | digits (0,1,2,3,4,5,6,7,8,9). You can use 4 instances 7 | of this server to receive the separated audio streams 8 | from ManyEars. Use "LocalizeSeparAndSaveTCP.n" in the 9 | FlowDesigner examples of ManyEars. 10 | 11 | You can test the server with a WAV with the "SendWavOverTcp.n" 12 | example in the FlowDesigner directory and use the wav 13 | "10001-90210-01803.wav" provided. 14 | 15 | For an advanced speech detection (detecting more words, 16 | sentence...), refer to to Sphinx4 documentation. 17 | 18 | *********** 19 | * REQUIREMENTS 20 | *********** 21 | You must have Sphinx4 libraries (JAR) installed 22 | on your computer. 23 | In your CLASSPATH, add the path of : 24 | -sphinx4.jar 25 | -TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar 26 | 27 | *********** 28 | * COMPILATION 29 | *********** 30 | javac SphinxServer.java 31 | 32 | *********** 33 | * RUN 34 | *********** 35 | java SphinxServer 36 | 37 | *********** 38 | * USAGE 39 | *********** 40 | -By default, it listens on the port 7000, to change the port : 41 | java SphinxServer -p 7002 42 | 43 | -Testing with a wav : 44 | java SphinxServer -wav [FileName.wav] 45 | 46 | 47 | -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/digits.gram: -------------------------------------------------------------------------------- 1 | #JSGF V1.0; 2 | 3 | /** 4 | * JSGF Digits Grammar for ManyEars digits example 5 | */ 6 | 7 | grammar digits; 8 | 9 | public = (oh | zero | one | two | three | four | five | six | seven | eight | nine) * ; 10 | -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/js.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/js.jar -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/jsapi.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/jsapi.jar -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/sphinx4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/sphinx4.jar -------------------------------------------------------------------------------- /manyears-flowdesigner/sphinx4/tags.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/sphinx4/tags.jar -------------------------------------------------------------------------------- /manyears-flowdesigner/src/EqualGains.cc: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2002-2004 Jean-Marc Valin 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #include "BufferedNode.h" 19 | #include "Buffer.h" 20 | #include "Vector.h" 21 | 22 | using namespace FD; 23 | namespace FD { 24 | 25 | class EqualGains; 26 | 27 | DECLARE_NODE(EqualGains) 28 | /*Node 29 | * 30 | * @name EqualGains 31 | * @category ManyEars 32 | * @description Applies a gain to a vector 33 | * 34 | * @input_name INPUT 35 | * @input_type Vector 36 | * @input_description Input vector 37 | * 38 | * @output_name OUTPUT 39 | * @output_type Vector 40 | * @output_description Output vector (after gain) 41 | * 42 | * @parameter_name NB_CHANNELS 43 | * @parameter_type int 44 | * @parameter_description Number of channels 45 | * 46 | * @parameter_name GAINS 47 | * @parameter_type object 48 | * @parameter_description Value of the gains 49 | * 50 | END*/ 51 | 52 | class EqualGains : public BufferedNode { 53 | 54 | int inputID; 55 | int outputID; 56 | Vector gains; 57 | int nb_channels; 58 | 59 | public: 60 | EqualGains(std::string nodeName, ParameterSet params) 61 | : BufferedNode(nodeName, params) 62 | { 63 | inputID = addInput("INPUT"); 64 | outputID = addOutput("OUTPUT"); 65 | gains = object_cast > (parameters.get("GAINS")); 66 | nb_channels = dereference_cast (parameters.get("NB_CHANNELS")); 67 | } 68 | 69 | void calculate(int output_id, int count, Buffer &out) 70 | { 71 | ObjectRef inputValue = getInput(inputID, count); 72 | 73 | const Vector &in = object_cast > (inputValue); 74 | int inputLength = in.size(); 75 | 76 | Vector &output = *Vector::alloc(inputLength); 77 | out[count] = &output; 78 | 79 | for (int i=0;i 20 | #include 21 | 22 | template 23 | class Map : public FD::Object , public std::map 24 | { 25 | public: 26 | Map(){} 27 | Map(const Map &m) : std::map (m) {} 28 | virtual void printOn(std::ostream &out=std::cout) const {} 29 | }; 30 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/RtError.h: -------------------------------------------------------------------------------- 1 | /************************************************************************/ 2 | /*! \class RtError 3 | \brief Exception handling class for RtAudio & RtMidi. 4 | 5 | The RtError class is quite simple but it does allow errors to be 6 | "caught" by RtError::Type. See the RtAudio and RtMidi 7 | documentation to know which methods can throw an RtError. 8 | 9 | */ 10 | /************************************************************************/ 11 | 12 | #ifndef RTERROR_H 13 | #define RTERROR_H 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | class RtError : public std::exception 20 | { 21 | public: 22 | //! Defined RtError types. 23 | enum Type { 24 | WARNING, /*!< A non-critical error. */ 25 | DEBUG_WARNING, /*!< A non-critical error which might be useful for debugging. */ 26 | UNSPECIFIED, /*!< The default, unspecified error type. */ 27 | NO_DEVICES_FOUND, /*!< No devices found on system. */ 28 | INVALID_DEVICE, /*!< An invalid device ID was specified. */ 29 | MEMORY_ERROR, /*!< An error occured during memory allocation. */ 30 | INVALID_PARAMETER, /*!< An invalid parameter was specified to a function. */ 31 | INVALID_USE, /*!< The function was called incorrectly. */ 32 | DRIVER_ERROR, /*!< A system driver error occured. */ 33 | SYSTEM_ERROR, /*!< A system error occured. */ 34 | THREAD_ERROR /*!< A thread error occured. */ 35 | }; 36 | 37 | //! The constructor. 38 | RtError( const std::string& message, Type type = RtError::UNSPECIFIED ) throw() : message_(message), type_(type) {} 39 | 40 | //! The destructor. 41 | virtual ~RtError( void ) throw() {} 42 | 43 | //! Prints thrown error message to stderr. 44 | virtual void printMessage( void ) throw() { std::cerr << '\n' << message_ << "\n\n"; } 45 | 46 | //! Returns the thrown error message type. 47 | virtual const Type& getType(void) throw() { return type_; } 48 | 49 | //! Returns the thrown error message string. 50 | virtual const std::string& getMessage(void) throw() { return message_; } 51 | 52 | //! Returns the thrown error message as a c-style string. 53 | virtual const char* what( void ) const throw() { return message_.c_str(); } 54 | 55 | protected: 56 | std::string message_; 57 | Type type_; 58 | }; 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/UDPOSCOut.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/introlab/manyears/d62d80077b78d4b61776c467742ad4cec23c4aed/manyears-flowdesigner/src/UDPOSCOut.cc -------------------------------------------------------------------------------- /manyears-flowdesigner/src/alsadevice.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | Copyright (C) 2004 by Jean-Marc Valin 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions 6 | are met: 7 | 8 | - Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | - Redistributions in binary form must reproduce the above copyright 12 | notice, this list of conditions and the following disclaimer in the 13 | documentation and/or other materials provided with the distribution. 14 | 15 | - Neither the name of the Xiph.org Foundation nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | ****************************************************************************/ 32 | 33 | #ifndef ALSADEVICE_H 34 | #define ALSADEVICE_H 35 | 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | /** 42 | Represents an ALSA sound device 43 | 44 | @author Jean-Marc Valin 45 | */ 46 | class AlsaDevice{ 47 | snd_pcm_t *capture_handle; 48 | snd_pcm_t *playback_handle; 49 | int lead_in; 50 | int channels; 51 | std::vector ufds; 52 | public: 53 | AlsaDevice(std::string device, int nb_chan, unsigned rate, snd_pcm_uframes_t period_size, int nb_periods, bool poll=false); 54 | 55 | ~AlsaDevice(); 56 | 57 | bool read(short *pcm, int len); 58 | bool write(short *pcm, int len); 59 | std::vector &getPollDevices() {return ufds;} 60 | bool captureReady(struct pollfd *pfds, unsigned int nfds); 61 | bool playbackReady(struct pollfd *pfds, unsigned int nfds); 62 | void start(); 63 | }; 64 | 65 | #endif 66 | 67 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/asiodrivers.h: -------------------------------------------------------------------------------- 1 | #ifndef __AsioDrivers__ 2 | #define __AsioDrivers__ 3 | 4 | #include "ginclude.h" 5 | 6 | #if MAC 7 | #include "CodeFragments.hpp" 8 | 9 | class AsioDrivers : public CodeFragments 10 | 11 | #elif WINDOWS 12 | #include 13 | #include "asiolist.h" 14 | 15 | class AsioDrivers : public AsioDriverList 16 | 17 | #elif SGI || BEOS 18 | #include "asiolist.h" 19 | 20 | class AsioDrivers : public AsioDriverList 21 | 22 | #else 23 | #error implement me 24 | #endif 25 | 26 | { 27 | public: 28 | AsioDrivers(); 29 | ~AsioDrivers(); 30 | 31 | bool getCurrentDriverName(char *name); 32 | long getDriverNames(char **names, long maxDrivers); 33 | bool loadDriver(char *name); 34 | void removeCurrentDriver(); 35 | long getCurrentDriverIndex() {return curIndex;} 36 | protected: 37 | unsigned long connID; 38 | long curIndex; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/asiodrvr.h: -------------------------------------------------------------------------------- 1 | /* 2 | Steinberg Audio Stream I/O API 3 | (c) 1996, Steinberg Soft- und Hardware GmbH 4 | charlie (May 1996) 5 | 6 | asiodrvr.h 7 | c++ superclass to implement asio functionality. from this, 8 | you can derive whatever required 9 | */ 10 | 11 | #ifndef _asiodrvr_ 12 | #define _asiodrvr_ 13 | 14 | // cpu and os system we are running on 15 | #include "asiosys.h" 16 | // basic "C" interface 17 | #include "asio.h" 18 | 19 | class AsioDriver; 20 | extern AsioDriver *getDriver(); // for generic constructor 21 | 22 | #if WINDOWS 23 | #include 24 | #include "combase.h" 25 | #include "iasiodrv.h" 26 | class AsioDriver : public IASIO ,public CUnknown 27 | { 28 | public: 29 | AsioDriver(LPUNKNOWN pUnk, HRESULT *phr); 30 | 31 | DECLARE_IUNKNOWN 32 | // Factory method 33 | static CUnknown *CreateInstance(LPUNKNOWN pUnk, HRESULT *phr); 34 | // IUnknown 35 | virtual HRESULT STDMETHODCALLTYPE NonDelegatingQueryInterface(REFIID riid,void **ppvObject); 36 | 37 | #else 38 | 39 | class AsioDriver 40 | { 41 | public: 42 | AsioDriver(); 43 | #endif 44 | virtual ~AsioDriver(); 45 | 46 | virtual ASIOBool init(void* sysRef); 47 | virtual void getDriverName(char *name); // max 32 bytes incl. terminating zero 48 | virtual long getDriverVersion(); 49 | virtual void getErrorMessage(char *string); // max 124 bytes incl. 50 | 51 | virtual ASIOError start(); 52 | virtual ASIOError stop(); 53 | 54 | virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels); 55 | virtual ASIOError getLatencies(long *inputLatency, long *outputLatency); 56 | virtual ASIOError getBufferSize(long *minSize, long *maxSize, 57 | long *preferredSize, long *granularity); 58 | 59 | virtual ASIOError canSampleRate(ASIOSampleRate sampleRate); 60 | virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate); 61 | virtual ASIOError setSampleRate(ASIOSampleRate sampleRate); 62 | virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources); 63 | virtual ASIOError setClockSource(long reference); 64 | 65 | virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp); 66 | virtual ASIOError getChannelInfo(ASIOChannelInfo *info); 67 | 68 | virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, 69 | long bufferSize, ASIOCallbacks *callbacks); 70 | virtual ASIOError disposeBuffers(); 71 | 72 | virtual ASIOError controlPanel(); 73 | virtual ASIOError future(long selector, void *opt); 74 | virtual ASIOError outputReady(); 75 | }; 76 | #endif 77 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/asiolist.h: -------------------------------------------------------------------------------- 1 | #ifndef __asiolist__ 2 | #define __asiolist__ 3 | 4 | #define DRVERR -5000 5 | #define DRVERR_INVALID_PARAM DRVERR-1 6 | #define DRVERR_DEVICE_ALREADY_OPEN DRVERR-2 7 | #define DRVERR_DEVICE_NOT_FOUND DRVERR-3 8 | 9 | #define MAXPATHLEN 512 10 | #define MAXDRVNAMELEN 128 11 | 12 | struct asiodrvstruct 13 | { 14 | int drvID; 15 | CLSID clsid; 16 | char dllpath[MAXPATHLEN]; 17 | char drvname[MAXDRVNAMELEN]; 18 | LPVOID asiodrv; 19 | struct asiodrvstruct *next; 20 | }; 21 | 22 | typedef struct asiodrvstruct ASIODRVSTRUCT; 23 | typedef ASIODRVSTRUCT *LPASIODRVSTRUCT; 24 | 25 | class AsioDriverList { 26 | public: 27 | AsioDriverList(); 28 | ~AsioDriverList(); 29 | 30 | LONG asioOpenDriver (int,VOID **); 31 | LONG asioCloseDriver (int); 32 | 33 | // nice to have 34 | LONG asioGetNumDev (VOID); 35 | LONG asioGetDriverName (int,char *,int); 36 | LONG asioGetDriverPath (int,char *,int); 37 | LONG asioGetDriverCLSID (int,CLSID *); 38 | 39 | // or use directly access 40 | LPASIODRVSTRUCT lpdrvlist; 41 | int numdrv; 42 | }; 43 | 44 | typedef class AsioDriverList *LPASIODRIVERLIST; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/asiosys.h: -------------------------------------------------------------------------------- 1 | #ifndef __asiosys__ 2 | #define __asiosys__ 3 | 4 | #ifdef WIN32 5 | #undef MAC 6 | #define PPC 0 7 | #define WINDOWS 1 8 | #define SGI 0 9 | #define SUN 0 10 | #define LINUX 0 11 | #define BEOS 0 12 | 13 | #define NATIVE_INT64 0 14 | #define IEEE754_64FLOAT 1 15 | 16 | #elif BEOS 17 | #define MAC 0 18 | #define PPC 0 19 | #define WINDOWS 0 20 | #define PC 0 21 | #define SGI 0 22 | #define SUN 0 23 | #define LINUX 0 24 | 25 | #define NATIVE_INT64 0 26 | #define IEEE754_64FLOAT 1 27 | 28 | #ifndef DEBUG 29 | #define DEBUG 0 30 | #if DEBUG 31 | void DEBUGGERMESSAGE(char *string); 32 | #else 33 | #define DEBUGGERMESSAGE(a) 34 | #endif 35 | #endif 36 | 37 | #elif SGI 38 | #define MAC 0 39 | #define PPC 0 40 | #define WINDOWS 0 41 | #define PC 0 42 | #define SUN 0 43 | #define LINUX 0 44 | #define BEOS 0 45 | 46 | #define NATIVE_INT64 0 47 | #define IEEE754_64FLOAT 1 48 | 49 | #ifndef DEBUG 50 | #define DEBUG 0 51 | #if DEBUG 52 | void DEBUGGERMESSAGE(char *string); 53 | #else 54 | #define DEBUGGERMESSAGE(a) 55 | #endif 56 | #endif 57 | 58 | #else // MAC 59 | 60 | #define MAC 1 61 | #define PPC 1 62 | #define WINDOWS 0 63 | #define PC 0 64 | #define SGI 0 65 | #define SUN 0 66 | #define LINUX 0 67 | #define BEOS 0 68 | 69 | #define NATIVE_INT64 0 70 | #define IEEE754_64FLOAT 1 71 | 72 | #ifndef DEBUG 73 | #define DEBUG 0 74 | #if DEBUG 75 | void DEBUGGERMESSAGE(char *string); 76 | #else 77 | #define DEBUGGERMESSAGE(a) 78 | #endif 79 | #endif 80 | #endif 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/ginclude.h: -------------------------------------------------------------------------------- 1 | #ifndef __gInclude__ 2 | #define __gInclude__ 3 | 4 | #if SGI 5 | #undef BEOS 6 | #undef MAC 7 | #undef WINDOWS 8 | // 9 | #define ASIO_BIG_ENDIAN 1 10 | #define ASIO_CPU_MIPS 1 11 | #elif defined WIN32 12 | #undef BEOS 13 | #undef MAC 14 | #undef SGI 15 | #define WINDOWS 1 16 | #define ASIO_LITTLE_ENDIAN 1 17 | #define ASIO_CPU_X86 1 18 | #elif BEOS 19 | #undef MAC 20 | #undef SGI 21 | #undef WINDOWS 22 | #define ASIO_LITTLE_ENDIAN 1 23 | #define ASIO_CPU_X86 1 24 | // 25 | #else 26 | #define MAC 1 27 | #undef BEOS 28 | #undef WINDOWS 29 | #undef SGI 30 | #define ASIO_BIG_ENDIAN 1 31 | #define ASIO_CPU_PPC 1 32 | #endif 33 | 34 | // always 35 | #define NATIVE_INT64 0 36 | #define IEEE754_64FLOAT 1 37 | 38 | #endif // __gInclude__ 39 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/asio/iasiodrv.h: -------------------------------------------------------------------------------- 1 | #include "asiosys.h" 2 | #include "asio.h" 3 | 4 | /* Forward Declarations */ 5 | 6 | #ifndef __ASIODRIVER_FWD_DEFINED__ 7 | #define __ASIODRIVER_FWD_DEFINED__ 8 | typedef interface IASIO IASIO; 9 | #endif /* __ASIODRIVER_FWD_DEFINED__ */ 10 | 11 | interface IASIO : public IUnknown 12 | { 13 | 14 | virtual ASIOBool init(void *sysHandle) = 0; 15 | virtual void getDriverName(char *name) = 0; 16 | virtual long getDriverVersion() = 0; 17 | virtual void getErrorMessage(char *string) = 0; 18 | virtual ASIOError start() = 0; 19 | virtual ASIOError stop() = 0; 20 | virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels) = 0; 21 | virtual ASIOError getLatencies(long *inputLatency, long *outputLatency) = 0; 22 | virtual ASIOError getBufferSize(long *minSize, long *maxSize, 23 | long *preferredSize, long *granularity) = 0; 24 | virtual ASIOError canSampleRate(ASIOSampleRate sampleRate) = 0; 25 | virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate) = 0; 26 | virtual ASIOError setSampleRate(ASIOSampleRate sampleRate) = 0; 27 | virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources) = 0; 28 | virtual ASIOError setClockSource(long reference) = 0; 29 | virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp) = 0; 30 | virtual ASIOError getChannelInfo(ASIOChannelInfo *info) = 0; 31 | virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, 32 | long bufferSize, ASIOCallbacks *callbacks) = 0; 33 | virtual ASIOError disposeBuffers() = 0; 34 | virtual ASIOError controlPanel() = 0; 35 | virtual ASIOError future(long selector,void *opt) = 0; 36 | virtual ASIOError outputReady() = 0; 37 | }; 38 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/audio_client.cc: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2002-2004 Jean-Marc Valin 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | int fd; 29 | 30 | void sig_int(int i) 31 | { 32 | close(fd); 33 | fprintf (stderr, "Shutting down\n"); 34 | exit(0); 35 | } 36 | 37 | int main(int argc, char **argv) 38 | { 39 | if (argc!= 2) 40 | { 41 | fprintf (stderr, "usage: audio_client host\n"); 42 | exit (1); 43 | } 44 | struct sockaddr_in addr; 45 | fd = socket(PF_INET, SOCK_STREAM, 0); 46 | signal (SIGINT, sig_int); 47 | signal (SIGHUP, sig_int); 48 | signal (SIGPIPE, sig_int); 49 | int port = 2313; 50 | struct hostent *entp; 51 | 52 | memset(&addr, 0, sizeof(struct sockaddr)); 53 | 54 | addr.sin_family = AF_INET; 55 | 56 | //addr.sin_addr.s_addr = htonl(INADDR_ANY); 57 | 58 | if((entp = gethostbyname(argv[1])) == NULL) { 59 | char message[256]; 60 | fprintf(stderr, "Can't get host by name\n"); 61 | return 0; 62 | } 63 | 64 | memcpy(&addr.sin_addr, entp->h_addr_list[0], entp->h_length); 65 | 66 | addr.sin_port = htons(port); 67 | 68 | 69 | bind (fd, (struct sockaddr *)&addr, sizeof(addr)); 70 | 71 | if (connect (fd, (struct sockaddr *)&addr, sizeof(addr))) 72 | { 73 | perror("connect: "); 74 | return 1; 75 | } 76 | 77 | fprintf (stderr, "connected\n"); 78 | while (1) 79 | { 80 | char block[16384]; 81 | int nbBytes = read(fd, block, 16384); 82 | int nbBytes2 = write(1, block, nbBytes); 83 | if (nbBytes != nbBytes2) 84 | fprintf (stderr, "%d != %d\n", nbBytes, nbBytes2); 85 | } 86 | 87 | close(fd); 88 | } 89 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/audio_server2.cc: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | Copyright (C) 2006 by Dominic Letourneau 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions 6 | are met: 7 | 8 | - Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | - Redistributions in binary form must reproduce the above copyright 12 | notice, this list of conditions and the following disclaimer in the 13 | documentation and/or other materials provided with the distribution. 14 | 15 | - Neither the name of the Xiph.org Foundation nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | ****************************************************************************/ 32 | 33 | #ifdef HAVE_CONFIG_H 34 | #include 35 | #endif 36 | 37 | 38 | #include "AudioServer.h" 39 | #include 40 | 41 | 42 | using namespace std; 43 | 44 | 45 | int main(int argc, char *argv[]) 46 | { 47 | 48 | cerr<<"Starting..."<run(); 74 | } 75 | else { 76 | cerr<<"Usage : "< 20 | 21 | void conj_window(float *w, int len) 22 | { 23 | for (int i=0;i 23 | #include 24 | //#include "SourceInfo.h" 25 | 26 | #define DELAY 1 27 | 28 | class Particle { 29 | public: 30 | enum State {Stopped=0, ConstVelocity=1, Excitation=2}; 31 | private: 32 | float x[3]; 33 | float v[3]; 34 | //int id; 35 | float weight; 36 | int state; 37 | float old_x[DELAY][3]; 38 | //float old_v[DELAY][3]; 39 | int old_index; 40 | public: 41 | Particle() {} 42 | 43 | Particle(float pos[3]); 44 | 45 | void predict(); 46 | 47 | float prob(float pos[3], float std_1); 48 | 49 | void updateWeight(float pos[3], float std_1); 50 | 51 | void setWeight(float w) {weight = w;} 52 | 53 | void accumWeight(float pos[3], float std_1, float w) {weight += w*prob(pos, std_1);} 54 | 55 | friend class ParticleFilter; 56 | }; 57 | 58 | class ParticleFilter { 59 | public: 60 | std::vector particles; 61 | float weight; 62 | float prob_exist, prob_exist2; 63 | float short_term_weight; 64 | bool srcExists; 65 | //public: 66 | int ID; 67 | int age, age2, aligned; 68 | float currPos[3]; 69 | float delayedPos[3]; 70 | float lastSeenPos[3]; 71 | int lastSeenCount; 72 | float minVarPos[3]; 73 | float minVar; 74 | int minVarCount; 75 | int startCount; 76 | public: 77 | ParticleFilter(float pos[3], float std, int N, float initial_prob, int count); 78 | ~ParticleFilter(); 79 | void resample(); 80 | void predict(); 81 | float prob(float pos[3], float std); 82 | void update(float pos[][3], float probs[], int N, float std[], int count); 83 | void print(); 84 | void updateStats(bool aligned, int count); 85 | void getStats(float mean[3], float std[3]); 86 | bool exists() {return srcExists;} 87 | int getID() {return ID;} 88 | //void update(std::vector src); 89 | friend class ParticleMixture; 90 | }; 91 | 92 | class ParticleMixture { 93 | int nbParticles; 94 | float estimStd; 95 | public: 96 | std::vector filters; 97 | int nextID; 98 | public: 99 | ParticleMixture(int N, float std); 100 | ~ParticleMixture(); 101 | void resample(); 102 | void predict(); 103 | void update(float pos[][3], float probs[], int N, float std[], int count); 104 | }; 105 | 106 | #endif 107 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/play_client.cc: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2002-2004 Jean-Marc Valin 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | int fd; 29 | 30 | void sig_int(int i) 31 | { 32 | close(fd); 33 | fprintf (stderr, "Shutting down\n"); 34 | exit(0); 35 | } 36 | 37 | int main(int argc, char **argv) 38 | { 39 | if (argc!= 2) 40 | { 41 | fprintf (stderr, "usage: audio_client host\n"); 42 | exit (1); 43 | } 44 | struct sockaddr_in addr; 45 | fd = socket(PF_INET, SOCK_STREAM, 0); 46 | signal (SIGINT, sig_int); 47 | signal (SIGHUP, sig_int); 48 | signal (SIGPIPE, sig_int); 49 | int port = 2314; 50 | struct hostent *entp; 51 | 52 | memset(&addr, 0, sizeof(struct sockaddr)); 53 | 54 | addr.sin_family = AF_INET; 55 | 56 | //addr.sin_addr.s_addr = htonl(INADDR_ANY); 57 | 58 | if((entp = gethostbyname(argv[1])) == NULL) { 59 | char message[256]; 60 | fprintf(stderr, "Can't get host by name\n"); 61 | return 0; 62 | } 63 | 64 | memcpy(&addr.sin_addr, entp->h_addr_list[0], entp->h_length); 65 | 66 | addr.sin_port = htons(port); 67 | 68 | 69 | bind (fd, (struct sockaddr *)&addr, sizeof(addr)); 70 | 71 | if (connect (fd, (struct sockaddr *)&addr, sizeof(addr))) 72 | { 73 | perror("connect: "); 74 | return 1; 75 | } 76 | 77 | fprintf (stderr, "connected\n"); 78 | while (1) 79 | { 80 | char block[16384]; 81 | int nbBytes = read(0, block, 16384); 82 | if (nbBytes <= 0) 83 | sig_int(-1); 84 | int nbBytes2 = write(fd, block, nbBytes); 85 | if (nbBytes2 <= 0) 86 | sig_int(-1); 87 | if (nbBytes != nbBytes2) 88 | fprintf (stderr, "%d != %d\n", nbBytes, nbBytes2); 89 | } 90 | 91 | close(fd); 92 | } 93 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/solver.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2002-2004 Jean-Marc Valin 2 | 3 | This program is free software; you can redistribute it and/or 4 | modify it under the terms of the GNU General Public License 5 | as published by the Free Software Foundation; either version 2 6 | of the License, or (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 16 | */ 17 | 18 | void ls_beamformer(int N, std::complex Ah[][8], std::complex *mic, std::complex *x, float *snr=NULL); 19 | -------------------------------------------------------------------------------- /manyears-flowdesigner/src/speex_play.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | /usr/bin/speexdec $1 - | /usr/bin/sox -r 16000 -t raw -s -w -c 1 - -t raw -r 48000 - | /bin/netcat $2 $3 -q 0 3 | 4 | -------------------------------------------------------------------------------- /manyears-flowdesigner/start_manyears.sh: -------------------------------------------------------------------------------- 1 | #CREATE Log Directory 2 | LOG_DIR=`date +samples/%F_%Hh%Mm%S` 3 | mkdir -p -v $LOG_DIR 4 | ln -s -f -T $LOG_DIR log 5 | 6 | killall audio_server2 7 | killall gflow 8 | killall audioview 9 | 10 | #START AUDIO SERVER 11 | audio_server2 $1 & 12 | 13 | sleep 5 14 | 15 | #START AUDIO VIEWER 16 | audioviewer & 17 | 18 | sleep 5 19 | 20 | #START LOCALIZATION & SEPARATION 21 | gflow `flowdesigner-config --datadir`/ManyEars/LocalizeSeparAndSaveWav.n & 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /manyears-flowdesigner/tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | IF (WIN32) 2 | INSTALL(FILES ManyEars_Setup.nsi DESTINATION .) 3 | ENDIF(WIN32) 4 | -------------------------------------------------------------------------------- /manyears-flowdesigner/tools/ManyEars_Setup.nsi: -------------------------------------------------------------------------------- 1 | ; example1.nsi 2 | ; 3 | ; This script is perhaps one of the simplest NSIs you can make. All of the 4 | ; optional settings are left to their default settings. The installer simply 5 | ; prompts the user asking them where to install, and drops a copy of example1.nsi 6 | ; there. 7 | 8 | ;-------------------------------- 9 | 10 | ; The name of the installer 11 | Name "ManyEars FlowDesigner plugin" 12 | 13 | ; The file to write 14 | OutFile "ManyEars-0.2.exe" 15 | 16 | ; The default installation directory 17 | InstallDir "C:\Program Files\FlowDesigner" 18 | 19 | ;-------------------------------- 20 | 21 | ; Pages 22 | 23 | Page directory 24 | Page instfiles 25 | 26 | ;-------------------------------- 27 | 28 | ; The stuff to install 29 | 30 | 31 | Section "binaries" ;No components page, name is not important 32 | 33 | ; Set output path to the installation directory. 34 | SetOutPath $INSTDIR\bin 35 | 36 | ; Put file there 37 | File bin\audioviewer.exe 38 | File bin\libfftw3-3.dll 39 | File bin\libfftw3f-3.dll 40 | SectionEnd ; end the section 41 | 42 | 43 | Section "toolbox-def" ;No components page, name is not important 44 | 45 | ; Set output path to the installation directory. 46 | SetOutPath $INSTDIR\lib\flowdesigner\toolbox\ManyEars\def 47 | 48 | ; Put file there 49 | File /r lib\flowdesigner\toolbox\ManyEars\def\* 50 | 51 | SectionEnd ; end the section 52 | 53 | Section "toolbox-lib" ;No components page, name is not important 54 | 55 | ; Set output path to the installation directory. 56 | SetOutPath $INSTDIR\lib\flowdesigner\toolbox\ManyEars\lib 57 | 58 | ; Put file there 59 | File /r lib\flowdesigner\toolbox\ManyEars\lib\* 60 | 61 | SectionEnd ; end the section 62 | 63 | Section "toolbox-examples" ;No components page, name is not important 64 | 65 | ; Set output path to the installation directory. 66 | SetOutPath $INSTDIR\lib\flowdesigner\toolbox\ManyEars\examples 67 | 68 | ; Put file there 69 | File /r lib\flowdesigner\toolbox\ManyEars\examples\* 70 | 71 | SectionEnd ; end the section 72 | --------------------------------------------------------------------------------