-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
project setup and improvements #3
Comments
thank you so much for reviewing my code... |
I tried to contribute because I think this is an interesting project. First of all, I have no problem in reading and writing in Chinese, the reason that I used English here it is I believe there will be non-Chinese speaking people interested in this project and might want to help, too. So we should try our best to lower the barriers to entry. BTW, I also know the name of the language/executable (tmd) is an intended pun :) I also aware that you are a professional composer/producer and mentored in some talent shows. I've heard that you have the plan to re-implement this in golang later, and you mentioned nuitka here, is it document compiling speed the real concern? From my experience, document compilers, so to speak, usually do not care about this unless the compiler is meant to be used in transforming documents en masse. Regarding python 2/3 compatibility, if the python 2 you are targeting is no less that 2.7, then, with careful coding and discipline, it is possible to have a single code base that can be run in both 2 and 3, provided you are not using something like Once I have the time and enough understanding to make this works in my system, I will then add some necessary files to make it pip install-able, if you don't mind. I've come up with an idea about the language specification as well, and I think it is more suitable to discuss in another issue, I will draft that and open a new issue later on. |
ah~~~ so you are capable to read all the stupid note I wrote >///< |
Haha, your notes are by no means stupid. I know Apple/Mac OS is ubiquitous in musical industry, now I understand, ease of distribution is of essential here, you have a very valid point, I totally agree. Providing easy-to-install package is only half the story, so we need a way to invoke this application afterwards, and that should not involve terminal and/or command line, as you mentioned, that means a GUI? My 2 cents:
You make the decision and I will evaluate some possible combinations. |
I am thinking electron...(or any atom/vscode ext?) |
Electron is a valid option, but then it is better javascript all the way down. Depending on your view, it is either heaven or hell. :) atom/vscode(or any other editor) extensions only solve part of the problem, rendering should be done with an external executable, to avoid vender lock-in (implementing the renderer in specific editor plugin) or repeated work (written once for each editor we support), Now that you gave me some insight, I have another idea that I want to discuss with you privately, is your gmail okay? |
Besides the pull request I just created (#2), I can also help you to setup the project structure and installation script:
setup.py
and friendsargparse
, thus, a better CLIthen this parser can be installed and run as simply as:
It should be possible to have it in homebrew this way.
In function
Pass1
insidetmd.py
, module-level global variables inTMDScanner
are being modified, which I think is a BAD idea.There are also many places that can be improved, and once I understand what the language spec. is, I might be able to help you on the parser as well, but there is no documentation now and reading regular expressions is no fun.
BTW, I cannot run the program (Linux: gentoo, with Python 3.5.2, cairocffi 0.7.2, cairo-1.14.6)
The first problem is that you seemed to switch to CFFI version of python cairo binding from pycairo, but you still referring to pycairo in TMDDrawer.py (
import cairo
), this one should be easy to fix.The second one is when I tried it with your work
I got something like:
This should be either something wrong with the parsing logic (missing required non-empty string field in
ChordList
) or feeding erroneous input data to the parser with which it cannot handle gracefully.The text was updated successfully, but these errors were encountered: