riugabachi / necrophagy Goto Github PK
View Code? Open in Web Editor NEWA type-level, statically-verified Haskell embedded domain specific language (EDSL) for writing guitar tablature.
License: BSD 3-Clause "New" or "Revised" License
A type-level, statically-verified Haskell embedded domain specific language (EDSL) for writing guitar tablature.
License: BSD 3-Clause "New" or "Revised" License
For some songs, the ability to view track tabs the traditional ASCII way is still a nice to have.
/
search for bar number or marker nameA Euterpea backend will pave the way for MIDI generation and delimited-section playback, which are must-haves for any serious transcription workflow. This will require a great number of type classes and instances, and the internal representation of parsed graphs is still somewhat under-documented as of now.
Static verification is only as good as whether or not said static verification is correct to begin with, unfortunately. Fortunately, type-level tests are easy to implement, and there are plenty of tabs out there for reference re-implementation, though we will definitely want originals for edge cases.
Most dynamics currently do not produce the correct sound effect during playback and export. Implementing this to a high quality will require referencing TuxGuitar source to study the audio processing techniques used for each dynamic.
Investigate how feasible it is to automate downloading/uploading from/to UltimateGuitar and Songsterr. Will most likely require the user auth to each respective service. In so far as whatever is feasible, proceed to implement them.
The current notation of Instrument `Tuned` Tuning
is not ideal, as we have 6/7/8/9 string guitars for which the same tuning names apply to, however the current design necessitates n*m tuning data structures suffixed with the string number, such as BStandard6
.
I propose the alternate syntax:
Program @(7 `String` DistortionGuitar `Tuned` BStandard)
And subsequently, a Tuning
type family indexed by string count and tuning name.
GuitarPro 5 is currently the de facto binary file format for guitar tablature distribution. It is the only format guaranteed to work across all major tablature hosting websites. That said, the company behind it has never released an official spec, however there are plenty of GP5 parser implementations in other languages one could easily base this off of.
Ideally I would like to use a bidrectional binary parser for this, however I have not decided on which library I'd like to hedge my bets on. I could possibly update my old library describe
for this, but nothing's guaranteed yet.
Additionally, we should discuss whether it would be worthwhile to add a GP5 -> Haskell source converter. It would most definitely not be trivial going in this reverse direction, however it is essential for editing tabs made by other users in order to submit revisions.
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.