create sound collages from the songs of birds recently reported in your area
an experiment based on node.js, eBird REST API, xeno-canto REST API, and Web Audio API
create sound collages from the songs of birds recently reported in your area
Home Page: https://birdquiz.herokuapp.com/quartet.html
License: MIT License
today I found the server responsive to requests for index.html and passing thru requests for ebird, but stalled out and never responding to requests for xeno-canto
somebody reported yellow warbler in ulistac
xeno canto recordings for yellow warbler include mangrove warbler recorded in costa rica
should we use this?
xeno canto JSON includes "ssp" field
per John B.
recordings from xeno-canto are not normalized for loudness. Picking multiple recordings at random usually results in one loud one and many quiet ones. We need to analyze the sounds and compensate for their volumes to be able to control volume meaningfully.
right now our fake test data is just fixed pitch sawtooth waves
it would be best to also cache some real bird songs for demoes
rather than immediately switching to new playback rate, ramp between them.
allow user to choose times other than the present
allow user to choose places other than their current location
the CC logo appears during sound download and changes layout. should be a placeholder there.
Brian thinks users may want to go back to what the birds would actually sound like. That would mean putting the recordings forwards if they are currently playing backwards.
TypeError: Cannot read property 'headers' of undefined
at Request.progress.throttle as _callback
at self.callback (/home/ubuntu/loco-xeno-canto/node_modules/request/request.js:373:22)
at Request.EventEmitter.emit (events.js:117:20)
at Request.onRequestError (/home/ubuntu/loco-xeno-canto/node_modules/request/request.js:971:8)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at Socket.socketOnEnd as onend
at Socket.g (events.js:175:14)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
upload all JSON for all four players plus sightings info (too big for single push?)
persist this info somehow (preferably not flat file)
generate unique ID for this info
add server routing to serve up that info
consider tracking progress on server (for debugging)
https://www.npmjs.com/package/request-progress
if the user isn't actively engaging with the UI, go ahead and occassionally switch between recordings for them, change pan position, change playback rates, etc.
provide a graphical indicator for each sound that shows progress through the sound in proportion to the current playback rate.
can you find sounds based on these reverse geocoding services?
http://www.geonames.org/export/reverse-geocoding.html
they lead to wikipedia articles, street names, weather, etc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.