Skip to content

Commit

Permalink
Adding alpha version of Roland TD-07 adaptation
Browse files Browse the repository at this point in the history
  • Loading branch information
christofmuc committed Jan 19, 2025
1 parent b057b4a commit c48d8c2
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ Questions and help with implementing new synths wanted! Or if you have found a b
| Korg | DW-8000/EX-8000 | works | adaptation | |
| Korg | Minilogue XD | works | adaptation | Thanks to @andy2no|
| Korg | MS2000/microKORG | works | adaptation | Thanks to @windo|
| Line 6 | POD Series | works | adaptation | Thanks to @milnak! |
| Novation | AStation/KStation | beta | adaptation | Thanks to @thechildofroth |
| Novation | Summit/Peak | alpha | adaptation | |
| Novation | UltraNova | works | adaptation | Thanks to @nezetic |
Expand All @@ -61,6 +62,7 @@ Questions and help with implementing new synths wanted! Or if you have found a b
| Roland | MKS-50 | alpha | native | |
| Roland | MKS-70 (Vecoven) | beta | adaptation | Thanks to @markusschloesser!|
| Roland | MKS-80 | works | native | |
| Roland | V-Drums TD-07 | alpha | adaptation | |
| Roland | XV-3080/5080/5050 | works | adaptation | |
| Sequential| Pro 3 | works | adaptation | |
| Sequential | Prophet 5 Rev 4 | works | adaptation | |
Expand Down Expand Up @@ -107,6 +109,10 @@ You can always use the source to build it yourself, please read on for more inst

This software is build and run on Windows 10, macOS 10.15, and several Linux distributions. Note that this is not a commercial project, and as I am using Windows mostly expect some hiccups. But I will get back to you if you report a bug and try to resolve it!

## In the press

@mslinn has written a nice intro with some instructions over at the blog, hop over and have a look: https://mslinn.com/av_studio/720-knobkraft.html.

# Building your own adaptation for a synthesizer

It is possible to create an adaptation for a new synthesizer that is not yet on the supported device list. For that, you'll select an existing adaptation that might be close to what you need (e.g. same manufacturer, same device family), and use a text editor to adapt the Python code controlling how to generate the device specific messages required and what to do with the answers from the synth.
Expand Down
2 changes: 1 addition & 1 deletion adaptations/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ set(adaptation_files
"OberheimOB8.py" "OberheimOBX.py" "OberheimOBXa.py" "OberheimOBX8.py"
"PioneerToraiz-AS1.py"
"QuasimidiCyber6.py"
"Roland JX-8P.py" "Roland_JV80.py" "Roland_JV1080.py" "Roland_XV3080.py" "RolandD50.py" "Roland_MKS70V4.py"
"Roland JX-8P.py" "Roland_JV80.py" "Roland_JV1080.py" "Roland_XV3080.py" "RolandD50.py" "Roland_MKS70V4.py" "Roland_TD-07.py"
"Sequential Pro 3.py" "Sequential Prophet 5 Rev4.py" "Sequential Prophet 6.py" "Sequential Prophet X.py" "Sequential_Take_5.py"
"Studiologic Sledge.py"
"Waldorf Blofeld.py" "Waldorf_Kyra.py" "Waldorf_MicroWave.py"
Expand Down
46 changes: 46 additions & 0 deletions adaptations/Roland_TD-07.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# Copyright (c) 2024 Christof Ruch. All rights reserved.
#
# Dual licensed: Distributed under Affero GPL license by default, an MIT license is available for purchase
#
import sys

from roland import DataBlock, RolandData, GenericRoland

this_module = sys.modules[__name__]

# TD-07 V-Drum
_td07_patch_data = [DataBlock((0x00, 0x00, 0x00, 0x00), 0x1b, "Kit common"),
DataBlock((0x00, 0x00, 0x01, 0x00), 0x4c, "Kit MIDI"),
DataBlock((0x00, 0x00, 0x10, 0x00), (0x01, 0x06), "Kit MFX")] + \
[DataBlock((0x00, 0x00, 0x20 + i, 0x00), 0x19, f"Kit Unit Common {i}") for i in range(15)] + \
[DataBlock((0x00, 0x00, 0x40 + i, 0x00), 0x10, f"Kit Unit Layer {i}") for i in range(15)] + \
[DataBlock((0x00, 0x00, 0x60 + i, 0x00), 0x21, f"Kit Unit VEdit {i}") for i in range(15)] + \
[DataBlock((0x01, 0x10, 0x00, 0x00), 0x11, "Kit MCR Room"),
DataBlock((0x01, 0x20, 0x00, 0x00), 0x07, "Kit MCR Overhead")]
_td07_edit_buffer = RolandData("TD-07 fake edit buffer at program place #50"
, num_items=50
, num_address_bytes=4
, num_size_bytes=4
, base_address=(0x03, 0x00, 0x00, 0x00)
, blocks=_td07_patch_data)
_td07_kit_addresses = RolandData("TD-07 stored kit"
, num_items=0x50
, num_address_bytes=4
, num_size_bytes=4
, base_address=(0x03, 0x00, 0x00, 0x00)
, blocks=_td07_patch_data)
_td07_setup_message = RolandData("TD-07 setup", 1, 4, 4, (0x01, 0x00, 0x00, 0x00),
[DataBlock((0x00, 0x00, 0x00, 0x00), 0x07, "Metronome"),
DataBlock((0x00, 0x00, 0x01, 0x00), 0x04, "SetupMisc")])

# Useful link: https://github.com/jskeet/DemoCode/blob/main/Drums/VDrumExplorer.Model/SchemaResources/TD07/TD07.json
td_07 = GenericRoland("Roland TD-07",
model_id=[0x75],
device_family=[0x75, 0x03],
address_size=4,
edit_buffer=_td07_edit_buffer,
program_dump=_td07_kit_addresses,
device_detect_message=_td07_setup_message)

td_07.install(this_module)

0 comments on commit c48d8c2

Please sign in to comment.