Coder Social home page Coder Social logo

beatboxjs / ror-player Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 10.0 4.75 MB

A pattern-based drumming machine based on TypeScript, beatbox.js, Vue.js and Bootstrap.

Home Page: https://player.rhythms-of-resistance.org/

License: GNU Affero General Public License v3.0

HTML 1.25% JavaScript 2.20% Dockerfile 0.21% TypeScript 56.77% Vue 39.43% SCSS 0.15%

ror-player's People

Contributors

cdauth avatar eggman64 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ror-player's Issues

Add Walc(z) tune

Raw data object:

{"patterns":{"Walc(z)":{"Tune":{"ls":"! !X'!X-!X3!X","ms":"!#$X X)$X X/$X X5%XXXX","hs":"@ms","re":"@ms*!X","sn":"..X.X...X.X...X.X.XXXXXX","ta":"@ms/&    X6! ","ag":"o a a o a a o a a o","time":3,"length":8},"Break 2":{"ls":"X X X","ms":"!'&X X X","hs":"!-&X X X","re":"!3'XXXXXX","sn":"@re","ta":"@re","ag":"!3'aaaaaa","time":3,"length":8},"Bra Break":{"ls":"!'!X3!X=!XC!XI$X X","ms":"@ls","hs":"@ls","re":"! &X X X-&X X X9$X X?$X XE$X X","sn":"@ls","ta":"@ls","ag":"!'!o3!o=!oC!oI$o o","time":3,"length":16},"Break 3":{"ls":"! &X X X-&X X X9$X X?$X XE(X X X X","ms":"@ls","hs":"@ls","re":"!'!X3!X=!XC*X X X X X","sn":"@re","ta":"@re","ag":"!'!a3!a=!aC*a a a a a","time":3,"length":16},"Break 5":{"ls":"!3'XXXXXX","ms":"@ls","hs":"@ls","re":"@ls","sn":"@ls 3..X.X...X.X...X.X.","ta":"@ls","ag":"!3'aaaaaa","time":3,"length":8},"Cut-throat Break":{"ls":"! !X'!X-!X","ms":"@ls","hs":"@ls","re":"!#$X X)$X X/$X X","sn":"@re","ta":"@re","ag":"!#$a a)$a a/$a a","time":3,"length":8},"Cut-throat Break Fast":{"ls":"X  X  X","ms":"@ls","hs":"@ls","re":" XX XX XX","sn":"@re","ta":"@re","ag":" aa aa aa","time":3,"length":4}}}}

Tune sheet: https://sambaka.files.wordpress.com/2009/03/walcz3.pdf

Modal dialog for new tune

Creating a new tune sticks you into a modal dialog rather than a full page. It might be the last of the modals to eradicate

  • Go to Compose
  • Click New tune
  • Enter name
  • Expect empty pattern editor in main view, but appears in a modal

Files not playing on my device

https://www.rhythms-of-resistance.org/tunes-dances/tunes/

For some reason the files on this Web page no longer work on my device. Other Web pages have no issues playing files on my device (which is a mobile) and the link works fine on other people's phones.

I have cleared my cache etc but the files still won't play. Is there a way to get this to work again? I'm not sure if the issue is as the host end.

Thanks in advance for any help offered.

Clicking on "show notes" opens the notes twice

Issue

When clicking on "show notes" in any tune and break it opens the windows twice, once immediately and once after about a second (the time vary from machine to machine), i suspect this is a bug and not a feature and this also lead to long loading time.

How to replicate

Just open https://player.rhythms-of-resistance.org/#/listen/Sambasso/ for example, click on the "show notes" of any of the tune or break, you should see a windows pop up immediately and after about a second it disappear and another one appear instead.

Some investigation

It seems the problem stems from the following line don't working exactly like it was expected.

setTimeout(() => {
	hashChangeIgnored = false;
}, 0);

In the function setState

function setState(name: string, params: Params = { }) {
	if(setStateIgnored)
		return;

	hashChangeIgnored = true;
	setTimeout(() => {
		hashChangeIgnored = false;
	}, 0);

	if(name == "") {
		location.hash = "#";
		currentState = null;
	} else {
		location.hash = "#" + ROUTES_COMPILE[name](params);
		currentState = { name, params };
	}
}

I think this was supped to suppress the event in

window.addEventListener("hashchange", () => {
if(!hashChangeIgnored)
	resolve();
}, false);

But what happen as far as i understand is that the setTimeout happens first instead of the EvenListner.

Possible solution

Maybe in setState we can add some variable of the hash that should be skipped, and just skip it in the window.addEventListener but i really not sure.

warning: the following paths have collided (e.g. case-sensitive paths on a case-insensitive filesystem)

When checking out the repo on OSX, the following warning is printed:

warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

  'assets/audio/ot_B.mp3'
  'assets/audio/ot_b.mp3'
  'assets/audio/ot_C.mp3'
  'assets/audio/ot_c.mp3'
  'assets/audio/ot_D.mp3'
  'assets/audio/ot_d.mp3'
  'assets/audio/ot_E.mp3'
  'assets/audio/ot_e.mp3'
  'assets/audio/ot_G.mp3'
  'assets/audio/ot_g.mp3'
  'assets/audio/ot_I.mp3'
  'assets/audio/ot_i.mp3'
  'assets/audio/ot_J.mp3'
  'assets/audio/ot_j.mp3'
  'assets/audio/ot_K.mp3'
  'assets/audio/ot_k.mp3'
  'assets/audio/ot_L.mp3'
  'assets/audio/ot_l.mp3'
  'assets/audio/ot_M.mp3'
  'assets/audio/ot_m.mp3'
  'assets/audio/ot_N.mp3'
  'assets/audio/ot_n.mp3'
  'assets/audio/ot_P.mp3'
  'assets/audio/ot_p.mp3'
  'assets/audio/ot_Q.mp3'
  'assets/audio/ot_q.mp3'
  'assets/audio/ot_U.mp3'
  'assets/audio/ot_u.mp3'
  'assets/audio/ot_V.mp3'
  'assets/audio/ot_v.mp3'
  'assets/audio/ot_W.mp3'
  'assets/audio/ot_w.mp3'
  'assets/audio/ot_Y.mp3'
  'assets/audio/ot_y.mp3'

It is probably safer to ensure no filename are different only in case.

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.