Giter VIP home page Giter VIP logo

modality-toolkit's People

Contributors

adcxyz avatar bgola avatar bhabbestad avatar colinsullivan avatar dhmlgit avatar elgiano avatar geoffroymontel avatar jcarey0000 avatar joehalliwell avatar lfsaw avatar madskjeldgaard avatar miguel-negrao avatar mlang avatar patrickdupuis avatar redfrik avatar sensestage avatar superpeachman avatar tapage avatar telephon avatar timblechmann avatar weego avatar woutersnoei avatar

Stargazers

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

modality-toolkit's Issues

clean up help files

These helpfiles are out of date:

  • FuncChain.schelp
  • MDispatch.schelp
  • MKtl.schelp
  • MKtlElement.schelp
  • PKtl.schelp
  • String.ext.schelp

Some helpfiles are for classes that don't exist

  • MBasicElement.schelp -> MAbstractElement.schelp

convert MKtldesc files to JSON

a = "%/%".format(MKtl.deviceDescriptionFolder, MKtl.allDevDescs[\istage][\file]).load;

a.asCompileString
b = a.asCompileString.replace(
    "'",
    "\""
)
.replace(
    "(",
    "{"
)
.replace(
    ")",
    "}"
)
a
b.parseJson.postcs;

Deal with MIDI devices that appear as two separate devices

MIDIMKtl('sprc0', 8454149, 8454144); // SuperCollider
MIDIMKtl('cncn2000', 1310720, 1310720); // iCON iControls V2.00
MIDIMKtl('mdth0', 917504, 917504); // Midi Through
MIDIMKtl('cncn2001', 1310721, nil); // iCON iControls V2.00
MIDIMKtl('sprc1', 8454150, 8454145); // SuperCollider
MIDIMKtl('syst0', 0, nil); // System
MIDIMKtl('syst1', 1, nil); // System

icon iControls appears has two devices. Possibly midi out is on the second one... have to investigate

create and maintain user-manageable description folder

This should be a folder in the user's home in which she can put custom desc.scd files.
Files in this folder possibly overwrite files in the generic folder.
If an overwrite happens, the system should warn about it.
Should be accessible by a method similar to Meta_MKtl:deviceDescriptionFolder

Jeffs "simple" MPD18 use case (JNCv2)

The MPD18 has 16 Buttons and a slider.

  • [Sound Buttons] Buttons 1-3 are mapped to adsr enveloped sound sources.
    • By pushing them down sound turns on; releasing: sound off.
  • the Slider sets amplitude (or pitch) for the (sound)source of the currently depressed button.
  • [Memory Slots] Buttons 5-16 represent 'memory' positions (initially not mapped)
    • if sound is assigned (see below), sound is played when button depressed.
  • [Shift Button] Button 4 is a 'shift key'. When depressed
    1. Sound Buttons don't trigger any sound but select the active slot. This can be followed by
    2. depressing a Memory Slot button, which assigns the selected sound to that pad.
    3. if you release the shift key before assignment, nothing happens.
    4. assigning a copy to an already assigned memory slot replaces existing
    5. mute copy
      +[Sound Button then Shift button]
    6. Sound Button triggers sound
    7. depress Memory Slot button, assigning the sound to the pad, with sound

Variant

  • Several (up to three) sound buttons can be assigned to a memory slot
  • slider informs all sounds assigned to a memory slot

Further Variation

  • include velocity and aftertouch from pads
  • press shift button then memory slot (w/o pressing sound button) clears memory
  • play sound using 2 to 4 dim fan out w/ aftertouch and slider
    • slider no longer applies to amplitude
    • velocity to amplitude
  • button then shift.
    • shift starts to record control data from aftertouch
    • release shift to stop recording.
    • aftertouch recording (looped) is applied to that source for some param
    • double click shift key then sound source to remove recorded source param

Unstated dependency on the FP quark

Regardless of whether the Functional Programming Quark is installed or not, the Modality Toolkit invoke HideVar, a class provided by the FP quark, in the class MKtlElement

Jeffs "simple" MPD18 use case (JNCv2)

The MPD18 has 16 Buttons and a slider.

  • [Sound Buttons] Buttons 1-3 are mapped to adsr enveloped sound sources.
    • By pushing them down sound turns on; releasing: sound off.
  • the Slider sets amplitude (or pitch) for the (sound)source of the currently depressed button.
  • [Memory Slots] Buttons 5-16 represent 'memory' positions (initially not mapped)
    • if sound is assigned (see below), sound is played when button depressed.
  • [Shift Button] Button 4 is a 'shift key'. When depressed
    1. Sound Buttons don't trigger any sound but select the active slot. This can be followed by
    2. depressing a Memory Slot button, which assigns the selected sound to that pad.
    3. if you release the shift key before assignment, nothing happens.
    4. assigning a copy to an already assigned memory slot replaces existing

Variant

  • Several (up to three) sound buttons can be assigned to a memory slot
  • slider informs all sounds assigned to a memory slot

Further Variation

  • include velocity and aftertouch from pads
  • press shift button then memory slot (w/o pressing sound button) clears memory
  • play sound using 2 to 4 dim fan out w/ aftertouch and slider
    • slider no longer applies to amplitude
    • velocity to amplitude
  • button then shift.
    • shift starts to record control data from aftertouch
    • release shift to stop recording.
    • aftertouch recording (looped) is applied to that source for some param
    • double click shift key then sound source to remove recorded source param

Write use cases

Writing use cases in the issue tracker marked with the label "use case" (see on the right)

Use cases should include very simple as well as more complex real-world scenarios.

  • discover a device and use it as a mixer
  • soft paging of controllers
  • remapping of functionality

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.