<commit_before>WebMIDIAPIShimForiOS
====================
This is a shim to enable [Web MIDI API](https://dvcs.w3.org/hg/audio/raw-file/tip/midi/specification.html) on iOS. [WebMIDIAPIPolyfill.js](WebMIDIAPIPolyfill/WebMIDIAPIPolyfill.js) is the bridge script to invoke iOS native Core MIDI APIs. And [WebViewDelegate.m](WebMIDIAPIPolyfill/WebViewDelegate.m) is the receptor for informal URL schemes triggered by the bridge script. You can build a hybrid Web MIDI application with using them.

![sample screen](images/sample_screen.png)

When launching the project, a simple web browser will show. It uses JavaScript injection hack by using the UIWebView's method `-(NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script`. You can run Web MIDI applications using the browser as if iOS WebKit had a native API support.

Known issues
--------------------
* The native bridge script will be deactivate when moving pages by clicking links. I don't know how to inject JS codes to UIWebView permanently.
* Timestamp parameters are not supported so far. It'll be supported in future release.

Related projects
--------------------
The idea was brought from [WebMIDIAPIShim](https://github.com/cwilso/WebMIDIAPIShim) by <NAME>. WebMIDIAPIPolyfill.js in this project was derived from his great work.

License
--------------------
Apache License 2.0<commit_msg>Updated Web MIDI API Spec page's URL<commit_after>WebMIDIAPIShimForiOS
====================
This is a shim to enable [Web MIDI API](http://www.w3.org/TR/webmidi/) on iOS. [WebMIDIAPIPolyfill.js](WebMIDIAPIPolyfill/WebMIDIAPIPolyfill.js) is the bridge script to invoke iOS native Core MIDI APIs. And [WebViewDelegate.m](WebMIDIAPIPolyfill/WebViewDelegate.m) is the receptor for informal URL schemes triggered by the bridge script. You can build a hybrid Web MIDI application with using them.

![sample screen](images/sample_screen.png)

When launching the project, a simple web browser will show. It uses JavaScript injection hack by using the UIWebView's method `-(NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script`. You can run Web MIDI applications using the browser as if iOS WebKit had a native API support.

Known issues
--------------------
* The native bridge script will be deactivate when moving pages by clicking links. I don't know how to inject JS codes to UIWebView permanently.
* Timestamp parameters are not supported so far. It'll be supported in future release.

Related projects
--------------------
The idea was brought from [WebMIDIAPIShim](https://github.com/cwilso/WebMIDIAPIShim) by <NAME>. WebMIDIAPIPolyfill.js in this project was derived from his great work.

License
--------------------
Apache License 2.0
{'fraction_non_alphanumeric': 0.11924917188075083, 'fraction_numerical': 0.002208317997791682, 'mean_word_length': 4.089887640449438, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7402503', 'n_tokens_mistral': 779, 'n_tokens_neox': 729, 'n_words': 315}