Code Monkey home page Code Monkey logo

pocket-scale-calculator's Introduction

I heard you like Pocket Operators, so I made Pocket Scale Calculator for your Pocket Operator.

This console app is a helper tool for calculating scales & note positions for Teenage Engineering Pocket Operator PO-32, PO-33/133, PO-35/137 & PO-128 series. It was inspired by https://punkyv4n.me/po-33-scale-app, but I wanted to make an ancient-looking desktop console version with pocket operator vibes and extend original app functionality with more available settings and scales.

terminal profile icon compact

v0.9.3

  • Reused correct tonic key definition across the app (root key -> tonic)
  • Added support for po-32 Tonic model.

v0.9.2

  • Added support for po-128 Megaman model.

v0.9.1

  • Added missing scales for po-35/137 models (Blues & Arab)
  • Modified & added tests to handle additional poScale argument
  • Updated default terminal profile to fit snap-off hanger option & resized window.

v0.8.2

  • Reduced console window size to 41 chars (cut unused 3 chars space from the both sides).
  • Reworked text output methods.

v0.8.1

  • Added shortcuts for faster accessing scales.
  • Added proper app tutorial text.

v0.8

  • Added pocket operator scale app argument & option (Major / Minor)
  • Added showing current po scale option on the first line of ascii-display
  • Added support for po-35/137 Major scales: Major (Natural & Pentatonic) / Minor (Natural & Pentatonic) / Dorian / Lydian / Mixolydian / Locrian / Phrygian
  • Added support for additional Minor scales: Mixolydian / Locrian / Phrygian
  • Added 'scales' command & section for showing full list of supported scales

v0.7

  • Added args tests
  • Fixed minor arg-related defects
  • Added 'exit' command & section

v0.6

  • Added support for additional Minor scales: Major Pentatonic / Minor Pentatonic / Dorian / Lydian / Blues
  • Added 'description' command & section
  • Added 'about' command & section
  • Added 'support' command & section
  • Added 'options' command & section
  • Added snap-off hanger app argument & option
  • Added pocket operator model app argument & option

v0.5.1

v0.5

  • Added init app arguments: tonic & scale
  • Added support for basic Minor scales: Major Natural / Major Harmonic / Minor Natural / Minor Harmonic

General info

To use app please type tonic key & desired scale (for example: F Blues) and press enter. Found scale name will appear on the second line of the little ascii po display. The scale itself will be shown on the ascii pocket operator note buttons. Sample key for the found scale will be shown on the third line of ascii po display. This is the sample note you should load into your PO to use this scale. Play your melody using buttons with note keys and avoid using out of scale buttons marked as --. Also, the first line of ascii pocket operator display is showing your current po scale setting. To change this and other settings such as 'snap-off hanger' option and PO model, please use 'options' command and follow menu tips.

Scales

Supported scales for PO-128, PO-33/133 & PO-35/137 with Minor scale setting:

  • Minor (Natural, Harmonic & Pentatonic)
  • Major (Natural, Harmonic & Pentatonic)
  • Blues
  • Dorian
  • Lydian
  • Mixolydian
  • Locrian
  • Phrygian

Supported scales for PO-35/137 with Major scale setting:

  • Major (Natural & Pentatonic)
  • Minor (Natural & Pentatonic)
  • Dorian
  • Lydian
  • Mixolydian
  • Locrian
  • Phrygian

PO-35/137 Blues & Arab scale settings are now supported as well.

PO-32 sound bank pitch mode

If you would like to calculate scales for PO-32, the app will work in quite other way. For selected tonic & scale it will show you a range of values (0..100), you might program your single sound bank in sequence with pitch knob to get all possible notes in the selected scale. You will need to know the default note of the sound bank loaded into your po and make sure this note is the same as your tonic note. Default pitch have the value equals to 50. -12 semitones pitch have the value equals to 10, +7 semitones pitch have the value equals to 74 e.t.c. Full list of pitch shifts could be found here:

-st value +/- semitones +st value
50 0 50
46 1 54
43 2 57
40 3 60
36 4 64
33 5 67
30 6 70
26 7 74
23 8 77
20 9 80
16 10 84
13 11 87
10 12 90
6 13 94
3 14 97
0 15 100

It is handy to use 2 apps launched with the same tonic & scale, but with different models, for example: po-32 & po-35. While pocket scale calc with po-35 model in use will show an actual scale and notes positions, another one with po-32 model will show pitch value you should set to your sound bank to get each note from the scale.

Screenshot 2022-10-09 at 20 24 12

Dependencies

Prior to run this application you need to install java to your computer.

Run

Executable jar (pocket-scale-calculator.jar) is already compiled and could be found at the root of the project. However, if you need to compile a new jar please build the project and run ./gradlew test jar command. New jar will be saved to the build/libs directory.

To start application please run java -jar %pocket-scale-calc.jar file location% from your terminal (for example: java -jar /Users/bilbo_bogdans/Git/pocket-scale-calculator/build/libs/pocket-scale-calculator.jar). MacOS users also might set their terminal profile to have a shortcut for the app (please check 'pocket-scale-calculator example.terminal' file at the root of the project) with specific window resolution & settings set. To use shared profile you need to fix jar file location for the CommandString key, first.

Arguments

You can use additional arguments for starting the app with specific options:

  1. tonic note (default is A)
  2. scale (default is Minor)
  3. snap off hanger(y/n) (default is n)
  4. PO model UI(32/33/35/128) (default is 33)
  5. PO scale(major/minor/blues/arab) (default is Minor, option is applicable for PO-32 & PO-35/137 models only)

For example, starting the app with 'f majpe y 35 maj' arguments will start app with F Major Pentatonic setting, missing hanger option, PO-35 model UI and Major PO-35 device scale setting. Please make sure you separate arguments with space button.

Commands

  • "", "help", "tutorial", "description" - print help section
  • "options", "preferences" - access options menu
  • "scales", "list" - print full list of supported scales & shortcuts section
  • "about", "info" - print additional app info section
  • "exit", "quit", "off", "terminate" - exit app

That's it, have fun with your POs and never miss the right scale:-)

pocket-scale-calculator's People

Contributors

nikitabogdan avatar

Stargazers

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

Watchers

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