# siriwave **Repository Path**: tuxg/siriwave ## Basic Information - **Project Name**: siriwave - **Description**: siri语音波纹 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-10 - **Last Updated**: 2021-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SiriWave The "Apple Siri" wave replicated in pure Javascript using the Canvas API. [Read blog post here](https://developers.caffeina.com/how-i-built-siriwavejs-library-maths-and-code-behind-6971497ae5c1) [Demo](http://kopiro.github.io/siriwave) [![npm version](https://badge.fury.io/js/siriwave.svg)](https://badge.fury.io/js/siriwave) ### Classic style ### iOS 9+ style ## Usage ### Browser (via CDN) usage ```html ``` ### ES module Install it through `npm install siriwave` or `yarn add siriwave` first: ```js import SiriWave from "siriwave"; ``` ## Init Create a div container and instantiate a SiriWave object ```html
``` ## Constructor options | Key | Type | Description | Default | Required | | --------------- | ------------------ | ---------------------------------------------------------------------- | ---------- | -------- | | container | DOMElement | The DOM container where the DOM canvas element will be added. | null | yes | | style | "ios", "ios9" | The style of the wave. | "ios" | no | | ratio | Number | Ratio of the display to use. Calculated by default. | calculated | no | | speed | Number | The speed of the animation. | 0.2 | no | | amplitude | Number | The amplitude of the complete wave-form. | 1 | no | | frequency | Number | The frequency of the complete wave-form. Only available in style "ios" | 6 | no | | color | String | Color of the wave. Only available in style "ios" | "#fff" | no | | cover | Bool | The `canvas` covers the entire width or height of the container | false | no | | autostart | Bool | Decide wether start the animation on boot. | false | no | | pixelDepth | Number | Number of step (in pixels) used when drawed on canvas. | 0.02 | no | | lerpSpeed | Number | Lerp speed to interpolate properties. | 0.01 | no | | curveDefinition | ICurveDefinition[] | Override definition of the curves | null | no | ## API #### `start()` Start the animation #### `stop()` Stop the animation. #### `setSpeed(newValue)` Set the new value of speed (animated) #### `setAmplitude(value)` Set the new value of amplitude (animated) #### `dispose()` Stop the animation and destroy the canvas, by removing it from the DOM. Subsequent `start()` calls on this SiriWave instance will fail with an exception. ## Grapher plots - [GCX default](etc/gcx/default.gcx) - [GCX iOS 9](etc/gcx/ios9.gcx) ## Build and development If you wanna make some modifications in your local environment, use: ``` yarn dev ``` this will create a watchable build with RollupJS and automatically create a server to see your changes in the browser. To finally build all targets: ``` yarn build ``` ## QA #### How do I integrate this library with a microphone user input? You can find an excellent demo [here](https://jsitor.com/PPQtOp9Yp) by @semmel