Giter VIP home page Giter VIP logo

chordlifter's Introduction

chordlifter

For musicians: project to adjust song lyrics (text files) so that chords can be either within or floating above.


Samples:

ChordLifter samples

Compare "Flat" vs "Lifted" versions of a song. Here's color inversion of the picture above, which is from "inline chords" document of Mike's google classroom.


VERSION or DATE:

2022f Jun 3


HOW TO START THIS PROJECT:

Run tests! They work in IntelliJ (green arrows) & BlueJ ("Run Tests"). The IDE's want to open either project1-superstring (folder for blueJ) or IDEA-SuperString/test_sup_str (folder for intelliJ) directories.


AUTHORS:

Mike, 2021-2, with ideas from Cole, Sadie, Jia, Max, & Desi.


USER INSTRUCTIONS:

Currently working on making SuperString.java's string handling so we can ask for "word" I, or "item" J, or "line" K of a SuperString. We can also ask to getNextChord (or getNextLyric) of it, and we can build a new SuperString from the results of chopFirstChord (or chopFirstLyric).

Hints for making SuperString pass its tests:


Dependencies

  • junit 4 or 5,
  • java8 or better (import java.util.ArrayList),
  • shared package of SuperString and SuperStringTest.

TODO:

[ ] SuperStringTest should be sure null and "" isEmpty( ) strings don't crash out!

[ ] Maybe SuperString should be StringChomper with static commands for String disassembly.

[ ] Block setText( ) so it only accepts legit ("" but not null?) Strings.

[ ] Turn wanna-be-tests into real tests! See the starter examples in ChordShifterText.java!

[ ] Consider having separate folders (branches!?) for "starter" and "answer-key" versions.

[ ] Revise example picture and all code to use {Chord} rather than [Chord].

[ ] See openfjx info which suggests finding JavaFX libraries and use IntelliJ's file:projectStructure:Library to tell IntelliJ where javafx libs live. See stackoverflow article re javafx which explains that java8 came with javafx but java 11+ don't and need the openjfx install mentioned above. (IntelliJ wants jdk 11 or 17 for JavaFX. BlueJ is running JavaFX (8 probably) in my chordlifter but IntelliJ isn't. IntelliJ was able to make a new project in different folder "demoJavaFX" which runs and acquired its own javaFX (11+?) from somewhere.)

[ ] Use Bluej's example of file reader for SuperString.getTextFromFile( )


History/DidDo

See done in separate document in proj-history directory


Ideas, Things to add

  • Possible implementation of symbol table: keys & values (with hashmap)
  • Possible implementation of song: linked list
  • MVC!
  • Extra features: search for melody snippets in multiple songs!
  • Kinds of data we could track: who sings which verse, which instruments play which notes.
  • Include note hints, e.g. ( c d e fh )

Things to decide:

  • If {Am Bm} are in one bracket enclosure, is that one "chord" or two???
  • Is "never {G}gonna" acceptable or better/worse than "never {G} gonna" in terms of spaces??
  • Should we always make sure output has at least one space between all "lyric" and "chord" things?

Ah-hah! Learning by doing...

  • BlueJ didn't at first run the ChordTest that intelliJ had made, and didn't stick it to Chord class until I told blueJ to make its own ChordTest. BlueJ squawked about it existing already, and moved the intelliJ test into position.
  • IntelliJ doesn't import as much for its tests, and has to specify longer prefixes.
  • To see the TextDialogExamples (there are separate directories for the BlueJ and IntelliJ versions.
    • When running BlueJ, right click TextDialogExample & "Run JavaFX Application" (the "new TextDialogExample" doesn't seem to work May 2022).
    • When running IntelliJ, can use its terminal to javac TextDialogExample.java and java TextDialogExample.
  • IntelliJ new Project on new install has option to download java 18 (other versions avail) and wants to put it into ~/Library/Java/JavaVirtualMachines/openjdk-18.0.1.1
  • IntelliJ: new Java files should go into the "src" folder, else "Run" has trouble finding them.
  • IntelliJ: community edition can become education by merely adding the EduTools Plugin.
  • IntelliJ: reasonable package com.michaelroam.hellomilton; // we should put it top of all interactors
  • IntelliJ: nice "sout" and "psv" code replace/complete give System.out.println("") with cursor inside quotes! and public static void main(.
  • Github iPad app doesn't allow file editing, just reading; use ipad's Safari to go to http://github.com/mroam/chordlifter and EDIT!

References

chordlifter's People

Contributors

mroam avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.