Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem with MacOS #58

Open
raphaelquast opened this issue Apr 13, 2021 · 43 comments · May be fixed by #72
Open

problem with MacOS #58

raphaelquast opened this issue Apr 13, 2021 · 43 comments · May be fixed by #72
Labels
bug Something isn't working help wanted Extra attention is needed
Milestone

Comments

@raphaelquast
Copy link
Owner

initialization is not performed properly on some systems using MacOS + Ableton 10

  • still unclear where this problem comes from... (MIDI driver?, Ableton?, Python?, ...)

Any help on identifying problems of Beatstep_Q with MacOS + Ableton 10 is highly appreciated!

@raphaelquast raphaelquast added bug Something isn't working help wanted Extra attention is needed labels Apr 13, 2021
@teesloane
Copy link

teesloane commented May 11, 2021

Hi there!

I’m not having much luck getting the beatstep working with this script. I’m on Live 10 and Mac Big Sur. I’ve moved the script into the Midi Remote Scripts folder. When I boot up live and plug in the BeatStep, nothing seems to happen - it acts as a standard midi controller and I don’t seem to be able to access any of the 6 pages enabled by the remote script.

How can I help debug this? I have attached a section of the live log.txt file from the time I booted and setup the script.

Cheers!

Click here to view log.txt
2021-05-11T15:55:22.707341: info: #######################################
2021-05-11T15:55:22.707426: info: Started: Live 10.1.35 Build: 2021-03-04_a4cc5da58a
2021-05-11T15:55:22.707436: info: #######################################
2021-05-11T15:55:22.707443: info: Directories: Application Support: Check
2021-05-11T15:55:22.707450: info: Directories: Application Support: /Users/tees/Library/Application Support/Ableton/Live 10.1.35/
2021-05-11T15:55:22.707457: info: Directories: Documents: Check
2021-05-11T15:55:22.707464: info: Directories: Documents: /Applications/Ableton Live 10 Suite.app/Contents/LegalAndDocs/Docs/
2021-05-11T15:55:22.707471: info: Directories: Legal: Check
2021-05-11T15:55:22.707478: info: Directories: Legal: /Applications/Ableton Live 10 Suite.app/Contents/LegalAndDocs/Legal/
2021-05-11T15:55:22.707484: info: Directories: OS Desktop: Check
2021-05-11T15:55:22.707491: info: Directories: OS Desktop: /Users/tees/Desktop/
2021-05-11T15:55:22.707498: info: Directories: User Home: Check
2021-05-11T15:55:22.707506: info: Directories: User Home: /Users/tees/
2021-05-11T15:55:22.707513: info: Directories: Preferences: Check
2021-05-11T15:55:22.707520: info: Directories: Preferences: /Users/tees/Library/Preferences/Ableton/Live 10.1.35/
2021-05-11T15:55:22.707526: info: Directories: Crashlogs: Check
2021-05-11T15:55:22.707532: info: Directories: Crashlogs: /Users/tees/Library/Logs/DiagnosticReports/
2021-05-11T15:55:22.707539: info: Directories: Live Reports: Check
2021-05-11T15:55:22.707545: info: Directories: Live Reports: /Users/tees/Library/Application Support/Ableton/Live Reports/
2021-05-11T15:55:22.707553: info: Directories: Live Reports Temp: Check
2021-05-11T15:55:22.707565: info: Directories: Live Reports Temp: /Users/tees/Library/Application Support/Ableton/Live Reports/Temp/
2021-05-11T15:55:22.707577: info: Directories: Usage: Check
2021-05-11T15:55:22.707588: info: Directories: Usage: /Users/tees/Library/Application Support/Ableton/Live Reports/Usage/
2021-05-11T15:55:22.838814: info: : UUID: B3E60C3F-701F-37CF-824F-6E75453AA60E
2021-05-11T15:55:22.838848: info: Init: Version: 'Live 10.1.35 Build: 2021-03-04_a4cc5da58a' 1048885
2021-05-11T15:55:22.838861: info: Init: BuildRevisions: a4cc5da58a12b2430753133883a25ad12aa979b7
2021-05-11T15:55:22.838869: info: Init: Commit ID: 'a4cc5da58a12b2430753133883a25ad12aa979b7'
2021-05-11T15:55:22.838878: info: Init: OS: 'Mac OS X version 11.2.1, Arch:x86-64'
2021-05-11T15:55:22.838885: info: Init: BuildType: 'Release'
2021-05-11T15:55:22.838901: info: Init: Pid: 2310
2021-05-11T15:55:22.838920: info: Init: Hardware Model: 'MacBookPro15,4'
2021-05-11T15:55:22.838933: info: Init: CPU Brand String: 'Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz'
2021-05-11T15:55:22.838942: info: Init: CPU Count: 8
2021-05-11T15:55:22.838952: info: Init: Physical RAM: 17179869184 B
2021-05-11T15:55:22.838959: info: Init: Address Space: 18446744073709551615 B
2021-05-11T15:55:22.838965: info: Init: 64-bit Edition
2021-05-11T15:55:22.839338: info: Init: GraphicsDevice: 'Intel Iris Plus Graphics 645'
2021-05-11T15:55:22.839399: info: Init: GraphicsDevice: 'Intel Iris Plus Graphics 645'
2021-05-11T15:55:22.982921: info: Init: Checksum 1: a34cba17f2b432f37384db18fc692196
2021-05-11T15:55:23.072154: info: Init: Checksum 2: 0f3c8d66454af8774eafd0339763f851
2021-05-11T15:55:23.163426: info: Init: Checksum 3: 0f3c8d66454af8774eafd0339763f851
2021-05-11T15:55:23.171161: info: Licensing: [Variant=Suite]
2021-05-11T15:55:23.171492: info: Metadata: Initialize XMP system
2021-05-11T15:55:23.171764: info: Net: Setting up connection framework
2021-05-11T15:55:23.175438: info: Licensing: Licenses loaded: 
  [ProductId=0x02, ProductVersion=0xA0, DistributionType=KStandard]
  [ProductId=0xB4, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x64, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x62, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x85, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x60, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x87, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x63, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x40, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x41, ProductVersion=0x10, DistributionType=KStandard]
  [ProductId=0x61, ProductVersion=0x10, DistributionType=KStandard]
2021-05-11T15:55:23.175471: info: Licensing: Use server: https://services.ableton.com
2021-05-11T15:55:23.218618: info: Init: Screen at +0+0: 1440x900, scale 2
2021-05-11T15:55:23.218651: info: Init: Screen at +-2560+-272: 2560x1440, scale 1
2021-05-11T15:55:23.278299: info: FileLimit: Maximum number of files was : 256 (err: 0)
2021-05-11T15:55:23.278344: info: FileLimit: Tried to set maximum number of files to : 8192 (err: 0)
2021-05-11T15:55:23.278353: info: FileLimit: Maximum number of files now : 8192 (err: 0)
2021-05-11T15:55:23.278361: info: Init LanguageManager
2021-05-11T15:55:23.278579: info: MemoryUsage: V: 5 , R: 161.2 , P: 0 
2021-05-11T15:55:23.924637: info: Init Menu
2021-05-11T15:55:23.924751: info: Run event loop
2021-05-11T15:55:23.942995: info: Begin building application
2021-05-11T15:55:23.945152: info: Create App
2021-05-11T15:55:23.959444: info: Register main window
2021-05-11T15:55:23.959473: info: Check for other instance
2021-05-11T15:55:23.967000: info: Init App
2021-05-11T15:55:23.967032: info: Live App: Init usage data writer
2021-05-11T15:55:23.968410: info: Live App: Begin Init
2021-05-11T15:55:23.968423: info: Live App: Start as first instance: yes
2021-05-11T15:55:23.968546: info: Database: Loading database from /Users/tees/Library/Application Support/Ableton/Live Database/Live-files-36.db
2021-05-11T15:55:23.968587: info: Database: Open file: '/Users/tees/Library/Application Support/Ableton/Live Database/Live-files-36.db'
2021-05-11T15:55:23.993588: info: Default App: Begin InitApplication
2021-05-11T15:55:24.076628: info: Metal: Using Intel(R) Iris(TM) Plus Graphics 645.
  GPU feature set support:
    Family1_v1:              true
    Family1_v2:              true
    Family1_v3:              true
    Family1_v4:              true
    Family2_v1:              true
    ReadWriteTextureTier2:   false
2021-05-11T15:55:24.088043: info: Default App: Begin LoadPrefs
2021-05-11T15:55:24.088647: info: VuMeter: Use default. MeterUpdateRate = 40
2021-05-11T15:55:24.088675: info: Audio In Out: Constructor started
2021-05-11T15:55:24.088704: info: Audio In Out: Constructor finished
2021-05-11T15:55:24.116981: info: CoreAudio: Init was successful. Device:External Headphones (0 In, 2 Out)
2021-05-11T15:55:24.117305: info: CoreAudio: Init was successful. Device:MacBook Pro Microphone (1 In, 0 Out)
2021-05-11T15:55:24.118404: info: CoreAudio: Init was successful. Device:DELL U2719DC (0 In, 2 Out)
2021-05-11T15:55:24.119809: info: CoreAudio: Init was successful. Device:BlackHole 2ch (2 In, 2 Out)
2021-05-11T15:55:24.120139: info: CoreAudio: Init was successful. Device:MacBook Pro Speakers (0 In, 2 Out)
2021-05-11T15:55:24.120412: info: CoreAudio: Init was successful. Device:Multi-Output Device (0 In, 2 Out)
2021-05-11T15:55:24.120438: info: Audio In Out: OnArchitecturesAdded started
2021-05-11T15:55:24.120469: info: Audio In Out: OnArchitecturesAdded finished
2021-05-11T15:55:27.414313: info: LMidiIO: Start EnumerateDevices
2021-05-11T15:55:27.415112: info: LMidiIO: End EnumerateDevices
2021-05-11T15:55:27.418198: info: Audio In Out: Init started
2021-05-11T15:55:27.419117: info: Audio In Out: Init finished
2021-05-11T15:55:27.419172: info: LSongAgent: Begin Constructing
2021-05-11T15:55:27.421325: info: InstallPropellerheadDlls: REX Shared Library.bundle (kLocalDomain) is already installed and up to date, no action required
2021-05-11T15:55:27.421661: info: InstallPropellerheadDlls: REX Shared Library.bundle (kUserDomain) is already installed and up to date, no action required
2021-05-11T15:55:27.422030: info: InstallPropellerheadDlls: ReWire.bundle (kLocalDomain) is already installed and up to date, no action required
2021-05-11T15:55:27.422250: info: InstallPropellerheadDlls: ReWire.bundle (kUserDomain) is already installed and up to date, no action required
2021-05-11T15:55:27.425930: info: SDeleteAlias: ran helper tool: /bin/rm -f /Library/Application Support/Ableton Live Engine   status: 0
2021-05-11T15:55:27.426371: info: InstallPropellerheadDlls: /Library/Application Support/Propellerhead Software/ReWire/Ableton Live Engine_64 is already installed and up to date, no action required
2021-05-11T15:55:27.429204: info: SDeleteAlias: ran helper tool: /bin/rm -f /Users/tees/Library/Application Support/Ableton Live Engine   status: 0
2021-05-11T15:55:27.429609: info: InstallPropellerheadDlls: /Users/tees/Library/Application Support/Propellerhead Software/ReWire/Ableton Live Engine_64 is already installed and up to date, no action required
2021-05-11T15:55:27.429630: info: ReWire: ReWireMaster Open
2021-05-11T15:55:27.538402: info: LSongAgent: Constructing: ReWire master
2021-05-11T15:55:27.548691: info: LSongAgent: End Constructing
2021-05-11T15:55:27.548770: info: MemoryUsage: V: 5.2 GB, R: 241.2 MB, P: 0 Bytes
2021-05-11T15:55:27.551478: info: Audio In Out: AfterRead started
2021-05-11T15:55:27.551526: info: Audio In Out: AfterRead finished
2021-05-11T15:55:27.551618: info: MidiDeviceManager: Start OpenAllActivatedDevices
2021-05-11T15:55:27.552584: info: MidiDeviceManager: End OpenAllActivatedDevices
2021-05-11T15:55:27.553203: info: ALivePreferences: Begin AfterPreferencesLoaded
2021-05-11T15:55:27.553230: info: ALivePreferences: Session cookie?: yes
2021-05-11T15:55:27.565737: info: Directories: Core Library Slice dir: [/Applications/Ableton Live 10 Suite.app/Contents/App-Resources/Core Library/] 
2021-05-11T15:55:27.565967: info: Directories: Core Library Slice: Check
2021-05-11T15:55:27.566002: info: Directories: Core Library Slice: /Applications/Ableton Live 10 Suite.app/Contents/App-Resources/Core Library/
2021-05-11T15:55:27.566039: info: Directories: Presets: Check
2021-05-11T15:55:27.566050: info: Directories: Presets: Not set
2021-05-11T15:55:27.566123: info: PluginManager: Scan start ------------------
2021-05-11T15:55:27.566655: info: PluginManager: Scan end --------------------
2021-05-11T15:55:27.566750: info: ALivePreferences: End AfterPreferencesLoaded
2021-05-11T15:55:27.566772: info: Default App: End LoadPrefs
2021-05-11T15:55:27.596402: info: Default App: Performing pre-document setup...
2021-05-11T15:55:27.648800: info: MemoryUsage: V: 5.8 GB, R: 246 MB, P: 0 Bytes
2021-05-11T15:55:28.938765: info: LiveUi: AddControlled...
2021-05-11T15:55:29.000185: info: LiveUi: AddControlled: done.
2021-05-11T15:55:29.000222: info: Default App: Checking whether to restore the document...
2021-05-11T15:55:29.000293: info: Default App: Begin OnNew
2021-05-11T15:55:29.001340: info: Default App: TryToLoadTemplate: Default document exists. Going to load 'DefaultLiveSet.als'
2021-05-11T15:55:29.012407: info: Default App: Begin ExchangeDocument
2021-05-11T15:55:29.012457: info: MemoryUsage: V: 5.8 GB, R: 251.5 MB, P: 0 Bytes
2021-05-11T15:55:29.066573: info: LSongAgent: Begin SetSongUnit
2021-05-11T15:55:29.066611: info: Audio In Out: Start started
2021-05-11T15:55:29.066625: info: Audio In Out: Internal Start started
2021-05-11T15:55:29.071506: info: Audio In Out: Begin of UpdateAudioStateStatic 
2021-05-11T15:55:29.074236: info: Audio In Out: Driver Type: CoreAudio
2021-05-11T15:55:29.074276: info: Audio In Out: Input Device: MacBook Pro Microphone (1 In, 0 Out)
2021-05-11T15:55:29.074287: info: Audio In Out: Output Device: External Headphones (0 In, 2 Out)
2021-05-11T15:55:29.074302: info: Audio In Out: Input Channels: 2
2021-05-11T15:55:29.074312: info: Audio In Out: Output Channels: 2
2021-05-11T15:55:29.074322: info: Audio In Out: Sample Rate: 44100
2021-05-11T15:55:29.074331: info: Audio In Out: Input Buffer Size: 512 Samples
2021-05-11T15:55:29.074341: info: Audio In Out: Input Latency: 0.00 ms
2021-05-11T15:55:29.074349: info: Audio In Out: Output Buffer Size: 512 Samples
2021-05-11T15:55:29.074451: info: Audio In Out: Output Latency: 14.6 ms
2021-05-11T15:55:29.074602: info: Audio In Out: Output Latency (with buffering): 14.6 ms
2021-05-11T15:55:29.074707: info: Audio In Out: Driver Error Compensation (ms): 0.00 ms
2021-05-11T15:55:29.074723: info: Audio In Out: Overall Latency: 26.2 ms
2021-05-11T15:55:29.074814: info: Audio In Out: End of UpdateAudioStateStatic 
2021-05-11T15:55:29.230846: info: Audio In Out: Internal Start finished
2021-05-11T15:55:29.230953: info: Audio In Out: Start finished
2021-05-11T15:55:29.231361: info: LSongAgent: End SetSongUnit
2021-05-11T15:55:29.254971: info: Audio time allocations: AudioBuffer: Capacity/Used/Failures: 1000/0/0
2021-05-11T15:55:29.255064: info: Audio time allocations: AudioBuffer: Capacity/Used/Failures: 1956/0/0
2021-05-11T15:55:29.266465: info: MemoryUsage: V: 5.9 GB, R: 287.1 MB, P: 0 Bytes
2021-05-11T15:55:29.280300: info: AMidiIO: Midi Remote Scripts: 
  MidiRemoteScript 1 [Control Surface="Beatstep_Q" Input="None" Output="None"]
  MidiRemoteScript 2 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 3 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 4 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 5 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 6 [Control Surface="None" Input="None" Output="None"]
2021-05-11T15:55:29.280321: info: AMidiIO: Takeover Mode: None
2021-05-11T15:55:29.280394: info: AMidiIO: Midi Devices: 
  MidiInDevice [Name="Computer Keyboard", Track=true, Sync=false, Remote=false, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
2021-05-11T15:55:29.280415: info: Default App: End ExchangeDocument
2021-05-11T15:55:29.280434: info: MemoryUsage: V: 5.9 GB, R: 287.4 MB, P: 0 Bytes
2021-05-11T15:55:29.280607: info: Loading document "/Applications/Ableton Live 10 Suite.app/Contents/App-Resources/Versions/DefaultLiveSet.als"
2021-05-11T15:55:29.304309: info: Loaded document was created by Ableton Live 10.1d1
2021-05-11T15:55:29.304339: info: Default App: Begin ExchangeDocument
2021-05-11T15:55:29.304363: info: MemoryUsage: V: 5.9 GB, R: 293.8 MB, P: 0 Bytes
2021-05-11T15:55:29.335133: info: LSongAgent: Begin SetSongUnit
2021-05-11T15:55:29.336250: info: LSongAgent: End SetSongUnit
2021-05-11T15:55:29.347237: info: Audio time allocations: Large Sysex Events: Capacity/Used/Failures: 7/0/0
2021-05-11T15:55:29.347309: info: Audio time allocations: Medium Sysex Events: Capacity/Used/Failures: 1985/0/0
2021-05-11T15:55:29.347345: info: Audio time allocations: Small Sysex Events: Capacity/Used/Failures: 13107/0/0
2021-05-11T15:55:29.347377: info: Audio time allocations: Max Remote Automation Events: Capacity/Used/Failures: 5041/0/0
2021-05-11T15:55:29.347410: info: Audio time allocations: Max Device Automation Events: Capacity/Used/Failures: 3196/0/0
2021-05-11T15:55:29.347442: info: Audio time allocations: Max Device Midi Events: Capacity/Used/Failures: 7710/0/0
2021-05-11T15:55:29.359474: info: Audio time allocations: Midi Delay: Capacity/Used/Failures: 26214/0/0
2021-05-11T15:55:29.359532: info: Audio time allocations: EventBuffering: Capacity/Used/Failures: 21845/19/0
2021-05-11T15:55:29.376329: info: LSongAgent: Begin SetSongUnit
2021-05-11T15:55:29.376511: info: LSongAgent: End SetSongUnit
2021-05-11T15:55:29.387776: info: Audio time allocations: Parameter Compensate Delay: Capacity/Used/Failures: 524288/0/0
2021-05-11T15:55:30.008061: info: AMidiIO: Midi Remote Scripts: 
  MidiRemoteScript 1 [Control Surface="Beatstep_Q" Input="None" Output="None"]
  MidiRemoteScript 2 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 3 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 4 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 5 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 6 [Control Surface="None" Input="None" Output="None"]
2021-05-11T15:55:30.008084: info: AMidiIO: Takeover Mode: None
2021-05-11T15:55:30.008162: info: AMidiIO: Midi Devices: 
  MidiInDevice [Name="Computer Keyboard", Track=true, Sync=false, Remote=false, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
2021-05-11T15:55:30.103477: info: MemoryUsage: V: 5.9 GB, R: 328.7 MB, P: 0 Bytes
2021-05-11T15:55:30.114354: info: Default App: End ExchangeDocument
2021-05-11T15:55:30.114403: info: MemoryUsage: V: 5.9 GB, R: 328.7 MB, P: 0 Bytes
2021-05-11T15:55:30.118399: info: Default App: End InitApplication
2021-05-11T15:55:30.118488: info: Live App: End Init
2021-05-11T15:55:30.311096: info: Finish building application
2021-05-11T15:55:30.364786: info: Performance: Startup hook 'CloseSplashScreen': Running time: 2 ms
2021-05-11T15:55:30.381360: info: Performance: Startup hook 'OpenSecondWindowOnStartup': Running time: 0 ms
2021-05-11T15:55:30.402529: info: WebConnectStarter: Starting up
2021-05-11T15:55:30.404240: info: ExternalSubProcess: Going to start:Ableton Web Connector
2021-05-11T15:55:30.405276: info: ExternalSubProcess: Started with pid: 2315
2021-05-11T15:55:30.405310: info: Performance: Startup hook 'StartWebConnector': Running time: 3 ms
2021-05-11T15:55:30.421433: info: Performance: Startup hook 'WriteUsageData': Running time: 0 ms
2021-05-11T15:55:30.473191: info: ExternalSubProcess: Going to start:Ableton Index
2021-05-11T15:55:30.474136: info: ExternalSubProcess: Started with pid: 2316
2021-05-11T15:55:30.474178: info: SubProcess: Set process priority 2 for pid 2316
2021-05-11T15:55:30.474205: info: Performance: Startup hook 'StartIndex': Running time: 3 ms
2021-05-11T15:55:30.511703: info: Licensing: Applying startup configuration: 02, IsDemo=false
2021-05-11T15:55:30.521266: info: MemoryUsage: V: 6 GB, R: 397.2 MB, P: 0 Bytes
2021-05-11T15:55:30.524020: info: Performance: Startup hook 'CheckRegistrationAppStartupHook': Running time: 32 ms
2021-05-11T15:55:30.553501: info: Performance: Startup hook 'FileSystemEndUpdate': Running time: 0 ms
2021-05-11T15:55:30.563993: info: Link: Disabled
2021-05-11T15:55:31.155240: info: Max: Version 8.1.10 (f1acba9)
2021-05-11T15:55:31.156710: info: Performance: Startup hook 'SetupMaxApp': Running time: 569 ms
2021-05-11T15:55:31.156802: info: MemoryUsage: V: 6 GB, R: 445.5 MB, P: 0 Bytes
2021-05-11T15:55:31.794974: info: Live App: Check for default content
2021-05-11T15:55:31.795532: info: Performance: Startup hook 'DefaultPackInstallationAppStartupHook': Running time: 1 ms
2021-05-11T15:55:31.801559: info: Live App: Check for package installation
2021-05-11T15:55:31.801610: info: Performance: Startup hook 'UserTriggeredPackInstallationAppStartupHook': Running time: 0 ms
2021-05-11T15:55:31.823010: info: Performance: Startup hook 'RegisterProjectChangedListener': Running time: 0 ms
2021-05-11T15:55:31.841615: info: Live App: Check lesson init
2021-05-11T15:55:31.859975: info: Performance: Startup hook 'ShowLessonAppStartupHook': Running time: 18 ms
2021-05-11T15:55:31.872362: info: Performance: Startup hook 'InitializeContentLibrary': Running time: 0 ms
2021-05-11T15:55:31.912906: info: Performance: Startup hook 'StartLibraryRescan': Running time: 0 ms
2021-05-11T15:55:31.923710: info: Performance: Startup hook 'FetchDownloadablePackListFromWeb': Running time: 0 ms
2021-05-11T15:55:31.942893: info: Performance: Startup hook 'EndAuthorizationSession': Running time: 0 ms
2021-05-11T15:55:32.413860: info: Python: INFO:_Framework.ControlSurface:413 - LOG: (BeatStep_Q) Initializing...
2021-05-11T15:55:32.413921: info: RemoteScriptMessage: (BeatStep_Q) Initializing...
2021-05-11T15:55:32.422075: info: Python: INFO:_Framework.ControlSurface:422 - LOG: (BeatStep_Q) Initializing...
2021-05-11T15:55:32.422121: info: RemoteScriptMessage: (BeatStep_Q) Initializing...
2021-05-11T15:55:32.450200: info: Performance: Startup hook 'EnableMidiRemoteScriptManager': Running time: 489 ms
2021-05-11T15:55:32.482122: info: MemoryUsage: V: 6.5 GB, R: 506 MB, P: 0 Bytes
2021-05-11T15:55:46.752606: info: MidiDeviceManager: Start CloseAllActivatedDevices
2021-05-11T15:55:46.752680: info: MidiDeviceManager: End CloseAllActivatedDevices
2021-05-11T15:55:46.752698: info: LMidiIO: Start EnumerateDevices
2021-05-11T15:55:46.754803: info: LMidiIO: End EnumerateDevices
2021-05-11T15:55:46.754886: info: MidiDeviceManager: Start OpenAllActivatedDevices
2021-05-11T15:55:46.757261: info: MidiDeviceManager: End OpenAllActivatedDevices
2021-05-11T15:55:46.764292: info: AMidiIO: Midi Remote Scripts: 
  MidiRemoteScript 1 [Control Surface="Beatstep_Q" Input="Arturia BeatStep" Output="Arturia BeatStep"]
  MidiRemoteScript 2 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 3 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 4 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 5 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 6 [Control Surface="None" Input="None" Output="None"]
2021-05-11T15:55:46.764319: info: AMidiIO: Takeover Mode: None
2021-05-11T15:55:46.764461: info: AMidiIO: Midi Devices: 
  MidiInDevice [Name="Arturia BeatStep", Track=true, Sync=false, Remote=true, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
  MidiInDevice [Name="Computer Keyboard", Track=true, Sync=false, Remote=false, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
  MidiOutDevice [Name="Arturia BeatStep", Track=true, Sync=false, Remote=true, MIDI Clock Sync Delay=0, MIDI Clock Type="Song"]
2021-05-11T15:56:54.569809: info: Default App: Begin SavePrefs
2021-05-11T15:56:54.582285: info: Default App: End SavePrefs
2021-05-11T15:56:54.582475: info: AMidiIO: Midi Remote Scripts: 
  MidiRemoteScript 1 [Control Surface="Beatstep_Q" Input="Arturia BeatStep" Output="Arturia BeatStep"]
  MidiRemoteScript 2 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 3 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 4 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 5 [Control Surface="None" Input="None" Output="None"]
  MidiRemoteScript 6 [Control Surface="None" Input="None" Output="None"]
2021-05-11T15:56:54.582488: info: AMidiIO: Takeover Mode: None
2021-05-11T15:56:54.582640: info: AMidiIO: Midi Devices: 
  MidiInDevice [Name="Arturia BeatStep", Track=true, Sync=false, Remote=true, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
  MidiInDevice [Name="Computer Keyboard", Track=true, Sync=false, Remote=false, MIDI Clock Sync Delay=0, Sync Type="MIDI Clock", MTC Frame Rate="All", MTC Start Offset=0]
  MidiOutDevice [Name="Arturia BeatStep", Track=true, Sync=false, Remote=true, MIDI Clock Sync Delay=0, MIDI Clock Type="Song"]

@raphaelquast
Copy link
Owner Author

Hey,
thanks for reaching out!
I have been trying to get to the source of this problem for quite some time now... but unfortunately I don't own a Mac myself so it's quite difficult to track down where the problem occurs. (especially since there's no problem on Windows at all)

Here's what I found so far (via quick tests on Mac's from other people):

  • reproduced the issue on a "new" Mac with Ableton 10
    • after plugin, the script is accessed and the startup-sequence seems to be called properly (e.g. top row starts lighting up red and then blue) but somehow it does not succeed... some buttons remain lit and nothing works as expected
  • unable to reproduce the issue on an "old" Mac with Ableton 9 (all worked as expected here) > very puzzling...
    • this could mean that the problem is actually related to the MIDI driver or the Ableton version?

Right now I have no clue where or why the error occurs.... and without a Mac at hand I'm also not really sure how to proceed debugging this... (but if you are actually willing to help, I'm certainly willing to spend some time to get to the bottom of this!)

Do you know how to work with python?

If yes, my first step would be to check if the MIDI sysex-messages that are used to communicate with the controller are sent properly if Ableton is not involved at all... e.g.:

  • using some python-library like mido together with the BeatStep_Q script to send the sysex-messages to the controller
  • monitoring if the commands have the desired effect via a midi-monitoring tool

(I could prepare the scripts that perform the tasks, but you'd need to deal with running them... )

Another thing would be to check if there's actually a difference when using Ableton 9 / 10 .

e.g. install Ableton 9 and check if the script works
... this would narrow down the issue quite a bit

Cheers, Raphael

@teesloane
Copy link

Hey, thanks for the quick response. I'd love to try and help out. I'm testing out a beatstep for a month, so maybe we'll be able to figure it out before I return it if I don't buy it.

I have some familiarity with python, and can definitely run some scripts. I took a look through the library a bit, but am not familiar with Ableton's APIs. Can you advise to get started executing the scripts outside of ableton (/ with a tool like mido?). Otherwise, I'll try and poke around when I have free time. Aside - I don't own Ableton 9 (I upgraded directly from 8 -> 10).

@raphaelquast
Copy link
Owner Author

Hey, awesome! Then let's give this a try!

  • I can prepare some lines of code over the weekend that show you how you can use mido to control your Beatstep with python!

The first thing I would like to check is if the setup of button- and encoder behaviours works on MacOS without Ableton involved.
(not sure if this will lead to anything already, but we have to start somewhere... so let's check the basic functionalities first 😄 )

... to be more clear, I want to test if the functionalities of QSetup.py work on MacOS
(they definitely should since it's just about sending MIDI sysex messages, but since the initialization-step of the BeatStep_Q script does not succeed, the problem might be already somewhere in there)

Thanks a lot for helping out!
Let's hope we get to the bottom of this quickly! (and if not you'll at least get a good impression of what you can really do with your beatstep during the process...)

By the way... you can get any previous version of Ableton if you log in at ableton.com and go to "Download-Archive"

@teesloane
Copy link

Sounds good! I have tried downloading Live 9 but the beatstep did not work as intended either. So perhaps this is something specific to being on a Mac in general.

@raphaelquast
Copy link
Owner Author

thanks for trying out! ....well that again adds to the confusion... I still can't see a reason why the script would work on an old MacBook with Ableton 9 but not on a new one...

I've prepared a gist that shows how you can change the behavior of BeatStep's buttons & encoders via python:

first you need to install mido and rtmidi (https://github.com/mido/mido)

When you run the script you'll get a class object x which you can use to send various commands to the controller,

for example:

x.set_B_color(5, 1)

will set the color of button 5 to "red" (e.g. 1)

x.set_B_color(5, 0)

will turn the LED off again

I've added several commands in the script so you can see whats possible.
(unfortunately I've not added much documentation... but there's an overview of the functions at the top of QSetup.py )

What I would like to know is if all those commands to what they are supposed to do...

  • first all buttons should light up (one after the other) in red, blue & magenta
  • then the buttons should show the behaviour indicated in the comments of the script

Let me know if this is clear to you or if you need further help to test this!

@teesloane
Copy link

Thanks for creating the script. I managed to get it working, but I had to make these changes:

# didn't work:
# setup I/O for the BeatStep controller
# x = beatstep_io(outport='Arturia BeatStep 1',
#                 inport='Arturia BeatStep 0')

                
# works:
x = beatstep_io(outport='Arturia BeatStep',
                inport='Arturia BeatStep')

@raphaelquast
Copy link
Owner Author

Hey, well that's good news! 😄
It is not surprising that the MIDI-port names are different... that was expected.

Does this also mean that all settings had the desired effects? e.g.:

  • button LED's have been turned on & off
  • the button-behaviours can be changed with the corresponding functions

@teesloane
Copy link

teesloane commented May 18, 2021

Great! I tested every button and knob and this is the output of it.

controller output
0 note_on channel=0 note=44 velocity=25 time=0
1 note_off channel=0 note=44 velocity=0 time=0
2 note_on channel=0 note=45 velocity=25 time=0
3 polytouch channel=0 note=45 value=1 time=0
4 polytouch channel=0 note=45 value=116 time=0
5 polytouch channel=0 note=45 value=115 time=0
6 polytouch channel=0 note=45 value=114 time=0
7 polytouch channel=0 note=45 value=113 time=0
8 polytouch channel=0 note=45 value=112 time=0
9 polytouch channel=0 note=45 value=111 time=0
10 polytouch channel=0 note=45 value=110 time=0
11 polytouch channel=0 note=45 value=109 time=0
12 polytouch channel=0 note=45 value=108 time=0
13 polytouch channel=0 note=45 value=109 time=0
14 polytouch channel=0 note=45 value=110 time=0
15 polytouch channel=0 note=45 value=111 time=0
16 polytouch channel=0 note=45 value=112 time=0
17 polytouch channel=0 note=45 value=113 time=0
18 polytouch channel=0 note=45 value=114 time=0
19 polytouch channel=0 note=45 value=113 time=0
20 polytouch channel=0 note=45 value=112 time=0
21 polytouch channel=0 note=45 value=110 time=0
22 polytouch channel=0 note=45 value=108 time=0
23 polytouch channel=0 note=45 value=106 time=0
24 polytouch channel=0 note=45 value=103 time=0
25 polytouch channel=0 note=45 value=99 time=0
26 polytouch channel=0 note=45 value=95 time=0
27 polytouch channel=0 note=45 value=90 time=0
28 polytouch channel=0 note=45 value=86 time=0
29 polytouch channel=0 note=45 value=83 time=0
30 polytouch channel=0 note=45 value=79 time=0
31 polytouch channel=0 note=45 value=76 time=0
32 polytouch channel=0 note=45 value=67 time=0
33 polytouch channel=0 note=45 value=49 time=0
34 polytouch channel=0 note=45 value=27 time=0
35 polytouch channel=0 note=45 value=4 time=0
36 polytouch channel=0 note=45 value=1 time=0
37 note_off channel=0 note=45 velocity=0 time=0
38 note_on channel=0 note=46 velocity=98 time=0
39 polytouch channel=0 note=46 value=124 time=0
40 polytouch channel=0 note=46 value=123 time=0
41 polytouch channel=0 note=46 value=122 time=0
42 polytouch channel=0 note=46 value=118 time=0
43 polytouch channel=0 note=46 value=114 time=0
44 polytouch channel=0 note=46 value=108 time=0
45 polytouch channel=0 note=46 value=105 time=0
46 polytouch channel=0 note=46 value=100 time=0
47 polytouch channel=0 note=46 value=98 time=0
48 polytouch channel=0 note=46 value=96 time=0
49 polytouch channel=0 note=46 value=94 time=0
50 polytouch channel=0 note=46 value=92 time=0
51 polytouch channel=0 note=46 value=90 time=0
52 polytouch channel=0 note=46 value=86 time=0
53 polytouch channel=0 note=46 value=81 time=0
54 polytouch channel=0 note=46 value=78 time=0
55 polytouch channel=0 note=46 value=71 time=0
56 polytouch channel=0 note=46 value=63 time=0
57 polytouch channel=0 note=46 value=56 time=0
58 polytouch channel=0 note=46 value=42 time=0
59 polytouch channel=0 note=46 value=25 time=0
60 polytouch channel=0 note=46 value=2 time=0
61 polytouch channel=0 note=46 value=1 time=0
62 note_off channel=0 note=46 velocity=0 time=0
63 sysex data=(127,127,6,47) time=0
64 note_on channel=0 note=48 velocity=117 time=0
65 polytouch channel=0 note=48 value=124 time=0
66 polytouch channel=0 note=48 value=123 time=0
67 polytouch channel=0 note=48 value=122 time=0
68 polytouch channel=0 note=48 value=121 time=0
69 polytouch channel=0 note=48 value=120 time=0
70 polytouch channel=0 note=48 value=119 time=0
71 polytouch channel=0 note=48 value=118 time=0
72 polytouch channel=0 note=48 value=116 time=0
73 polytouch channel=0 note=48 value=114 time=0
74 polytouch channel=0 note=48 value=111 time=0
75 polytouch channel=0 note=48 value=109 time=0
76 polytouch channel=0 note=48 value=106 time=0
77 polytouch channel=0 note=48 value=104 time=0
78 polytouch channel=0 note=48 value=101 time=0
79 polytouch channel=0 note=48 value=98 time=0
80 polytouch channel=0 note=48 value=95 time=0
81 polytouch channel=0 note=48 value=86 time=0
82 polytouch channel=0 note=48 value=73 time=0
83 polytouch channel=0 note=48 value=62 time=0
84 polytouch channel=0 note=48 value=44 time=0
85 polytouch channel=0 note=48 value=27 time=0
86 polytouch channel=0 note=48 value=10 time=0
87 polytouch channel=0 note=48 value=1 time=0
88 note_off channel=0 note=48 velocity=0 time=0
89 note_on channel=0 note=49 velocity=94 time=0
90 polytouch channel=0 note=49 value=90 time=0
91 polytouch channel=0 note=49 value=89 time=0
92 polytouch channel=0 note=49 value=87 time=0
93 polytouch channel=0 note=49 value=83 time=0
94 polytouch channel=0 note=49 value=77 time=0
95 polytouch channel=0 note=49 value=67 time=0
96 polytouch channel=0 note=49 value=56 time=0
97 polytouch channel=0 note=49 value=37 time=0
98 polytouch channel=0 note=49 value=18 time=0
99 polytouch channel=0 note=49 value=1 time=0
100 note_off channel=0 note=49 velocity=0 time=0
101 note_on channel=0 note=49 velocity=109 time=0
102 polytouch channel=0 note=49 value=127 time=0
103 polytouch channel=0 note=49 value=126 time=0
104 polytouch channel=0 note=49 value=125 time=0
105 polytouch channel=0 note=49 value=124 time=0
106 polytouch channel=0 note=49 value=123 time=0
107 polytouch channel=0 note=49 value=122 time=0
108 polytouch channel=0 note=49 value=120 time=0
109 polytouch channel=0 note=49 value=118 time=0
110 polytouch channel=0 note=49 value=116 time=0
111 polytouch channel=0 note=49 value=114 time=0
112 polytouch channel=0 note=49 value=113 time=0
113 polytouch channel=0 note=49 value=112 time=0
114 polytouch channel=0 note=49 value=109 time=0
115 polytouch channel=0 note=49 value=106 time=0
116 polytouch channel=0 note=49 value=104 time=0
117 polytouch channel=0 note=49 value=102 time=0
118 polytouch channel=0 note=49 value=100 time=0
119 polytouch channel=0 note=49 value=97 time=0
120 polytouch channel=0 note=49 value=91 time=0
121 polytouch channel=0 note=49 value=81 time=0
122 polytouch channel=0 note=49 value=69 time=0
123 polytouch channel=0 note=49 value=47 time=0
124 polytouch channel=0 note=49 value=20 time=0
125 polytouch channel=0 note=49 value=1 time=0
126 note_off channel=0 note=49 velocity=0 time=0
127 note_on channel=0 note=50 velocity=81 time=0
128 polytouch channel=0 note=50 value=114 time=0
129 polytouch channel=0 note=50 value=113 time=0
130 polytouch channel=0 note=50 value=112 time=0
131 polytouch channel=0 note=50 value=111 time=0
132 polytouch channel=0 note=50 value=112 time=0
133 polytouch channel=0 note=50 value=111 time=0
134 polytouch channel=0 note=50 value=110 time=0
135 polytouch channel=0 note=50 value=109 time=0
136 polytouch channel=0 note=50 value=108 time=0
137 polytouch channel=0 note=50 value=107 time=0
138 polytouch channel=0 note=50 value=106 time=0
139 polytouch channel=0 note=50 value=104 time=0
140 polytouch channel=0 note=50 value=103 time=0
141 polytouch channel=0 note=50 value=101 time=0
142 polytouch channel=0 note=50 value=99 time=0
143 polytouch channel=0 note=50 value=97 time=0
144 polytouch channel=0 note=50 value=95 time=0
145 polytouch channel=0 note=50 value=93 time=0
146 polytouch channel=0 note=50 value=91 time=0
147 polytouch channel=0 note=50 value=86 time=0
148 polytouch channel=0 note=50 value=79 time=0
149 polytouch channel=0 note=50 value=72 time=0
150 polytouch channel=0 note=50 value=68 time=0
151 polytouch channel=0 note=50 value=66 time=0
152 polytouch channel=0 note=50 value=64 time=0
153 polytouch channel=0 note=50 value=62 time=0
154 polytouch channel=0 note=50 value=60 time=0
155 polytouch channel=0 note=50 value=58 time=0
156 polytouch channel=0 note=50 value=55 time=0
157 polytouch channel=0 note=50 value=47 time=0
158 polytouch channel=0 note=50 value=25 time=0
159 polytouch channel=0 note=50 value=1 time=0
160 note_off channel=0 note=50 velocity=0 time=0
161 note_on channel=8 note=51 velocity=92 time=0
162 polytouch channel=8 note=51 value=127 time=0
163 polytouch channel=8 note=51 value=126 time=0
164 polytouch channel=8 note=51 value=125 time=0
165 polytouch channel=8 note=51 value=124 time=0
166 polytouch channel=8 note=51 value=123 time=0
167 polytouch channel=8 note=51 value=122 time=0
168 polytouch channel=8 note=51 value=121 time=0
169 polytouch channel=8 note=51 value=120 time=0
170 polytouch channel=8 note=51 value=119 time=0
171 polytouch channel=8 note=51 value=118 time=0
172 polytouch channel=8 note=51 value=117 time=0
173 polytouch channel=8 note=51 value=116 time=0
174 polytouch channel=8 note=51 value=115 time=0
175 polytouch channel=8 note=51 value=113 time=0
176 polytouch channel=8 note=51 value=112 time=0
177 polytouch channel=8 note=51 value=111 time=0
178 polytouch channel=8 note=51 value=109 time=0
179 polytouch channel=8 note=51 value=108 time=0
180 polytouch channel=8 note=51 value=107 time=0
181 polytouch channel=8 note=51 value=106 time=0
182 polytouch channel=8 note=51 value=103 time=0
183 polytouch channel=8 note=51 value=100 time=0
184 polytouch channel=8 note=51 value=98 time=0
185 polytouch channel=8 note=51 value=94 time=0
186 polytouch channel=8 note=51 value=91 time=0
187 polytouch channel=8 note=51 value=86 time=0
188 polytouch channel=8 note=51 value=83 time=0
189 polytouch channel=8 note=51 value=80 time=0
190 polytouch channel=8 note=51 value=79 time=0
191 polytouch channel=8 note=51 value=76 time=0
192 polytouch channel=8 note=51 value=73 time=0
193 polytouch channel=8 note=51 value=66 time=0
194 polytouch channel=8 note=51 value=52 time=0
195 polytouch channel=8 note=51 value=38 time=0
196 polytouch channel=8 note=51 value=23 time=0
197 polytouch channel=8 note=51 value=1 time=0
198 note_off channel=8 note=51 velocity=0 time=0
199 note_on channel=0 note=36 velocity=104 time=0
200 polytouch channel=0 note=36 value=127 time=0
201 polytouch channel=0 note=36 value=126 time=0
202 polytouch channel=0 note=36 value=125 time=0
203 polytouch channel=0 note=36 value=124 time=0
204 polytouch channel=0 note=36 value=123 time=0
205 polytouch channel=0 note=36 value=122 time=0
206 polytouch channel=0 note=36 value=120 time=0
207 polytouch channel=0 note=36 value=119 time=0
208 polytouch channel=0 note=36 value=118 time=0
209 polytouch channel=0 note=36 value=117 time=0
210 polytouch channel=0 note=36 value=116 time=0
211 polytouch channel=0 note=36 value=115 time=0
212 polytouch channel=0 note=36 value=114 time=0
213 polytouch channel=0 note=36 value=113 time=0
214 polytouch channel=0 note=36 value=112 time=0
215 polytouch channel=0 note=36 value=110 time=0
216 polytouch channel=0 note=36 value=108 time=0
217 polytouch channel=0 note=36 value=106 time=0
218 polytouch channel=0 note=36 value=104 time=0
219 polytouch channel=0 note=36 value=102 time=0
220 polytouch channel=0 note=36 value=101 time=0
221 polytouch channel=0 note=36 value=99 time=0
222 polytouch channel=0 note=36 value=97 time=0
223 polytouch channel=0 note=36 value=94 time=0
224 polytouch channel=0 note=36 value=88 time=0
225 polytouch channel=0 note=36 value=84 time=0
226 polytouch channel=0 note=36 value=81 time=0
227 polytouch channel=0 note=36 value=75 time=0
228 polytouch channel=0 note=36 value=68 time=0
229 polytouch channel=0 note=36 value=62 time=0
230 polytouch channel=0 note=36 value=56 time=0
231 polytouch channel=0 note=36 value=50 time=0
232 polytouch channel=0 note=36 value=35 time=0
233 polytouch channel=0 note=36 value=17 time=0
234 polytouch channel=0 note=36 value=1 time=0
235 note_off channel=0 note=36 velocity=0 time=0
236 note_on channel=0 note=37 velocity=97 time=0
237 polytouch channel=0 note=37 value=118 time=0
238 polytouch channel=0 note=37 value=117 time=0
239 polytouch channel=0 note=37 value=116 time=0
240 polytouch channel=0 note=37 value=114 time=0
241 polytouch channel=0 note=37 value=113 time=0
242 polytouch channel=0 note=37 value=112 time=0
243 polytouch channel=0 note=37 value=111 time=0
244 polytouch channel=0 note=37 value=112 time=0
245 polytouch channel=0 note=37 value=113 time=0
246 polytouch channel=0 note=37 value=112 time=0
247 polytouch channel=0 note=37 value=113 time=0
248 polytouch channel=0 note=37 value=112 time=0
249 polytouch channel=0 note=37 value=111 time=0
250 polytouch channel=0 note=37 value=110 time=0
251 polytouch channel=0 note=37 value=109 time=0
252 polytouch channel=0 note=37 value=108 time=0
253 polytouch channel=0 note=37 value=106 time=0
254 polytouch channel=0 note=37 value=105 time=0
255 polytouch channel=0 note=37 value=102 time=0
256 polytouch channel=0 note=37 value=99 time=0
257 polytouch channel=0 note=37 value=96 time=0
258 polytouch channel=0 note=37 value=94 time=0
259 polytouch channel=0 note=37 value=92 time=0
260 polytouch channel=0 note=37 value=88 time=0
261 polytouch channel=0 note=37 value=84 time=0
262 polytouch channel=0 note=37 value=81 time=0
263 polytouch channel=0 note=37 value=78 time=0
264 polytouch channel=0 note=37 value=75 time=0
265 polytouch channel=0 note=37 value=69 time=0
266 polytouch channel=0 note=37 value=59 time=0
267 polytouch channel=0 note=37 value=51 time=0
268 polytouch channel=0 note=37 value=43 time=0
269 polytouch channel=0 note=37 value=32 time=0
270 polytouch channel=0 note=37 value=23 time=0
271 polytouch channel=0 note=37 value=14 time=0
272 polytouch channel=0 note=37 value=1 time=0
273 note_off channel=0 note=37 velocity=0 time=0
274 note_on channel=0 note=38 velocity=97 time=0
275 polytouch channel=0 note=38 value=127 time=0
276 polytouch channel=0 note=38 value=126 time=0
277 polytouch channel=0 note=38 value=125 time=0
278 polytouch channel=0 note=38 value=124 time=0
279 polytouch channel=0 note=38 value=123 time=0
280 polytouch channel=0 note=38 value=122 time=0
281 polytouch channel=0 note=38 value=120 time=0
282 polytouch channel=0 note=38 value=118 time=0
283 polytouch channel=0 note=38 value=117 time=0
284 polytouch channel=0 note=38 value=116 time=0
285 polytouch channel=0 note=38 value=115 time=0
286 polytouch channel=0 note=38 value=113 time=0
287 polytouch channel=0 note=38 value=109 time=0
288 polytouch channel=0 note=38 value=104 time=0
289 polytouch channel=0 note=38 value=94 time=0
290 polytouch channel=0 note=38 value=81 time=0
291 polytouch channel=0 note=38 value=72 time=0
292 polytouch channel=0 note=38 value=61 time=0
293 polytouch channel=0 note=38 value=51 time=0
294 polytouch channel=0 note=38 value=40 time=0
295 polytouch channel=0 note=38 value=14 time=0
296 polytouch channel=0 note=38 value=1 time=0
297 note_off channel=0 note=38 velocity=0 time=0
298 note_on channel=0 note=39 velocity=70 time=0
299 polytouch channel=0 note=39 value=122 time=0
300 polytouch channel=0 note=39 value=123 time=0
301 polytouch channel=0 note=39 value=124 time=0
302 polytouch channel=0 note=39 value=125 time=0
303 polytouch channel=0 note=39 value=126 time=0
304 polytouch channel=0 note=39 value=127 time=0
305 polytouch channel=0 note=39 value=126 time=0
306 polytouch channel=0 note=39 value=125 time=0
307 polytouch channel=0 note=39 value=122 time=0
308 polytouch channel=0 note=39 value=120 time=0
309 polytouch channel=0 note=39 value=118 time=0
310 polytouch channel=0 note=39 value=116 time=0
311 polytouch channel=0 note=39 value=114 time=0
312 polytouch channel=0 note=39 value=111 time=0
313 polytouch channel=0 note=39 value=110 time=0
314 polytouch channel=0 note=39 value=109 time=0
315 polytouch channel=0 note=39 value=107 time=0
316 polytouch channel=0 note=39 value=106 time=0
317 polytouch channel=0 note=39 value=104 time=0
318 polytouch channel=0 note=39 value=100 time=0
319 polytouch channel=0 note=39 value=97 time=0
320 polytouch channel=0 note=39 value=95 time=0
321 polytouch channel=0 note=39 value=92 time=0
322 polytouch channel=0 note=39 value=90 time=0
323 polytouch channel=0 note=39 value=86 time=0
324 polytouch channel=0 note=39 value=76 time=0
325 polytouch channel=0 note=39 value=70 time=0
326 polytouch channel=0 note=39 value=65 time=0
327 polytouch channel=0 note=39 value=60 time=0
328 polytouch channel=0 note=39 value=50 time=0
329 polytouch channel=0 note=39 value=40 time=0
330 polytouch channel=0 note=39 value=26 time=0
331 polytouch channel=0 note=39 value=1 time=0
332 note_off channel=0 note=39 velocity=0 time=0
333 note_on channel=0 note=40 velocity=104 time=0
334 polytouch channel=0 note=40 value=126 time=0
335 polytouch channel=0 note=40 value=125 time=0
336 polytouch channel=0 note=40 value=126 time=0
337 polytouch channel=0 note=40 value=127 time=0
338 polytouch channel=0 note=40 value=126 time=0
339 polytouch channel=0 note=40 value=125 time=0
340 polytouch channel=0 note=40 value=124 time=0
341 polytouch channel=0 note=40 value=123 time=0
342 polytouch channel=0 note=40 value=122 time=0
343 polytouch channel=0 note=40 value=121 time=0
344 polytouch channel=0 note=40 value=120 time=0
345 polytouch channel=0 note=40 value=119 time=0
346 polytouch channel=0 note=40 value=118 time=0
347 polytouch channel=0 note=40 value=116 time=0
348 polytouch channel=0 note=40 value=115 time=0
349 polytouch channel=0 note=40 value=114 time=0
350 polytouch channel=0 note=40 value=112 time=0
351 polytouch channel=0 note=40 value=110 time=0
352 polytouch channel=0 note=40 value=108 time=0
353 polytouch channel=0 note=40 value=104 time=0
354 polytouch channel=0 note=40 value=102 time=0
355 polytouch channel=0 note=40 value=100 time=0
356 polytouch channel=0 note=40 value=98 time=0
357 polytouch channel=0 note=40 value=97 time=0
358 polytouch channel=0 note=40 value=93 time=0
359 polytouch channel=0 note=40 value=84 time=0
360 polytouch channel=0 note=40 value=78 time=0
361 polytouch channel=0 note=40 value=68 time=0
362 polytouch channel=0 note=40 value=58 time=0
363 polytouch channel=0 note=40 value=48 time=0
364 polytouch channel=0 note=40 value=36 time=0
365 polytouch channel=0 note=40 value=9 time=0
366 polytouch channel=0 note=40 value=1 time=0
367 note_off channel=0 note=40 velocity=0 time=0
368 note_on channel=0 note=41 velocity=75 time=0
369 polytouch channel=0 note=41 value=110 time=0
370 polytouch channel=0 note=41 value=109 time=0
371 polytouch channel=0 note=41 value=108 time=0
372 polytouch channel=0 note=41 value=109 time=0
373 polytouch channel=0 note=41 value=110 time=0
374 polytouch channel=0 note=41 value=111 time=0
375 polytouch channel=0 note=41 value=113 time=0
376 polytouch channel=0 note=41 value=114 time=0
377 polytouch channel=0 note=41 value=115 time=0
378 polytouch channel=0 note=41 value=116 time=0
379 polytouch channel=0 note=41 value=117 time=0
380 polytouch channel=0 note=41 value=116 time=0
381 polytouch channel=0 note=41 value=115 time=0
382 polytouch channel=0 note=41 value=114 time=0
383 polytouch channel=0 note=41 value=112 time=0
384 polytouch channel=0 note=41 value=110 time=0
385 polytouch channel=0 note=41 value=109 time=0
386 polytouch channel=0 note=41 value=108 time=0
387 polytouch channel=0 note=41 value=107 time=0
388 polytouch channel=0 note=41 value=106 time=0
389 polytouch channel=0 note=41 value=104 time=0
390 polytouch channel=0 note=41 value=103 time=0
391 polytouch channel=0 note=41 value=102 time=0
392 polytouch channel=0 note=41 value=101 time=0
393 polytouch channel=0 note=41 value=100 time=0
394 polytouch channel=0 note=41 value=99 time=0
395 polytouch channel=0 note=41 value=98 time=0
396 polytouch channel=0 note=41 value=95 time=0
397 polytouch channel=0 note=41 value=92 time=0
398 polytouch channel=0 note=41 value=88 time=0
399 polytouch channel=0 note=41 value=83 time=0
400 polytouch channel=0 note=41 value=76 time=0
401 polytouch channel=0 note=41 value=64 time=0
402 polytouch channel=0 note=41 value=48 time=0
403 polytouch channel=0 note=41 value=37 time=0
404 polytouch channel=0 note=41 value=22 time=0
405 polytouch channel=0 note=41 value=2 time=0
406 polytouch channel=0 note=41 value=1 time=0
407 note_off channel=0 note=41 velocity=0 time=0
408 note_on channel=0 note=42 velocity=97 time=0
409 polytouch channel=0 note=42 value=118 time=0
410 polytouch channel=0 note=42 value=117 time=0
411 polytouch channel=0 note=42 value=115 time=0
412 polytouch channel=0 note=42 value=114 time=0
413 polytouch channel=0 note=42 value=115 time=0
414 polytouch channel=0 note=42 value=116 time=0
415 polytouch channel=0 note=42 value=117 time=0
416 polytouch channel=0 note=42 value=118 time=0
417 polytouch channel=0 note=42 value=119 time=0
418 polytouch channel=0 note=42 value=118 time=0
419 polytouch channel=0 note=42 value=117 time=0
420 polytouch channel=0 note=42 value=116 time=0
421 polytouch channel=0 note=42 value=115 time=0
422 polytouch channel=0 note=42 value=114 time=0
423 polytouch channel=0 note=42 value=113 time=0
424 polytouch channel=0 note=42 value=112 time=0
425 polytouch channel=0 note=42 value=110 time=0
426 polytouch channel=0 note=42 value=109 time=0
427 polytouch channel=0 note=42 value=108 time=0
428 polytouch channel=0 note=42 value=107 time=0
429 polytouch channel=0 note=42 value=105 time=0
430 polytouch channel=0 note=42 value=103 time=0
431 polytouch channel=0 note=42 value=101 time=0
432 polytouch channel=0 note=42 value=100 time=0
433 polytouch channel=0 note=42 value=97 time=0
434 polytouch channel=0 note=42 value=93 time=0
435 polytouch channel=0 note=42 value=89 time=0
436 polytouch channel=0 note=42 value=82 time=0
437 polytouch channel=0 note=42 value=74 time=0
438 polytouch channel=0 note=42 value=65 time=0
439 polytouch channel=0 note=42 value=57 time=0
440 polytouch channel=0 note=42 value=47 time=0
441 polytouch channel=0 note=42 value=38 time=0
442 polytouch channel=0 note=42 value=30 time=0
443 polytouch channel=0 note=42 value=19 time=0
444 polytouch channel=0 note=42 value=9 time=0
445 polytouch channel=0 note=42 value=1 time=0
446 note_off channel=0 note=42 velocity=0 time=0
447 note_on channel=0 note=43 velocity=91 time=0
448 polytouch channel=0 note=43 value=122 time=0
449 polytouch channel=0 note=43 value=121 time=0
450 polytouch channel=0 note=43 value=122 time=0
451 polytouch channel=0 note=43 value=123 time=0
452 polytouch channel=0 note=43 value=124 time=0
453 polytouch channel=0 note=43 value=123 time=0
454 polytouch channel=0 note=43 value=122 time=0
455 polytouch channel=0 note=43 value=121 time=0
456 polytouch channel=0 note=43 value=120 time=0
457 polytouch channel=0 note=43 value=119 time=0
458 polytouch channel=0 note=43 value=118 time=0
459 polytouch channel=0 note=43 value=117 time=0
460 polytouch channel=0 note=43 value=114 time=0
461 polytouch channel=0 note=43 value=113 time=0
462 polytouch channel=0 note=43 value=112 time=0
463 polytouch channel=0 note=43 value=111 time=0
464 polytouch channel=0 note=43 value=110 time=0
465 polytouch channel=0 note=43 value=108 time=0
466 polytouch channel=0 note=43 value=107 time=0
467 polytouch channel=0 note=43 value=106 time=0
468 polytouch channel=0 note=43 value=104 time=0
469 polytouch channel=0 note=43 value=103 time=0
470 polytouch channel=0 note=43 value=101 time=0
471 polytouch channel=0 note=43 value=99 time=0
472 polytouch channel=0 note=43 value=98 time=0
473 polytouch channel=0 note=43 value=96 time=0
474 polytouch channel=0 note=43 value=94 time=0
475 polytouch channel=0 note=43 value=92 time=0
476 polytouch channel=0 note=43 value=88 time=0
477 polytouch channel=0 note=43 value=84 time=0
478 polytouch channel=0 note=43 value=82 time=0
479 polytouch channel=0 note=43 value=79 time=0
480 polytouch channel=0 note=43 value=74 time=0
481 polytouch channel=0 note=43 value=68 time=0
482 polytouch channel=0 note=43 value=59 time=0
483 polytouch channel=0 note=43 value=46 time=0
484 polytouch channel=0 note=43 value=36 time=0
485 polytouch channel=0 note=43 value=19 time=0
486 polytouch channel=0 note=43 value=1 time=0
487 note_off channel=0 note=43 velocity=0 time=0
488 control_change channel=0 control=10 value=105 time=0
489 control_change channel=0 control=10 value=114 time=0
490 control_change channel=0 control=10 value=115 time=0
491 control_change channel=0 control=10 value=116 time=0
492 control_change channel=0 control=10 value=117 time=0
493 control_change channel=0 control=10 value=118 time=0
494 control_change channel=0 control=10 value=119 time=0
495 control_change channel=0 control=10 value=120 time=0
496 control_change channel=0 control=74 value=127 time=0
497 control_change channel=0 control=74 value=126 time=0
498 control_change channel=0 control=74 value=125 time=0
499 control_change channel=0 control=74 value=124 time=0
500 control_change channel=0 control=74 value=123 time=0
501 control_change channel=0 control=74 value=122 time=0
502 control_change channel=0 control=74 value=121 time=0
503 control_change channel=0 control=74 value=120 time=0
504 control_change channel=0 control=74 value=119 time=0
505 control_change channel=0 control=71 value=72 time=0
506 control_change channel=0 control=71 value=73 time=0
507 control_change channel=0 control=71 value=74 time=0
508 control_change channel=0 control=71 value=75 time=0
509 control_change channel=0 control=71 value=76 time=0
510 control_change channel=0 control=71 value=77 time=0
511 control_change channel=0 control=71 value=78 time=0
512 control_change channel=0 control=71 value=79 time=0
513 control_change channel=0 control=71 value=80 time=0
514 control_change channel=0 control=71 value=81 time=0
515 control_change channel=0 control=71 value=82 time=0
516 control_change channel=0 control=71 value=83 time=0
517 control_change channel=0 control=71 value=84 time=0
518 control_change channel=0 control=71 value=85 time=0
519 control_change channel=0 control=76 value=17 time=0
520 control_change channel=0 control=76 value=17 time=0
521 control_change channel=0 control=76 value=17 time=0
522 control_change channel=0 control=76 value=17 time=0
523 control_change channel=0 control=76 value=17 time=0
524 control_change channel=0 control=76 value=17 time=0
525 control_change channel=0 control=76 value=17 time=0
526 control_change channel=0 control=76 value=17 time=0
527 control_change channel=0 control=76 value=17 time=0
528 control_change channel=0 control=76 value=17 time=0
529 control_change channel=0 control=76 value=17 time=0
530 control_change channel=0 control=76 value=17 time=0
531 control_change channel=0 control=76 value=17 time=0
532 control_change channel=0 control=76 value=17 time=0
533 control_change channel=0 control=77 value=69 time=0
534 control_change channel=0 control=77 value=70 time=0
535 control_change channel=0 control=77 value=71 time=0
536 control_change channel=0 control=77 value=72 time=0
537 control_change channel=0 control=77 value=73 time=0
538 control_change channel=0 control=77 value=74 time=0
539 control_change channel=0 control=77 value=75 time=0
540 control_change channel=0 control=77 value=76 time=0
541 control_change channel=0 control=77 value=77 time=0
542 control_change channel=0 control=93 value=65 time=0
543 control_change channel=0 control=93 value=66 time=0
544 control_change channel=0 control=93 value=67 time=0
545 control_change channel=0 control=93 value=68 time=0
546 control_change channel=0 control=93 value=69 time=0
547 control_change channel=0 control=93 value=70 time=0
548 control_change channel=0 control=93 value=71 time=0
549 control_change channel=0 control=93 value=72 time=0
550 control_change channel=0 control=73 value=65 time=0
551 control_change channel=0 control=73 value=66 time=0
552 control_change channel=0 control=73 value=67 time=0
553 control_change channel=0 control=73 value=68 time=0
554 control_change channel=0 control=73 value=69 time=0
555 control_change channel=0 control=73 value=70 time=0
556 control_change channel=0 control=73 value=71 time=0
557 control_change channel=0 control=75 value=65 time=0
558 control_change channel=0 control=75 value=66 time=0
559 control_change channel=0 control=75 value=67 time=0
560 control_change channel=0 control=75 value=68 time=0
561 control_change channel=0 control=75 value=69 time=0
562 control_change channel=0 control=75 value=70 time=0
563 control_change channel=0 control=75 value=71 time=0
564 control_change channel=0 control=75 value=72 time=0
565 control_change channel=0 control=75 value=73 time=0
566 control_change channel=0 control=114 value=67 time=0
567 control_change channel=0 control=114 value=68 time=0
568 control_change channel=0 control=114 value=69 time=0
569 control_change channel=0 control=114 value=70 time=0
570 control_change channel=0 control=114 value=71 time=0
571 control_change channel=0 control=114 value=72 time=0
572 control_change channel=0 control=114 value=73 time=0
573 control_change channel=0 control=114 value=74 time=0
574 control_change channel=0 control=114 value=75 time=0
575 control_change channel=0 control=114 value=76 time=0
576 control_change channel=0 control=18 value=68 time=0
577 control_change channel=0 control=18 value=69 time=0
578 control_change channel=0 control=18 value=70 time=0
579 control_change channel=0 control=18 value=71 time=0
580 control_change channel=0 control=18 value=72 time=0
581 control_change channel=0 control=18 value=73 time=0
582 control_change channel=0 control=18 value=74 time=0
583 control_change channel=0 control=18 value=75 time=0
584 control_change channel=0 control=18 value=76 time=0
585 control_change channel=0 control=18 value=77 time=0
586 control_change channel=0 control=19 value=66 time=0
587 control_change channel=0 control=19 value=67 time=0
588 control_change channel=0 control=19 value=68 time=0
589 control_change channel=0 control=19 value=69 time=0
590 control_change channel=0 control=19 value=70 time=0
591 control_change channel=0 control=19 value=71 time=0
592 control_change channel=0 control=19 value=72 time=0
593 control_change channel=0 control=16 value=67 time=0
594 control_change channel=0 control=16 value=66 time=0
595 control_change channel=0 control=16 value=65 time=0
596 control_change channel=0 control=16 value=64 time=0
597 control_change channel=0 control=19 value=73 time=0
598 control_change channel=0 control=16 value=97 time=0
599 control_change channel=0 control=16 value=127 time=0
600 control_change channel=0 control=17 value=65 time=0
601 control_change channel=0 control=17 value=66 time=0
602 control_change channel=0 control=17 value=67 time=0
603 control_change channel=0 control=17 value=68 time=0
604 control_change channel=0 control=17 value=69 time=0
605 control_change channel=0 control=17 value=70 time=0
606 control_change channel=0 control=17 value=71 time=0
607 control_change channel=0 control=17 value=72 time=0
608 control_change channel=0 control=91 value=65 time=0
609 control_change channel=0 control=91 value=66 time=0
610 control_change channel=0 control=91 value=67 time=0
611 control_change channel=0 control=91 value=68 time=0
612 control_change channel=0 control=91 value=69 time=0
613 control_change channel=0 control=91 value=70 time=0
614 control_change channel=0 control=91 value=71 time=0
615 control_change channel=0 control=79 value=65 time=0
616 control_change channel=0 control=79 value=66 time=0
617 control_change channel=0 control=79 value=67 time=0
618 control_change channel=0 control=79 value=68 time=0
619 control_change channel=0 control=79 value=69 time=0
620 control_change channel=0 control=79 value=70 time=0
621 control_change channel=0 control=79 value=71 time=0
622 control_change channel=0 control=79 value=72 time=0
623 control_change channel=0 control=72 value=65 time=0
624 control_change channel=0 control=72 value=66 time=0
625 control_change channel=0 control=72 value=67 time=0
626 control_change channel=0 control=72 value=68 time=0
627 control_change channel=0 control=72 value=69 time=0
628 control_change channel=0 control=72 value=70 time=0
629 control_change channel=0 control=72 value=71 time=0
630 control_change channel=0 control=7 value=101 time=0
631 control_change channel=0 control=7 value=102 time=0
632 control_change channel=0 control=7 value=103 time=0
633 control_change channel=0 control=7 value=104 time=0
634 control_change channel=0 control=7 value=105 time=0
635 control_change channel=0 control=7 value=106 time=0
636 control_change channel=0 control=7 value=107 time=0

From my reading of your script, lines such as this:

# set button 1 to "toggle" behaviour
x.set_B_behaviour(1, 0)

should be making it so that when button 1 is pressed it simply turns on and stays on, which is not the case when I tested the beatstep.

@raphaelquast
Copy link
Owner Author

Thanks for testing! From the log it's pretty clear that the settings didn't work...
...looks like we're on the right track !

Did the LED's work?
e.g.

# turn button 1 red
x.set_B_color(1, 1)

I'll think about why this does not work on a Mac and hopefully come up with a new plan soon 😅

@teesloane
Copy link

teesloane commented May 18, 2021

This is quite strange. After testing changing a custom colour as you suggested above, pad one and pad 5 seem to be set to "toggle" mode. Perhaps I need to install some arturia software to set the beatstep to some kind of default?

@raphaelquast
Copy link
Owner Author

well, I've started expecting strange results with this issue... but you are right, this is indeed unexpected...
(especially the fact that the behaviour of multiple buttons is changing with a single command)

in general you should not need to use any Arturia-software to initialize a default config since the script
is actually doing just that... it sends a set of midi-sysex messages that are supposed to do the job just
as arturia's MIDIControlCenter does

QSsetup.py is basically just a library of the sysex-codes that perform the tasks, e.g.

QSetup().set_B_color(1, 1)
>>> (240, 0, 32, 107, 127, 66, 2, 0, 16, 112, 1, 247)

What puzzles me is the fact that those codes do not seem to work on particular MacOS versions.
I don't really get why... after all the very same controller would work equally well on Windows where
the messages are working just fine.

For now i see several ways to go:

  • As a first start, you could install Arturia's MidiControlCenter.... (check here: https://www.arturia.com/beatstep/resources)
    with this it is possible to identify at least some of the required sysex-codes and we can check if they are in fact different

    • after installation, plug in your beatstep and click the "sync" button on the top left

      • ... you can also check if you're on the latest firmware-version (it's 1.2.0.3 on my side)
    • then go to > view > MIDI console to get a console that shows the messages that are sent and received while you change the settings

    • now (in the MidiControlCenter) click on button 1 and then change one of "mode", "option", "channel", or "note" and check the sent sysex-message code.

    • repeat the process for at least button 2 & 3 so that we can identify the pattern of the messages

    • report your messages (and what setting you have changed) and I'll compare it with what I get on windows

  • If that's not going anywhere, I'll try to contact Arturia's technical support
    (there's not really an officiall support for hacking the Beatstep like that, but they have been helpful before...
    maybe they know what's going on here and are willing to shed some light on how to fix it...)

@teesloane
Copy link

Awesome - thanks for the detailed comments. Here are the results of following your steps:


  1. Pressing sync.
    There was a lot of output here: see below:
There was a lot of output here; Click to view:
Out:  F0  7E  7F  06  01  F7  |  Sysex
 In:  F0  7E  00  06  02  00  20  6B  02  00  06  00  03  00  02  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  00  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  00  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  00  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  00  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  0A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  0A  15  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0A  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  70  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  70  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  70  2C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  70  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  70  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  70  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  70  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  71  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  71  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  71  2D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  71  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  71  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  71  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  71  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  72  2E  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  72  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  72  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  72  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  72  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  73  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  73  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  73  2F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  73  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  73  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  73  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  73  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  74  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  74  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  74  30  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  74  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  74  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  74  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  74  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  75  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  75  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  75  31  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  75  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  75  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  75  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  75  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  76  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  76  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  76  32  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  76  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  76  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  76  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  76  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  77  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  77  08  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  77  33  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  77  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  77  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  77  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  77  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  0B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  0B  15  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0B  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  78  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  78  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  78  24  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  78  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  78  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  78  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  78  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  79  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  79  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  79  25  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  79  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  79  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  79  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  79  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7A  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7A  26  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7A  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7B  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7B  27  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7B  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7C  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7C  28  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7C  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7D  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7D  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7D  29  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7D  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7E  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7E  2A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7E  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  7F  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  7F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  7F  2B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  7F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  7F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  7F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  7F  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  0C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  0C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0C  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0D  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0E  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  0F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  0F  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  0F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  0F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  01  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  01  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  01  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  01  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  01  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  01  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  02  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  02  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  02  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  02  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  02  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  02  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  20  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  20  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  20  0A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  20  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  20  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  20  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  20  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  21  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  21  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  21  4A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  21  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  21  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  21  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  21  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  22  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  22  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  22  47  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  22  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  22  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  22  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  22  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  23  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  23  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  23  4C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  23  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  23  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  23  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  23  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  24  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  24  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  24  4D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  24  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  24  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  24  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  24  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  25  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  25  5D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  25  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  25  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  26  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  26  49  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  26  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  26  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  27  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  27  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  27  4B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  27  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  27  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  27  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  27  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  41  03  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  41  03  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  03  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  03  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  03  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  03  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  03  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  03  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  28  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  28  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  28  72  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  28  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  28  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  28  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  28  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  29  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  29  12  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  29  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  29  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2A  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2A  13  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2A  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2B  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2B  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2B  10  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2B  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2C  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2C  11  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2C  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2C  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2D  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2D  5B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2D  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2E  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2E  4F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2E  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  2F  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  2F  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  2F  48  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  2F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  2F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  2F  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  2F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  30  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  30  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  30  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  30  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  41  04  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  41  04  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  04  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  04  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  04  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  04  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  04  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  04  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  05  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  05  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  05  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  05  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  05  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  05  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  40  06  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  40  06  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  06  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  06  10  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  06  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  06  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  06  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  06  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  07  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  07  32  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  07  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  07  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  07  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  07  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  58  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  58  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  58  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  58  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  01  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  01  59  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  02  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  02  59  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  03  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  03  59  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  04  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  04  59  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  05  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  05  59  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  06  59  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  06  59  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  08  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  08  4C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  08  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  08  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  08  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  08  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  50  09  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  50  09  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  52  09  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  52  09  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  01  00  53  09  F7  |  Sysex
 In:  F0  00  20  6B  7F  42  02  00  53  09  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  00  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  00  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  0A  15  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0A  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  70  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  70  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  70  2C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  70  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  70  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  70  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  71  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  71  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  71  2D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  71  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  71  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  71  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  72  2E  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  72  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  72  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  72  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  73  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  73  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  73  2F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  73  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  73  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  73  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  74  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  74  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  74  30  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  74  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  74  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  74  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  75  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  75  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  75  31  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  75  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  75  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  75  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  76  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  76  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  76  32  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  76  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  76  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  76  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  77  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  77  08  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  77  33  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  77  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  77  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  77  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  0B  15  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0B  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  78  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  78  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  78  24  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  78  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  78  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  78  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  79  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  79  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  79  25  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  79  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  79  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  79  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7A  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7A  26  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7A  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7B  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7B  27  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7B  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7C  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7C  28  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7C  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7D  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7D  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7D  29  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7D  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7E  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7E  2A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7E  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  7F  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  7F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  7F  2B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  7F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  7F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  7F  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  0C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0C  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0D  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0E  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  0F  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  0F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  01  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  01  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  01  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  02  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  02  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  02  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  20  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  20  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  20  0A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  20  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  20  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  20  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  21  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  21  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  21  4A  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  21  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  21  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  21  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  22  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  22  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  22  47  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  22  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  22  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  22  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  23  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  23  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  23  4C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  23  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  23  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  23  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  24  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  24  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  24  4D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  24  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  24  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  24  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  25  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  25  5D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  25  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  25  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  26  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  26  49  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  26  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  26  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  27  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  27  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  27  4B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  27  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  27  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  27  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  41  03  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  03  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  03  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  03  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  28  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  28  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  28  72  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  28  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  28  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  28  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  29  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  29  12  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  29  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  29  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2A  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2A  13  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2A  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2A  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2B  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2B  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2B  10  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2B  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2B  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2C  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2C  11  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2C  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2C  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2C  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2D  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2D  5B  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2D  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2D  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2E  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2E  4F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2E  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2E  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  2F  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  2F  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  2F  48  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  2F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  2F  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  2F  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  30  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  30  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  30  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  30  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  41  04  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  04  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  04  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  04  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  05  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  05  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  05  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  40  06  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  06  10  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  06  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  06  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  07  32  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  07  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  07  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  58  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  58  02  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  58  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  58  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  59  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  59  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  59  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  59  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  59  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  59  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  08  4C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  08  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  08  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  50  09  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  52  09  3C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  53  09  7F  F7  |  Sysex
  1. I tapped pad one, then changed its channel from 1 to 2
 In:  90  2C  45  |  Ch 1 Note On  G#1
 In:  80  2C  00  |  Ch 1 Note Off G#1
Out:  F0  00  20  6B  7F  42  02  00  01  70  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  70  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  70  2C  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  70  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  70  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  70  01  F7  |  Sysex
 In:  91  2C  2F  |  Ch 2 Note On  G#1
 In:  81  2C  00  |  Ch 2 Note Off G#1
  1. I tapped pad two, changed it's mode to mmc, and then tapped it again:
 In:  99  2D  66  |  Ch 10 Note On  A1
In:  89  2D  00  |  Ch 10 Note Off A1
Out:  F0  00  20  6B  7F  42  02  00  01  71  07  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  71  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  71  2D  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  71  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  71  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  71  01  F7  |  Sysex
In:  F0  7F  7F  06  2D  F7  |  MMC 
  1. I tapped pad three, then changed it to a "Switche Control Mode" > "Toggle" - I noticed an undefined there.
 In:  99  2E  57  |  Ch 10 Note On  A#1
In:  89  2E  00  |  Ch 10 Note Off A#1
Out:  F0  00  20  6B  7F  42  02  00  01  72  08  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  72  2E  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  72  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  72  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  72  01  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  01  72  08  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  02  72  09  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  03  72  2E  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  04  72  00  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  05  72  7F  F7  |  Sysex
Out:  F0  00  20  6B  7F  42  02  00  06  72  00  F7  |  Sysex
In:  B9  2E  7F  |  Ch 10 CC 46 - Undefined

Hope this helps! I appreciate your prompt debugging help. I'll buy you a coffee :)

@raphaelquast
Copy link
Owner Author

Hey, Thanks for the coffee! I equally appreciate your quick responses!!

unfortunately we reached a dead end here... all messages are exactly as expected 😞
(the "undefined" is somewhat strange... but i have no clue what it means in this context)

... here's how to check it in case you're interested:
(this will reproduce the output of your first test, e.g. changing channel to 1

from QSetup import QSetup
Q = QSetup()

button = 1
setdict = {'mode': 9, 'channel': 1, 'cc': 44, 'off': 0, 'on': 127, 'behaviour': 1}

for what, val in setdict.items():
    print([i[2:].upper().zfill(2) for i in map(hex, getattr(Q, f"set_B_{what}")(button, val))])

so we're back to identifying why python seems to have problems sending MIDI sysex-messages...
It's really hard to come up with a plan on how to resolve this since I still don't know where the actual problem is happening.

I searched a bit if anyone had similar problems but there's not much info out there on this topic...
However, I still found this site that has an interesting MIDI Q/A for MacOS: www.noterepeat.com

some ideas that could be worth a try:

(I'm no Mac user so I guess you can judge the usability of the ideas better than me)

Troubleshooting USB MIDI devices on Mac

  • at the end of the page... "Testing to see if MIDI devices are transmitting data using MIDI Monitor"

    • using MIDI Monitor to check outgoing messages could be interesting to identify if there's actually a difference in the outgoing messages when using pyton + mido vs. using the MIDI ControlCenter...

    here's the official download for the MIDI Control Center: snoize.com/midimonitor

    there's also a tool called "SysEx Librarian" snoize.com/sysexlibrarian that we could use to check if the Sysex-messages work outside of the MIDI ControlCenter (it's written in "swift" so in this way we could circumvent any python-problems)

Mac OS X - Problems with MIDI devices after an update

  • not sure if this is relevant here... but it could be worth a try to rule out more general (MIDI driver-related) issues

Mac OS X - How to Re-Configure Your MIDI Studio

  • ... again not sure how relevant this is since I'm no Mac user... but they claim that this might help if
    • "MIDI device is recognized by the software but has limited or no response"

@teesloane
Copy link

Awesome - thanks for the resources. I will poke around the midi internals on mac. I wonder if something on Big Sur changed things, or perhaps a python version / dependency issue...? Anyway, I'm just guessing in the dark. If I come up with anything I will let you know!

@raphaelquast
Copy link
Owner Author

raphaelquast commented May 26, 2021

hey, did you have any luck with the MIDI Monitor tool?
(a python version conflict does not make sense since you tried both Ableton 9 which runs on python 2.7 and Ableton 10 which runs on python 3.6 or so...)

I digged a bit deeper and I'm more and more convinced that this might actually be a MacOS MIDI driver issue...
and the fact that a very simple python-script using mido already fails supports that as well...
(mido uses rtmidi (which itself goes back to OSX's own CoreMIDI API rtmidi-low-level APIs))

in 2014 somebody wrote on a related Java-problem: Send sysex message with Java

The reason SysEx messages were not sent is because OSX is has a broken MIDI system. It cannot send SysEx messages. MMJ seems to be a library to workaround this problem.

one might think that such problems are fixed 8 years later but you never know 😄

it is really strange that there is literally no info on sending sysex-messages on OSX aside of using existing software-tools....

right now the only option I see is to get in touch with either the rtmidi team GitHub - rtmidi
or the rtmidi-python bindings GitHub - python-rtmidi ... they might not solve our problem but they might give the right clues to what's going on here...

Since I don't own a Mac it does not make a lot of sense that I start such a discussion since I can not help debugging in any way... (however I'd be happy to join the discussion and help as much as i can to solve this! )

@raphaelquast
Copy link
Owner Author

raphaelquast commented May 26, 2021

OK... I got a final idea... maybe MacOS is simply choking on too many simultaneously sent sysex messages...

@teesloane can you try to use this branch hardware_setup
and then simply

  1. start Ableton
  2. plugin the BeatStep controller
  3. check if the button-LED's do the following:

the top-row buttons (one after the other) turns first red, then blue and then off

... it might happen that the LED response from BeatStep's internal initialization is interfering with the sequence...
so please also try to disable and enable BeatStep_Q as a control-surface... (with BeatStep plugged in!) ... e.g.:
BSQ_Mac_issue
...this should show the same sequence again...

(afterwards the script will NOT work! ... this is just a test if this could be the problem... i sincerely hope this is the problem 😄

@teesloane
Copy link

Hey - I I haven't tried the midi sysex stuff yet - but I will try and get to that before the weekend. I did try putting your branch into the midi remote scripts and followed your steps. I've attached a video of the results. Interestingly, when I plug the BS in it does it's normal sequence and nothing happens, but if I disable and enable the control surface, it seems to be lighting up in the manner you suggested.

telegram-cloud-document-1-5005903409916674615.mp4

@raphaelquast
Copy link
Owner Author

hey, awesome! 🥳 thanks again for the quick response!!
the behaviour in your video is exactly what I was hoping for...

if you look closely you see that the sequence is actually also running when you plug the controller in... it is just inter-mixed with BeatStep's startup sequence (which turns all buttons off all the time so you only see a faint blinking of the top row buttons)

I think now we're actually on the right track!
As I understand it, the problem is the following:

  • I send all sysex messages in one go to the controller, but after a certain number of messages MacOS gets them confused
    (either due to MIDI-driver, USB-driver or simply due to usb-connection issues)
  • A solution to this is to add an artificial delay to the sysex messages (some 0.001 seconds) and group them into smaller groups prior to transmission to give the messages enough time to be processed correctly
    • this will not affect standard MIDI messages so no delay for playing MIDI Notes!!

some ideas I found on the way why this might be happening:

  • usb can be too fast for MIDI... if the usb drivers don't take proper care, this seems to be a source of problems if there are too many sysex-messages to process (not sure about the internals here though...)
  • some claim that usb-hub`s can also be problematic in this case

I think we can skip the MIDI Monitor stuff for now and I will try to fully incorporate this way of sending the sysex messages for the startup-configuration and the layer-change mechanisms... (It'll require quite some changes so be patient 😄)
... I let you know once I have a working version ready for testing!

I am still not sure why the simple python script we tested did not do it's job... but from what I'm seeing here this seems to be a whole other problem... (after all Ableton is not using this approach but some C-instances that seem to do the job properly)

@teesloane
Copy link

teesloane commented May 27, 2021

Great! It sounds like this is moving in the right direction.

* some claim that usb-hub`s can also be problematic in this case

I am currently connecting the beatstep through my monitor, which has USB-A ports (my macbook only has usb-c) - I'm not sure if that counts as a usb-hub. I do not have a usb-mini to usb-c, so I can't test a connection directly to the macbook, unfortunately. Let me know when I can help with testing again. Thanks!

@raphaelquast
Copy link
Owner Author

raphaelquast commented May 27, 2021

well, I'm not sure about that... but it would not be the first problem I've encountered with usb-c....

anyway, a proper implementation that works on any connection would be a nice thing to have!

could you try the hardware_setup branch once more? (just added 1 tiny commit)
I've changed the way how I send the messages a bit and now the sequence is much longer, so before I continue implementing this I would like to confirm that it still works on your side as well...
Thanks!

@teesloane
Copy link

Sure thing. Here's me with the latest change from hardware_setup, plugging it in, removing the control surface and adding it back in.

2021-05-27.19.40.44.mp4

@raphaelquast raphaelquast linked a pull request May 28, 2021 that will close this issue
@raphaelquast
Copy link
Owner Author

Thanks!
hah, good that we checked again... seems like now we loose about half the messages on the way now...
(It was supposed to light up all buttons in red, blue and magenta)
...the good thing is that this kind of confirms my idea on the origin of the problem so I'm positive that this will work in the end!

If you don't mind I'd like to test the progress every now and then... to that I don't stumble upon pitfalls along the way...
I've opened a pull-request #72 to keep track of the progress (I'll let you know when there's a version that's worth testing!)

@teesloane
Copy link

Sounds good. I'll rent the beatstep for another month (should have it for another 45 days or so). Good luck - I'll keep an eye on the pull request, but feel free to ping me here if you need something tested!

@raphaelquast
Copy link
Owner Author

raphaelquast commented Jun 1, 2021

Hey, thanks for that! I really hope we get this running in the next month...
(there's a lot of other stuff to do as well but I try to keep on track in the evenings...)

I've tested several approaches for sending the messages but the general Tasks-module that is used for threading is so horrifyingly undocumented that I got annoyed (and somewhat lost) on the way... 😄
(while trying python's internal threading module I ran into some boost.python errors that tell me that this might not be the way to go...)

However I've now implemented a straight-forward "message-scheduling" approach that simply makes sure that there's a slight delay between all messages...
I've implemented it such that activating layers etc. should also work (if the method works on a Mac as well)
can you give #72 a try?

@raphaelquast raphaelquast added this to the v2.1 milestone Jun 1, 2021
@teesloane
Copy link

Hey!

I gave 72 (cloned the repo, checkedout the branch "hardware_setup") a try but didn't see much difference. I'm not totally sure how layer activation works, but based on the images in your readme, I tried activated the mix and launch by pressing shift + chan and shift + store respectively (tried to demonstrate this in the video). Let me know if I'm missing something. Good luck with the tasks module...sounds hairy.

telegram-cloud-document-1-5026301936182231505.mp4

@raphaelquast
Copy link
Owner Author

Damn, i really had my hopes up for this one...
It's very odd that no matter how the messages are sent every second message seems to get lost on the way...
(The code actually sends messages to turn every button LED on and off)
I'm away for the next couple if days but then i'll try to prepare a more thorough test to see if this has something to do with the delay of the messages or if there's something else causing this...

Thanks for continuing to test my ideas! (I still have no way to reproducethis on my pc so without you i would not be able to track this down... You definitely got yourself a place on the "thank you" list of the next release 😅

@nonfigment
Copy link

nonfigment commented Jul 31, 2021

Hey, guys! Big thanks to author and Teesloane for debugging attempts.

I've tested the scripts on MacOS Big Sur (11.4), with both Live 10 and Live 11.
Here's results of my attempts to bring BeatStep to Live with Beatstep_Q, hope this will help you some way:

the default Beatstep_Q scripts (master branch):

Live 11: initialization failed (no backlight for random number of pads during init), working inproperly.
Live 10 (v10.1.1): init success, all seems working good

I've gone a little further and made two separate branches to test with:

[TL;DR: It seems that Live 11 on MacOS have an issue with MIDI Remote Scripts itself. Live 11 dropping messages scheduled for the one tick, even if optimized=false parameter set. One tick is 0,2 seconds (if I'm not mistaken here), and sending one command per tick - is too slow for work. ]

branch 'setup sync':

Made indication working in parallel with the pads/encoder setup process, tried to add parameter optimized=false for delayed 'send_midi' calls according to Remote Scripts API documentation, to avoid commands dropping.

Live 11 working only with INDIVIDUAL_MESSAGE_DELAY set to 1, but setup/init process is too slow for normal workflow (you'll need to wait for 10 seconds every time you press 'Shift' button before you can use pads). If you change the delay (INDIVIDUAL_MESSAGE_DELAY) to smaller value, Live will ignore some of the commands (seen by gaps in pads backlight sequence). Probably, Live 11 dropping midi messages scheduled for one tick. Setting INDIVIDUAL_MESSAGE_DELAY to 0,5 made Live to drop a half of messages for pads/encoders setup (visible by the backlight missing for a 8 pads) as a result, only half of the encoders/pads worked. Scheduling messages/commands for another ticks is too slow for normal work.

In Live 10 the scripts working well; commands, scheduled for one tick executed at the same time, which is seen by pairwise switching on of the backlight on pads, while INDIVIDUAL_MESSAGE_DELAY set to 0,5. The value of 0,01 is better for more convenient workflow, as all the setup/init process executed nearly instantly. For live 11 such value made it ignore all the messages, but Live 10 working great.

branch 'optimized_false' :

All send_midi calls executing with the parameter 'optimized_false' to avoid messages dropping. Backlight sequence executed via schedule_message independently of pads/encoder setup.

Live 11: initialization sequence executed visually correct (no gaps in backlight, because it all set in other ticks), but pads working incorrect, 'Shift' mode activates only on second press of a button instead of button hold.
Live 10: initialization is correct and buttons works as supposed.

Hope, this helps somehow.
If you need more testing or info, feel free to reach me out :)

@raphaelquast
Copy link
Owner Author

raphaelquast commented Aug 3, 2021

@DTRS
Hey! Awesome! thanks a lot for your efforts!

Unfortunately I don't have a lot of time right now to work on this issue myself...
also I don't have access to a Mac, so it's quite impossible for me to pinpoint where the problem is coming from. (This also means that I can't really test your branches since so far any method of sending the messages seems to work just fine on Windows. )

...but I'm of course happy to provide any Ableton/python help I can give and I'd accept any pull-requests that help to get the script working on Mac + Ableton11

Do you have any Idea why Ableton11 is loosing MIDI messages on MacOS on the way?
(I can't seem to find any indication of what changed in the way MIDI messages are sent...)

Also I get from your comment that the script is working just fine on your Mac when using Ableton10 ?

@Acidity2012
Copy link

Hi! Any progress on the Mac side ? :-) Recently bought a beatstep and I'm trying out your scripts without success.
Big Sur 11.5.2 with Live 10.1.41.
Lights initialisation goes well but that's it. Some knobs are working but in a bad way. Need to turn left/right a lot of times to see something move.
Hope this nice project is still alive.

@raphaelquast
Copy link
Owner Author

Hi, unfortunately there has not been any progress on the MacOS side...

I tried my best, but so far I was unable to identify the actual cause of the problem on MacOS, and since I do not own a Mac myself debugging this is really hard... It seems that somehow MIDI messages get lost on the way but there's really no indication on why this is happening (and on Windows everything works just fine).

I'm happy to provide feedback and accept pull-requests that tackle this problem, but at the moment I do not have the time to look into this myself.

@nonfigment
Copy link

Also I get from your comment that the script is working just fine on your Mac when using Ableton10 ?

Yes, right. Works as intended (device controls working, arming/muting tracks, adding scenes, etc.) with Live 10.1.1 @ BigSur 11.5.2 (tested again at the time of writing this, sorry for the delay), with this settings for control surface in Live:
image
Currently I've switched to Live 11 and Push2 as a main controller, so Beatstep resting most of the time, but all seems to work well for me.

@raphaelquast raphaelquast changed the title problem with MacOS and Ableton 10 problem with MacOS Aug 31, 2021
@raphaelquast
Copy link
Owner Author

raphaelquast commented Aug 31, 2021

@DTRS thanks for the clarification... it adds to the general confusion on what's going on here 😅
(sure the BeatStepQ script is no competition to the Push2... except for the price-tag and the portability)

It seems that there must have been some changes in the way MIDI sysex messages are sent on MacOS in Ableton11 but there is no indication at all what changed and how one should adjust to those changes...
Maybe in a couple of months I'll have more time and I'll give this whole problem another thought... after all the solution is most probably already hidden somewhere in the Push2 MidiRemoteScript... (if only it would be properly documented... 😑 )

@Acidity2012
Copy link

Acidity2012 commented Aug 31, 2021

I also tried again on Big Sur 11.5.2 with Live 10.1.41 with same settings as @DTRS. When using the knobs, scrolling in the slots is sluggish and not usable at all. Also the clip start/recording is not working. I searched the net for solutions, and arrived here : https://www.reddit.com/r/ableton/comments/86zepx/help_using_arturia_beatstep_as_both_surface/

"I found a better solution guys and is to store the Control Surface mapping to a memory slot on beatstep i.e. memory slot 2 so you can recall it anytime you want, i´'ll share the map on a drive link but if you can create mirror or permanent links that will be useful for everyone. https://drive.google.com/open?id=1NzRv9GmtoqMSZfPzViUcYggdjLwPDfZw hope this helps."

So I uploaded via the Arturia Midi Control Center file "ControlSurface.beatstep", saved it to slot 2, and I'm using this with success. All knobs, pads are working fine in control surface mode (beatstep), no hick-ups. :-)

@raphaelquast
Copy link
Owner Author

@Acidity2012 thanks for the comment! (and sorry for the late response)

you mean all functionalities are working if you just save & load the script to slot 2 ?
That's somewhat strange but good news 😄
As I see it this should only work if there's a static MIDI-mapping... but the script actually changes the MIDI assignments several times during runtime, for example:

  • if no layer is active and you turn the "transpose" knob, the assigned MIDI-notes of the buttons are adjusted
  • also whenever a layer is activated / deactivated the assignments change...

can you confirm that switching layers & changing the MIDI notes actually works as expected?

@Troub99
Copy link

Troub99 commented Nov 16, 2021

Hello - I'd love to have this working with my Beatstep and Live 11 (currently OSX 10.13.6), but not working as detailed in this thread.

I think @Acidity2012 is writing about using an alternative control surface mapping, not Beatstep Q, with only a fraction of the functionality. I'm afraid I don't have the skills to help you fix it, but I hope you can find success.

@Helder-boop
Copy link

Hello...I am having the same problem. And I bought a beatstep to use this script!
I am using Live 11.0.2, MacOS 10-15.7 (Catalina).

I am getting the "frozen lights" in the initialization of the beatstep as described at the start of this thread...The script was installed properly, and I can see the red rectangle in Live signaling that I could launch those clips (Beatstep_Q is active, beatstep controller is not runnign it though...).

anyone has fixed this issue yet? What can I do?!
(Unfortunately I am not good with code either...:P)

@raphaelquast
Copy link
Owner Author

Hey, @Helder-boop

I really tried hard to get my head around this problem, but after a lot of try-and-error, I'm again completely lost...
(also I don't own a Mac so I can't reproduce it and I can't test for possible solutions)

The problem I've identified so far is that somehow MIDI messages get lost along the way when the script initializes the controller. How or why this is happening on MacOS (and not on Windows) remains a mystery and I haven't found any clue yet.

Unfortunately solving this will definitely require a bit of python-code... (and maybe even some insights on MacOS MIDI internals or whatever is causing this)
Right now my time is rather limited to actively attempt another solution, but I'd be happy to share my knowledge and
of course I would merge any proposed fix that solves this issue!

@Helder-boop
Copy link

Thank you so much for taking the time to reply raphaelquast.

Yes, it is a bummer, and I am willing to try something, if you want me to, and if you can explain exactly what I should do. I do not have any knowledge of coding unfortunately.

Is this an issue for all macOSs and all Live versions? Is it worth waiting/hoping for the issue to be resolved, or would it be better to just return the controller? It is a shame indeed, I was quite excited about this! I was hoping to use this instead of Push or something like that!

Best.

@raphaelquast
Copy link
Owner Author

@Helder-boop Well without any programming knowledge it would be down to me to fix this and as I said before, without a Mac this is quite impossible since I have no means of reproducing the issue.

I tried it on a quite old MacBook with Ableton 9 and (quite puzzling) the problem did not occur... On a newer one (don't know the explicit OS version) the problem was as described by previous users.

I'm really sorry to disappoint you in that manner, but I doubt that this issue is going to be resolved soon... (except somebody shows up with an idea on what is going on)
(The only thing I haven't tried so far is to contact either Ableton or somebody else that knows more about Midi RemoteScripts on MacOS, but I doubt that Ableton's support will be of much help since RemoteScripts are not officially supported.... )

@Helder-boop
Copy link

Helder-boop commented Nov 28, 2021 via email

@li-il-li
Copy link

Hi I would be happy to help here. I am no magician but I own a Mac, Ableton a Beatstep and I know some python. So have your testscript running and i was wondering if I should run a midi analyzer on a raspberry Pi to analyse the MIDI signal transmitted over USB. What are your thoughts about that approach?
Additionally I was thinking about changing the Backend of Mido.

@raphaelquast
Copy link
Owner Author

raphaelquast commented Feb 24, 2022

@dwi-iwb Hey, awesome, thanks!! I'd love any new insights on this!
Basic python knowledge, a Mac and some motivation is all we need...

Analysing the transmitted MIDI signal sounds like a good approach to get a better idea on what's happening...
(however I have no experience with raspberry Pi's ... but I guess you have 😅 )

  • concerning the Mido-backend... I've used mido only used for analysis purposes... the script ultimately does not use mido ... it uses Ableton's API to send and receive MIDI messages...

I'm happy to help wherever I can to get to the bottom of this!
(I've opened a discussion here to avoid using this issue for general communication)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants