Coder Social home page Coder Social logo

keytocomment-kotlin's Introduction

keytocomment-kotlin

The simple Beatunes "keytocomment" example plugin, converted to Kotlin.

This also uses Gradle to build the plugin, because I don't have much experience with Maven. This required a trivial change to plugin.xml (see the keytocomment-gradle repo for more details).

I did this purely because I wanted to write a Beatunes plugin, but thought I might as well try and teach myself a bit of non-trivial Kotlin at the same time. The initial release is the result of pasting the Java code into IntelliJ and letting it convert it into Kotlin automatically. It may be useful as a gentle introduction to the differences between Kotlin and Java, but not provide any great improvements in clarity or brevity or what not. Later releases may make more changes to take advantage of Kotlin features and idioms.

Building

Windows:

gradlew.bat build

Linux:

./gradlew build

You can find the built JAR file as build/libs/keytocomment-gradle-<version>.jar.

Installing

Creating a Kotlin Runtime Jar

You will need the Kotlin runtime and its dependencies. I'm sure there's an incredibly straightforward way to download this that I am missing, but I ended up using gradle to generate a fat jar manually (this tutorial providing the key jar-creating information). In an empty directory save the following as build.gradle:

apply plugin: 'kotlin'

ext.kotlin_version = '1.1.51'
version kotlin_version

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
}

task fatJar(type: Jar) {
    baseName = 'kotlin-fat'
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
}

buildscript {
    ext.kotlin_version = '1.1.51'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

Then run (assuming gradle is on your PATH, otherwise by using your favored way of invoking gradle):

gradle fatJar

You should then find kotlin-fat-1.1.51.jar in the build/libs subdirectory.

Put that in the lib directory of your Beatunes installation. On my Windows 10 machine, it can be found at C:\Program Files\beaTunes5\lib.

At least you only need to do this once.

Deploying the plugin

Copy the plugin jar file into your plugins directory. On my Windows 10 installation, it's in the user's AppData\Local\tagtraum industries\beaTunes\plugins directory, rather than where Beatunes itself is installed.

Test it works

  1. Under Edit > Preferences > Plugins, on the Installed tab should be a plugin called 'Copy key to comment'. If not, it didn't install correctly.
  2. Select some songs from your library, ideally ones where the comments don't already contain the key information and you don't care that we're going to overwrite them.
  3. Right click (or whatever you do to bring up the context menu) and choose 'Analyze'.
  4. In the Analyze Options that appears, go to the 'Analyze key' section and make sure that check box is checked. But make sure the 'Copy key to comment using' check box is not checked. This isn't the plugin, it's built-in functionality.
  5. Scroll further down, probably to the bottom, where there should be a 'Copy key to comment'. This is our plugin. Check the box. Choose whatever key format you like.
  6. Click 'Analyze' and let 'er rip.
  7. Once you're done, the 'Comments' field should contain the key information, which, assuming you left the format as 'Traditional (OK)', will look something like 'G major (2d)'.

License

The Kotlin source, like the original Java example code, is LGPL 2.1.

See Also

If you don't care about Kotlin, but would like to build Beatunes plugins with Gradle, see keytocomment-gradle.

keytocomment-kotlin's People

Contributors

jlmelville avatar

Watchers

 avatar  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.