Code Monkey home page Code Monkey logo

content's Introduction

I research the structure of music and I make it easier to digest. I care about notes (pitches). Right now I don't care about rhythms or timbres (sounds, synths, fx).

I have two main projects now:

Rawl

Rawl adds colors to any music notation to make you see harmonic patterns faster. Demo: https://rawl.rocks/

In Rawl I also try to reuse a huge collection of MIDI files available in the internet to show the real structure of Western harmony and arrangement, at scale.

If Rawl inspires you in any way, please contact me.

Abandoned demos:

Rokk

Rokk crunches corpora of chords to make harmonic and formal variety of music navigable. I want to make a layer of navigation on top of Ultimate-Guitar.com chords, jazz lead sheets, probably also ChoCo and Hooktheory. I want to show most popular chord sequences by genre and find a visual way to show differences between styles of different composers.

Lectures

I've recorded some lectures in Russian. I'd love to collaborate with designers of educational content – YouTube and TikTok creators – who wish to spread the joy of seeing structure in music. I can maybe give classes on the structure of music in your city in the UK.

Academia

I'm an independent researcher and I do open source research for non-commercial purposes. I'm open to PhD.

I also mentor computer science students who seek to do projects on the structure of music. Message me if you need a project to work on.

content's People

Contributors

a-lawrence avatar goldvitaly avatar jdchristensen avatar jev-uv avatar johnkershaw avatar ldwoolley avatar mattdbr avatar tomalley4 avatar vpavlenko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

content's Issues

Sets <<Cubes>>

I can't seem to pass the <> test. The output looks identical to the test, but says that it doesn't pass. Here is the code:

acount, bcount = [int(i) for i in input().split(' ')]
aset, bset, cset = set(), set(), set()
for a in range(acount):
    aset.add(int(input()))
for b in range(bcount):
    bset.add(int(input()))
print(len(aset & bset))
for c in aset & bset:
    print(c)
print(len(aset - bset))
for a in aset - bset:
    print(a)
print(len(bset - aset))
for b in bset - aset:
    print(b)    

Heres the produced output, that looks just like the test case:

2
0
1
2
9
10
1
3

Did I miss something in the test? All but the first one pass.

Develop guidelines for problem statement structure and wording

@vpavlenko As I have been working the problems, I am noticing a variety of ways to structure the problem statements. I think it might be beneficial to create a simple standard that is followed, and then every update should approach the standard. One possible start:

Consistent order:

  1. Given (use input())
  2. Goal/objective for the code
  3. Output (use print())
  4. Restrictions/Don't use

Use of Math structures:

  • Favor the problem written in simple English phrases.
  • Mark declared variables as math symbols
  • Use mathematics expressions when the English will be complicated or confusing or really long.

What do you think?

Fixes by Myron Pulier

3.4 should say "Given a positive integer".
4.3 should say "10 integers" not 10 numbers.
5.2 advises the student to use count. The simplest answer, counting the number of space characters, fails if there are multiple consecutive space characters in the input. The model solution is superior, but does not use count.
6.3 should say "For a given positive integer"... there is no solution if X < 1.
6.8 The model solution would be less confusing if line 4 was 'if a > maximum'; a student would wonder why >= is necessary (it isn't).
6.9 I had two issues with this. I was not sure where "first maximum" meant a relative (local) maximum (such as 2 in the sequence 2,1,3,2,3,0) or the first appearance of the absolute maximum value for the entire sequence (such as the 3 that follows the 1). Also, the example and the model solution use 1-based indexing, and that was not immediately clear. At first I assumed that "index" referred to the more-usual Python 0-based indexing convention.
6.B It was not immediately clear to me that "greater than their neighbors above" meant greater than their immediately preceding element. I was unsure about how many "neighbors above" to consider for each element. I know this seems silly in retrospect, but that was my reaction.
6.C Another probably silly problem. The statement that the sequence ends with 0 allows the possibility that 0 is part of the sequence, in which case (1,0) satisfies the guarantee of a sequence of at least two elements. Perhaps stating "not including the 0" would avoid any initial confusion.

implement support for "units" in Test input and output

Issue

It appears that there might be issues within the Problem section in terms of the Input and possibly output windows. The possible issue comes from the students understanding what each line of the input and output represent...as not everyone is fluent in English.

Solution

Provide a mechanism for each problem set that indicates what each input and output represents. Or at the very least those problem sets that might cause a student to pause or stop their train of thought.

Idea 1

Expand the Problem Statement to more clearly indicate what each input and output represents. This appears to be the easiest solution; however, it pushes the code window down farther and is more text to read.

Idea 2

Create a new section that displays when the user hovers over a question-mark like icon near the input and output windows. This is more work to implement but can provide a clearer indication of what each input and output are.

Idea 3

Allow for displaying the input and comment-like representation in the input and output windows. At least for the Tests. There are no extra displays to implement, but it would require reworking the internals I believe.

Next to the Run Test #1 button, instead of it displaying

Input:

1
1
1
2
2
2

Output:

3661

It would display the something like the following...

Input:

1    # hour - time 1
1    # minute - time 1
1    # second - time 1
2    # hour - time 2
2    # minute - time 2
2    # second - time 2

Output:

3661    # difference in seconds

Example

If you look at the input for the Two Timestamps Problem Set that is part of the subscription in Lesson 1. There are 6 unlabeled inputs and 1 unlabeled output. By reading the problem statement, you should be able to figure out what each input means, but some problems that are harder than others.

New students might think it is second1, minute1, hour1, second2, minute2, hour2 (That seems reasonable). Or they might think it is hour1, hour2, minute1, minute2, second1, or maybe something else.

Side Note

This could also allow students to create better variable names. Again, not everyone is fluent in English and pulling out the correct information from an English sentence can be hard sometimes.

i18n: problem set 3, Clock Face - 1

The problem here states:

H hours, M minutes and S seconds are passed since the midnight (0 ≤ H < 12, 0 ≤ M < 60, 0 ≤ S < 60). Determine the angle (in degrees) of the hour hand on the clock face right now.

However, tests don't actually expect the answer in degrees, they expect the answer in decimal minutes and seconds. Happy to provide a PR to fix this either way, but I just want to clarify before I do that you don't actually mean degrees?

--

If you mean degrees, then the following logic would hold true:

15 minutes = 90 degrees
30 minutes = 180 degrees
45 minutes = 270 degrees
60/0 minutes = 360/0 degrees

Such that:
1 minute = 6 degrees

Resulting in:
30 seconds = 3 degrees
10 seconds = 1 degree
1 second = 0.1 degree

The resulting code would be:

h = int(input())
m = int(input())
s = int(input())

print((m * 6) + (s * 0.1))

--

If you mean the decimal minutes and seconds, then the current tests are correct but I'll need to update the language within the question.

If you could clarify @vpavlenko / @goldvitaly, I'll happily PR this.

Steps checker should ignore previous solutions

Can the checking engine be tweaked to look for solutions anywhere in the output?

I've had two students email me unable to complete step 10 of 'Integers and floats', even though their code is correct, because the checker requires you to delete your solution to step 1 and replace it with the solutions to step 2.

image

Show wrong answer next to correct answer?

When you scroll down to see the tests, it would be helpful to see the output from your program next to the Correct output. My student was doing the area of a right triangle exercise but didn't divide by 2. He saw the Correct answer was 7.5 but couldn't see that HIS answer was 15 (which would've clued him in to the solution).

BTW This is my first time using github for anything real, so apologies if I'm "doing it wrong". I've been a coder for 38 years (now a CS teacher in Cambodia) but back when I was coding commercially it was cvs - and not much of that!

Add more tasks, especially easy tasks

The goal is to make slow-pacing students busy and studying, so not to have them struggle on hard problems without any success. Please, share your task ideas below.

ctrl+enter to Run

This is the common standard on many 'Learn to code' sites (such as codewars).

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.