All Projects â†’ 1j01 â†’ guitar

1j01 / guitar

Licence: MIT license
🎸 Online guitar toy and tablature recorder/player

Programming Languages

javascript
184084 projects - #8 most used programming language
coffeescript
4710 projects
HTML
75241 projects

Projects that are alternatives of or similar to guitar

Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+1472.5%)
Mutual labels:  midi, synthesizer, synth
kiro-synth
Modular sound synthesizer written in Rust
Stars: ✭ 62 (-22.5%)
Mutual labels:  midi, synthesizer, synth
webaudio-synth
WebAudio Polyphonic Synthesizer
Stars: ✭ 83 (+3.75%)
Mutual labels:  midi, synthesizer, synth
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (+456.25%)
Mutual labels:  midi, synthesizer, synth
guitar-tabs-to-MIDI
A program that converts Guitar Tabs into MIDI files.
Stars: ✭ 38 (-52.5%)
Mutual labels:  midi, tabs, guitar
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+650%)
Mutual labels:  midi, synthesizer, synth
Miti
miti is a musical instrument textual interface. Basically, its MIDI, but with human-readable text. 🎵
Stars: ✭ 103 (+28.75%)
Mutual labels:  midi, synthesizer
Lick
LiCK, Library for ChucK
Stars: ✭ 118 (+47.5%)
Mutual labels:  midi, synthesizer
Shaden
🎧 A modular audio synthesizer.
Stars: ✭ 175 (+118.75%)
Mutual labels:  midi, synthesizer
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+186.25%)
Mutual labels:  midi, synthesizer
Jsscc
A JavaScript reimplementation of Gashisoft GXSCC
Stars: ✭ 26 (-67.5%)
Mutual labels:  midi, synth
Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (+126.25%)
Mutual labels:  midi, synthesizer
Mt32 Pi
🎹🎶 A baremetal kernel that turns your Raspberry Pi 3 or later into a Roland MT-32 emulator and SoundFont synthesizer based on Circle, Munt, and FluidSynth.
Stars: ✭ 231 (+188.75%)
Mutual labels:  midi, synthesizer
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (-21.25%)
Mutual labels:  midi, synthesizer
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (+82.5%)
Mutual labels:  midi, synthesizer
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-58.75%)
Mutual labels:  midi, web-app
Dx7 Synth Js
A JavaScript implementation of the Yamaha DX7 synthesizer
Stars: ✭ 201 (+151.25%)
Mutual labels:  midi, synth
CliChords
[CliChords] Get ultimate-guitar.com guitar tabs and chords in your terminal - command line cli
Stars: ✭ 20 (-75%)
Mutual labels:  tabs, guitar
diy-synths
List of open-source synths 🎹
Stars: ✭ 56 (-30%)
Mutual labels:  synthesizer, synth
wui
Collection of GUI widgets for the web
Stars: ✭ 44 (-45%)
Mutual labels:  midi, tabs

Guitar

It's a virtual guitar record-a-synthesize-amatronic web application.

Demo animation

Try it out here.

You can copy and paste entire webpages containing guitar tabs and it'll try to load all it can.

Play back notes by pressing "almost any" key (at least on US keyboards), with the fretboard focused (or no control focused). You can rock back and forth between different fingers on different keys, or just pick one, whatever feels natural.

Record notes by clicking on the fretboard. Secondary click is a shortcut to an open string. You can do this easily in real life from any position, so it makes sense to be able to do it from any position on the virtual guitar too. Tertiary mouse button (middle mouse button) does a bend, although bends are not recorded yet. Timing is also not recorded yet. So it's not very useful for recording tabs, although you could certainly use it as an interactive chart at least.

You can choose any scale to highlight, a feature I first implemented in Tri-Chromatic Keyboard. It should be much more useful here, since you can learn how to play the guitar with it! (as opposed to an instrument that virtually no-one has, including me)


Uses tuna audio effects library. The guitar synthesis algorithm is from guitar-synth.

The tablature parser created for the app is available separately as a module here.

TODO

  • Better mobile support

    • Play back recorded notes with a button

    • Multitouch

  • Make web application self-explanatory and test accessibility

  • Make bending (MMB) less ridiculous

  • Record chords (with multitouch or a modifier key, maybe also have some sort of toggle)

  • Strum chords in playback, maybe have up/down arrows for up/down strumming

  • Source mapping, so you can see and keep the rhythm, articulations, and comments as context

  • Record, parse, and play back articulations such as slides, bends, vibratos, hammer-ons, and pull-offs

  • Different sound for sliding than for plucking/picking

  • Different sound in general, ha, since it's not great...

  • Support for different tunings

  • Allow configuring the effects chain (at least toggle distortion on/off)

  • Clear way set focus to the fretboard for playback (unfocusing the tablature editor), via the keyboard

  • Tablature editor

    • Scroll with the playback position

    • Make the playback position indicator different while playing, so it's clearer whether its showing what's playing or what's next

    • Set the position in the song when you click in the tablature editor

    • Handle multi-digit numbers when highlighting notes

    • Insert and overwrite notes with the virtual guitar fretboard (as opposed to just appending (which is a specific form of inserting))

    • Multi-String Cursor mode

      • Shift+click to select from the existing selection anchor

      • Disable or override double-click and triple-click... and quad-click (yeah, for real)

      • Why does the selection style change on mouseup?

    • Clearer overwrite mode cursor

    • Custom syntax highlighting

      • Highlight tablature with articulations and everything

      • Highlight << misalignment markers as erroneous

    • Maybe add some padding with renderer.setPadding?

    • Paste from contentEditable to detect a <pre> containing the tabs? Just to eliminate noise, and if it keeps surrounding text (context) while editing, extra output in what you might save / the work in removing it.

  • MusicXML? MIDI?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].