From 7b83a1d9867614e2c7e2f6fa0ccbb6e8ffe3757d Mon Sep 17 00:00:00 2001 From: Mattk70 Date: Sat, 27 Jan 2024 20:48:38 +0000 Subject: [PATCH 1/5] Clear the cache on Model change to prevent issues with cached file sample rates --- js/ui.js | 13 +++++++------ js/worker.js | 15 ++++++++++----- main.js | 6 ++++++ preload.js | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/js/ui.js b/js/ui.js index 02f6fb47..2aa5e40c 100644 --- a/js/ui.js +++ b/js/ui.js @@ -1476,7 +1476,7 @@ window.onload = async () => { speciesThreshold: config.speciesThreshold }); loadModel(); - worker.postMessage({ action: 'clear-cache' }) + //worker.postMessage({ action: 'clear-cache' }) // New users - show the tour if (!config.seenTour) { setTimeout(prepTour, 2000) @@ -2191,7 +2191,7 @@ speciesThreshold.addEventListener('change', () =>{ worker.postMessage({ action: 'update-list', list: config.list }) }) -const loadModel = () => { +const loadModel = ({clearCache = true} = {}) => { t0_warmup = Date.now(); worker.postMessage({ action: 'load-model', @@ -2200,7 +2200,8 @@ const loadModel = () => { batchSize: config[config.backend].batchSize, warmup: config.warmup, threads: config[config.backend].threads, - backend: config.backend + backend: config.backend, + clearCache: clearCache }); } @@ -2253,7 +2254,7 @@ const handleBackendChange = (e) => { updatePrefs(); // restart wavesurfer regions to set new maxLength initRegion(); - loadModel(); + loadModel({clearCache: false}); } const backend = document.getElementsByName('backend'); @@ -3472,7 +3473,7 @@ batchSizeSlider.addEventListener('input', (e) => { }) batchSizeSlider.addEventListener('change', (e) => { config[config.backend].batchSize = BATCH_SIZE_LIST[e.target.value]; - loadModel(); + loadModel({clearCache: false}); updatePrefs(); // Reset region maxLength initRegion(); @@ -3960,7 +3961,7 @@ ThreadSlider.addEventListener('input', () => { }); ThreadSlider.addEventListener('change', () => { config[config.backend].threads = ThreadSlider.valueAsNumber; - loadModel(); + loadModel({clearCache: false}); updatePrefs(); }); diff --git a/js/worker.js b/js/worker.js index 7ac82179..89d5b4e4 100644 --- a/js/worker.js +++ b/js/worker.js @@ -204,7 +204,6 @@ const clearCache = async (fileCache, sizeLimitInGB) => { const requiredSpace = sizeLimitInGB * 1024 ** 3; // If Full, clear at least 25% of cache, so we're not doing this too frequently if (size > requiredSpace) { - // while (size > requiredSpace && canBeRemovedFromCache.length) { while (canBeRemovedFromCache.length > 1) { const file = canBeRemovedFromCache.shift(); const proxy = metadata[file].proxy; @@ -251,9 +250,10 @@ break; case "chart": {await onChartRequest(args); break; } - case "clear-cache": {CACHE_LOCATION = p.join(TEMP, "chirpity"); -fs.existsSync(CACHE_LOCATION) || fs.mkdirSync(CACHE_LOCATION); -await clearCache(CACHE_LOCATION, 0); + case "clear-cache": { + CACHE_LOCATION = p.join(TEMP, "chirpity"); + fs.existsSync(CACHE_LOCATION) || fs.mkdirSync(CACHE_LOCATION); + await clearCache(CACHE_LOCATION, 0); break; } case "convert-dataset": {convertSpecsFromExistingSpecs(); @@ -314,7 +314,12 @@ break; event: "spawning" }); sampleRate = args.model === "v2.4" ? 48_000 : 24_000; - + // Since models have different sample rates, we need to clear the cache of + // files that have been resampled for a different model, and reset metadata + CACHE_LOCATION = p.join(TEMP, "chirpity"); + DEBUG && console.log('clear cache', args.clearCache, 'location', CACHE_LOCATION) + args.clearCache && ipcRenderer.invoke('clear-cache', CACHE_LOCATION) + metadata = {} BATCH_SIZE = parseInt(args.batchSize); setAudioContext(sampleRate); memoryDB = undefined; diff --git a/main.js b/main.js index d65192cd..428ca3a7 100644 --- a/main.js +++ b/main.js @@ -489,3 +489,9 @@ ipcMain.handle('saveFile', (event, arg) => { }); mainWindow.webContents.send('saveFile', { message: 'file saved!' }); }); + +ipcMain.handle('clear-cache', (event, filePath) => { + // console.log("cache location:", event, filePath); + // return + clearCache(filePath) +}) \ No newline at end of file diff --git a/preload.js b/preload.js index 6bcc1e01..20b943da 100644 --- a/preload.js +++ b/preload.js @@ -51,7 +51,7 @@ contextBridge.exposeInMainWorld('electron', { getPath: () => ipcRenderer.invoke('getPath'), getTemp: () => ipcRenderer.invoke('getTemp'), getVersion: () => ipcRenderer.invoke('getVersion'), - getAudio: () => ipcRenderer.invoke('getAudio'), + getAudio: () => ipcRenderer.invoke('getAudio') }); contextBridge.exposeInMainWorld('module', { From 8c6d866d47190ee8d05d814a8dfa6ddf869b0f90 Mon Sep 17 00:00:00 2001 From: Mattk70 <61826357+Mattk70@users.noreply.github.com> Date: Sat, 27 Jan 2024 20:56:29 +0000 Subject: [PATCH 2/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea54a1c6..55ea8c34 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Chirpity-Electron +# Chirpity Electron app to identify the calls of nocturnal migrants from audio files. From dfe8fe38ebf4d2f52272af32c8a12fcae6506dfd Mon Sep 17 00:00:00 2001 From: Mattk70 <61826357+Mattk70@users.noreply.github.com> Date: Sat, 27 Jan 2024 21:04:56 +0000 Subject: [PATCH 3/5] Update README.md --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 55ea8c34..66d210c2 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,11 @@ First, clone the project and install all dependencies: ``` git clone https://github.com/Mattk70/Chirpity-Electron cd Chirpity-Electron +``` + +Chirpity depends on Node.js, follow the link for the download and installation instructions. +Once installed, run: +``` npm install ``` @@ -24,21 +29,21 @@ npm start ## Development setup -Setting up the project requires Node.js, which we need to install first. -After that, we can initialize the source directory with: + +Initialize the source directory with: ``` npm init ``` -Now, we need to install project dependencoies with: +Now, install project dependencoies with: ``` npm install --save-dev ``` -After that, we can build a windows msi installer with: +After that, build a windows msi installer with: ``` npm run export From 9a93764d39800144dab9afe620c1b580d808cd3d Mon Sep 17 00:00:00 2001 From: Mattk70 Date: Sun, 28 Jan 2024 15:49:08 +0000 Subject: [PATCH 4/5] Updated Readme Bumped version --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3d4d0d6c..f1752d89 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chirpity", - "version": "0.11.0", + "version": "0.11.1", "description": "Chirpity Nocmig", "main": "main.js", "scripts": { @@ -98,7 +98,7 @@ ], "mac": { "target": { - "target": "dmg", + "target": "pkg", "arch": "arm64" }, "files": [ @@ -186,6 +186,7 @@ "@easepick/bundle": "^1.2.1", "@fast-csv/format": "^4.3.5", "@popperjs/core": "^2.9.2", + "@tensorflow/tfjs-core": "^4.14.0", "@tensorflow/tfjs-node": "^4.14.0", "bootstrap": "5.2.2", "browser-id3-writer": "^4.4.0", From cd546f638806dcba0bc3e2aca77df51b897d81e6 Mon Sep 17 00:00:00 2001 From: Mattk70 Date: Sun, 28 Jan 2024 18:52:09 +0000 Subject: [PATCH 5/5] New logo used on BirdNET-Analyzer showroom --- img/icon/chirpity_logo2.png | Bin 0 -> 43774 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/icon/chirpity_logo2.png diff --git a/img/icon/chirpity_logo2.png b/img/icon/chirpity_logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..35213f58e796e3edd2228ae22a26caf97674a3d3 GIT binary patch literal 43774 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 Ns-*S$yMk5Z{{u<_T#Nt! literal 0 HcmV?d00001