{"id":20796432,"url":"https://github.com/jazz-soft/jzz-modules","last_synced_at":"2025-05-06T07:54:49.522Z","repository":{"id":36269587,"uuid":"40574043","full_name":"jazz-soft/JZZ-modules","owner":"jazz-soft","description":"Additional modules for JZZ.js","archived":false,"fork":false,"pushed_at":"2025-04-10T01:04:19.000Z","size":4757,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T02:22:21.936Z","etag":null,"topics":["audio","midi","web-audio","web-audio-api","web-midi","web-midi-api","webaudio","webaudioapi","webmidi","webmidiapi"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jazz-soft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-12T01:42:06.000Z","updated_at":"2025-04-10T01:04:22.000Z","dependencies_parsed_at":"2025-04-10T02:20:36.292Z","dependency_job_id":"63ab08c7-ed75-4a63-a8b8-88aaaf091f60","html_url":"https://github.com/jazz-soft/JZZ-modules","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazz-soft%2FJZZ-modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazz-soft%2FJZZ-modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazz-soft%2FJZZ-modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazz-soft%2FJZZ-modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jazz-soft","download_url":"https://codeload.github.com/jazz-soft/JZZ-modules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252643901,"owners_count":21781604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","midi","web-audio","web-audio-api","web-midi","web-midi-api","webaudio","webaudioapi","webmidi","webmidiapi"],"created_at":"2024-11-17T16:27:14.500Z","updated_at":"2025-05-06T07:54:49.485Z","avatar_url":"https://github.com/jazz-soft.png","language":"JavaScript","readme":"# JZZ-modules\n\nAdditional modules for [**JZZ.js**](https://github.com/jazz-soft/JZZ):\n\n[**JZZ.synth.MIDIjs**](#jzzsynthmidijs)  \n[**JZZ.synth.Timbre**](#jzzsynthtimbre)  \n[**JZZ.synth.OSC**](#jzzsynthosc) - moved to **https://github.com/jazz-soft/JZZ-synth-OSC**  \n[**JZZ.synth.Tiny**](#jzzsynthtiny) - see at **https://github.com/jazz-soft/JZZ-synth-Tiny**  \n[**JZZ.input.Qwerty**](#jzzinputqwerty)  \n[**JZZ.input.Kbd**](#jzzinputkbd) - moved to **https://github.com/jazz-soft/JZZ-input-Kbd**  \n[**JZZ.input.ASCII**](#jzzinputascii) - moved to **https://github.com/jazz-soft/JZZ-input-Kbd**  \n[**JZZ.input.Knobs**](#jzzinputknobs) - moved to **https://github.com/jazz-soft/JZZ-input-Kbd**  \n\n## JZZ.synth.MIDIjs\n\nCreate a custom MIDI-Out port using [**MIDI.js**](https://github.com/mudcube/MIDI.js) library.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/MIDI.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.synth.MIDIjs.js'\u003e\u003c/script\u003e\n\u003cscript\u003e\u003c!--\nJZZ.synth.MIDIjs({ soundfontUrl: \"./soundfont/\", instrument: \"acoustic_grand_piano\" })\n   .note(0, 'C5', 127, 500).wait(500)\n   .note(0, 'E5', 127, 500).wait(500)\n   .note(0, 'G5', 127, 500).wait(500)\n   .note(0, 'C6', 127, 500);\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/midijs).\n\n## JZZ.synth.Timbre\n\nA wrapper for the [**Timbre.js**](https://github.com/mohayonao/timbre.js) T(\"PluckGen\")/T(\"OscGen\")/T(\"SynthDef\") synths.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\n(Unlike advertized, does not seem to work in IE9 and some other browsers)\n\n##### Example\n\n```html\n\u003cscript src='javascript/timbre.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.synth.MIDIjs.js'\u003e\u003c/script\u003e\n\u003cscript\u003e\u003c!--\nvar synth = T(\"SynthDef\").play();\nsynth.def = function(opts) {\n  var osc1, osc2, env;\n  osc1 = T(\"sin\", {freq:opts.freq, mul:0.25});\n  osc2 = T(\"sin\", {freq:opts.freq + 8, mul:0.25});\n  env  = T(\"linen\", {s:450, r:2500, lv:0.5}, osc1, osc2);\n  return env.on(\"ended\", opts.doneAction).bang();\n};\nJZZ.synth.Timbre(synth)\n   .note(0, 'C5', 127, 500).wait(500)\n   .note(0, 'E5', 127, 500).wait(500)\n   .note(0, 'G5', 127, 500).wait(500)\n   .note(0, 'C6', 127, 500);\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/timbre).\n\n## JZZ.synth.OSC\n\nA simple Web Audio oscillator-based MIDI-Out port.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![ios](https://jazz-soft.github.io/img/ios.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\n(moved to **https://github.com/jazz-soft/JZZ-synth-OSC**)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.synth.OSC.js'\u003e\u003c/script\u003e\n\u003cscript\u003e\u003c!--\nJZZ.synth.OSC()\n   .note(0, 'C5', 127, 500).wait(500)\n   .note(0, 'E5', 127, 500).wait(500)\n   .note(0, 'G5', 127, 500).wait(500)\n   .note(0, 'C6', 127, 500);\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/osc).\n\n## JZZ.synth.Tiny\n\nTiny Web-Audio GM Synthesizer \n([g200kg/webaudio-tinysynth](https://github.com/g200kg/webaudio-tinysynth))\nwrapped as MIDI-Out port.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![ios](https://jazz-soft.github.io/img/ios.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\n(see at **https://github.com/jazz-soft/JZZ-synth-Tiny**)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.synth.Tiny.js'\u003e\u003c/script\u003e\n\u003cscript\u003e\u003c!--\nJZZ.synth.Tiny()\n   .note(0, 'C5', 127, 500).wait(500)\n   .note(0, 'E5', 127, 500).wait(500)\n   .note(0, 'G5', 127, 500).wait(500)\n   .note(0, 'C6', 127, 500);\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/tiny).\n\n## JZZ.input.Qwerty\n\nA wrapper for the [**Qwerty-Hancock**](https://github.com/stuartmemo/qwerty-hancock) keyboard.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n\nWorks wherewer the mouse and keyboard inputs are available.\n\n[![qwerty](https://jazz-soft.github.io/img/qwerty.png)](https://jazz-soft.github.io/modules/qwerty)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/qwerty-hancock.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.input.Qwerty'\u003e\u003c/script\u003e\n...\n\u003cdiv id='qwerty'\u003e here comes the piano! \u003c/div\u003e\n...\n\u003cscript\u003e\u003c!--\nJZZ.input.Qwerty({id:'qwerty', width:281, height:150, octaves:1, startNote:'C4'})\n   .connect(JZZ().openMidiOut());\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/qwerty).\n\n## JZZ.input.Kbd\n\nUniversal HTML keyboard for your MIDI projects.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![ios](https://jazz-soft.github.io/img/ios.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\nMouse and multitouch support.\nCustom styles.\nReady for responsive design.\n\n(moved to **https://github.com/jazz-soft/JZZ-input-Kbd**)\n\n[![kbd](https://jazz-soft.github.io/img/kbds.png)](https://jazz-soft.github.io/modules/kbd)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.input.Kbd'\u003e\u003c/script\u003e\n...\n\u003cscript\u003e\u003c!--\nJZZ.input.Kbd().connect(JZZ().openMidiOut());\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/kbd).\n\n## JZZ.input.ASCII\n\nASCII keyboard as MIDI input.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n\nCan be connected to [**JZZ.input.Kbd**](#jzzinputkbd) to enable both keyboard and mouse/touch input.\n\n(moved to **https://github.com/jazz-soft/JZZ-input-Kbd**)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.input.Kbd'\u003e\u003c/script\u003e\n...\n\u003cscript\u003e\u003c!--\nJZZ.input.ASCII({\n     //  S D   G H J\n     // Z X C V B N M\n     Z:'C5', S:'C#5', X:'D5', D:'D#5', C:'E5', V:'F5',\n     G:'F#5', B:'G5', H:'Ab5', N:'A5', J:'Bb5', M:'B5'\n   }).connect(JZZ().openMidiOut());\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/ascii).\n\n## JZZ.input.Knobs\n\nPitch-bend, modulation, and other knobs for your virtual instrument.\n\n![windows](https://jazz-soft.github.io/img/windows.jpg)\n![mocos](https://jazz-soft.github.io/img/macos.jpg)\n![linux](https://jazz-soft.github.io/img/linux.jpg)\n![ios](https://jazz-soft.github.io/img/ios.jpg)\n![android](https://jazz-soft.github.io/img/android.jpg)\n\nMouse and multitouch.\nCustom styles.\nResponsive design friendly.\nPerfect to use together with [**JZZ.input.Kbd**](#jzzinputkbd)...\n\n(moved to **https://github.com/jazz-soft/JZZ-input-Kbd**)\n\n[![knobs](https://jazz-soft.github.io/img/knobs.png)](https://jazz-soft.github.io/modules/knobs)\n\n##### Example\n\n```html\n\u003cscript src='javascript/JZZ.js'\u003e\u003c/script\u003e\n\u003cscript src='javascript/JZZ.input.Kbd'\u003e\u003c/script\u003e\n...\n\u003cscript\u003e\u003c!--\nJZZ.input.Slider({data:'pitch'}).connect(JZZ().openMidiOut());\nJZZ.input.Pad({dataX:'mod', dataY:'volume'}).connect(JZZ().openMidiOut());\n--\u003e\u003c/script\u003e\n```\n\nSee the [**demo**](https://jazz-soft.github.io/modules/knobs).\n\n[**How to create your own modules for JZZ.js**](https://jazz-soft.net/doc/JZZ/modules.html)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjazz-soft%2Fjzz-modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjazz-soft%2Fjzz-modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjazz-soft%2Fjzz-modules/lists"}