JUNO-106を再現したシンセサイザーとして2015年にJU-06が本家Rolandからリリースされました*1。物理的に稼働可能な個体が減っていたり、それ故に高額で入手困難な過去の機材が再びリーズナブルな価格で再発売されるのはファンとしては嬉しいものです。私もJUNO-106の実機を持っていたので、JU-06を入手しました。
実機が有りながら何故JU-06買うの?と思う方もいるかも知れませんが、15年以上前にジャンクで買ったJUNO-106は見事に音が出なかったのです!当時から有名な話ですが、既に製造されていないカスタムチップが壊れているので、修理不可能なのです*2。というわけで、実機を触ったことはありながらも出音はよく知らないという状況を解消すべくJU-06を入手したのでした。
雑感
- ずらっと並んだスライダーを手で動かして音作り可能で、ハードウェアならではの良好な操作感で率直に楽しい!
- マニュアルが不親切
というわけで、不親切なマニュアルの情報を補完すべく、自力で調べたJU-06の制御用情報等を以下に掲載します。
JU-06 Control change values
CC# | Description | Value |
---|---|---|
1 | MODULATION | 0-127 |
3 | LFO RATE | 0-127 |
5 | PORTAMENTO TIME | 0-127 |
9 | LFO DELAY TIME | 0-127 |
11 | EXPRESSION PEDAL | |
12 | DCO RANGE | 0:RANGE16, 1:RANGE8, 2:RANGE4 |
13 | DCO LFO DEPTH | 0-127 |
14 | DCO PWM LEVEL | 0-1270:DutyRatio=48:52, 64:DutyRatio=72:28, 127:DutyRatio=89:11 (approx.)(not affect to sub osc) |
15 | DCO PWM SOURCE | 0:MAN, 1:LFO |
16 | DCO PWM SW | 0:OFF, 1:ONDisable/Enable Pulse osc |
17 | DCO SAW SW | 0:OFF 1:ONDisable/Enable Saw osc |
18 | DCO SUB LEVEL | 0-127 |
19 | DCO NOISE LEVEL | 0-127 |
20 | HPF CUTOFF | 0-127 |
21 | VCF ENV POLARITY | 0:Negative, 1:Positive |
22 | VCF ENV DEPTH | 0-127 |
23 | VCF LFO DEPTH | 0-127 |
24 | VCF KEY FOLLOW | 0-127 |
25 | VCA ENV SW | 0:GATE, 1:EG |
26 | VCA LEVEL | 0-127 |
27 | ENV SUSTAIN | 0-127 |
64 | HOLD | |
65 | PORTAMENTO | 0:OFF, 127:ON |
71 | VCF RESONANCE | 0-127 |
72 | ENV RELEASE | 0-127 |
73 | ENV ATTACK | 0-127 |
74 | VCF CUTOFF | 0-127 |
75 | ENV DECAY | 0-127 |
82 | DELAY TIME | 0-15 (0:OFF, Greater value makes longer delay) |
83 | DELAY FEEDBACK | 0-15 (0:OFF, Greater value makes strong feedback) |
86 | ASSIGN MODE | 1:Poly, 2:Solo, 3:Unison |
87 | BEND RANGE | 0-12,24 (unit:semitone) |
91 | DELAY LEVEL | 0-15 (0:OFF, Greater value makes loud delay) |
93 | CHORUS SW | 0:OFF, 1:CHORUS1, 2:CHORUS2, 3:CHORUS1+CHORUS2 |
・CC#16は"DCO PWM SW"と書かれているがマニュアルの誤記で実際は”DCO PULSE SW”的な意味。パルス幅変調のON/OFFを切り替えるものではない。
・当然ながらCC#16とCC#17が両方OFFでCC#18とCC#19も0ならCC#26に関わらず出力音は生成されない
・逆にCC#16とCC#17の一つ以上がONか、CC#18とCC#19も以外なら、CC#26が0でも出力音が生成される
JU-06 Backup file format
マニュアルには一切説明がありませんが、実体は以下のようなテキストファイルとなっています。
- BQ_PTN*.PRM
- 内蔵ステップシーケンサのバックアップで実体はテキストファイル⇒16STEPのSwitch、Note、Velocity、Gatetimeなどが定義されている。
- JU06_PATCH*.PRM
- 各パッチのバックアップで実体はテキストファイル⇒フロントパネル上のスライダーに対応したパラメータ(CCで0-127を取るパラメータ)は0-255の値で記録されている。奇数値も記録されていることからCC相当の7bit値を単に2倍したのではなく、純粋に1bit多い8bit分解能のパラメータデータが保持されている*4。スイッチ系のパラメータは恐らくCC値と同じ。
何れも改行コードはCRLFで最終行には改行コードが付きません。ファイルを直接編集することでパターン名やパッチ名も記録可能ですが、マルチバイト文字が使用されることを想定していないと思われますのでalphanumericな文字のみにするのが無難でしょう(BOMもありません)。
JUNO-106実機と同一の音がするか
何を以て同一と定義するかに依りますが、よく似た雰囲気の音が出ることは間違いありません。実際に、JUNO-106実機のプリセット音色と同じ名称のプリセット音色がJU-06には多数存在します。ですが、以下のような意味では、明確に異なります。
- JUNO-106実機の取説にはプリセット音色のスライダーやスイッチの位置が図示されていますが、JU-06に存在する同名のプリセット音色の各パラメータの値はJUNO-106の取説に記載された状態とは大きく異なるものが多数あります。つまり、同様の音を生成するためにはJUNO-106とJU-06では異なるスライダー位置に設定する必要があるということになります。JUNO-106実機のスライダーはBカーブの可変抵抗のため、リニアに抵抗値が変化します。JU-06もスライダーの位置によってMIDI CC出力がリニアに値が変化することが確認できますので、完全に実機を再現しているのならスライダーの位置が同じ場合に同じ音になるはずですが、そうではありません。
- JU-06はデジタル機器なので無音時にノイズが全くありません(BBD素子をシミュレーションしたコーラスエフェクトのノイズをOFFにした場合)。USB Audio機能を使って録音すると分かりますが、無音時は本当にデジタルデータとして0が出力されており、これは嬉しくもあるのですが綺麗すぎるために違和感も感じます。
(補足)Linuxでの見え方
$ uname -srvp Linux 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 $ dmesg [********] usb 1-2: new high-speed USB device number 5 using xhci_hcd [********] usb 1-2: New USB device found, idVendor=0582, idProduct=01b5, bcdDevice= 1.00 [********] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [********] usb 1-2: Product: Boutiq [********] usb 1-2: Manufacturer: Roland [********] usb 1-2: SerialNumber: BQJU************************ [********] mc: Linux media interface: v0.10 [********] usbcore: registered new interface driver snd-usb-audio [********] usb 1-2: Unable to change format on ep #8e: already in use [********] usb 1-2: Unable to change format on ep #8e: already in use [********] usb 1-2: Unable to change format on ep #8e: already in use ...以下、Unable to change format on ep #8e: already in useが数十行繰り返し $ lsusb Bus 001 Device 005: ID 0582:01b5 Roland Corp. Boutiq $ lsusb -vd 0582: Bus 001 Device 005: ID 0582:01b5 Roland Corp. Boutiq Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 255 bMaxPacketSize0 64 idVendor 0x0582 Roland Corp. idProduct 0x01b5 bcdDevice 1.00 iManufacturer 1 iProduct 2 iSerial 3 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0102 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 2 iInterface 0 ** UNRECOGNIZED: 06 24 f1 01 00 00 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 2 iInterface 0 ** UNRECOGNIZED: 07 24 01 01 00 01 00 ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x0d EP 13 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0038 1x 56 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 2 iInterface 0 ** UNRECOGNIZED: 07 24 01 01 00 01 00 ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x0d EP 13 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0038 1x 56 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 1 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 1 iInterface 0 ** UNRECOGNIZED: 07 24 01 07 00 01 00 ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8e EP 14 IN bmAttributes 37 Transfer Type Isochronous Synch Type Asynchronous Usage Type Implicit feedback Data wMaxPacketSize 0x0038 1x 56 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 2 bInterfaceProtocol 1 iInterface 0 ** UNRECOGNIZED: 07 24 01 07 00 01 00 ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8e EP 14 IN bmAttributes 37 Transfer Type Isochronous Synch Type Asynchronous Usage Type Implicit feedback Data wMaxPacketSize 0x0038 1x 56 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 3 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 06 24 f1 02 01 01 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 3 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 4 $ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: Boutiq [Boutiq], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 $ aplay -L sysdefault:CARD=Boutiq Boutiq, USB Audio Default Audio Device front:CARD=Boutiq,DEV=0 Boutiq, USB Audio Front speakers surround21:CARD=Boutiq,DEV=0 Boutiq, USB Audio 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=Boutiq,DEV=0 Boutiq, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=Boutiq,DEV=0 Boutiq, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Boutiq,DEV=0 Boutiq, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Boutiq,DEV=0 Boutiq, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Boutiq,DEV=0 Boutiq, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=Boutiq,DEV=0 Boutiq, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct sample mixing device dsnoop:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct sample snooping device hw:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct hardware device without any conversions plughw:CARD=Boutiq,DEV=0 Boutiq, USB Audio Hardware device with all software conversions usbstream:CARD=Boutiq Boutiq USB Stream Output $ cat /proc/asound/Boutiq/stream0 Roland Boutiq at usb-0000:00:14.0-2, high speed : USB Audio Playback: Status: Stop Interface 1 Altset 1 Format: S32_LE Channels: 2 Endpoint: 13 OUT (ASYNC) Rates: 44100 Data packet interval: 125 us Bits: 24 Interface 1 Altset 2 Format: S32_LE Channels: 2 Endpoint: 13 OUT (ASYNC) Rates: 44100 Data packet interval: 125 us Bits: 24 Capture: Status: Stop Interface 2 Altset 1 Format: S32_LE Channels: 2 Endpoint: 14 IN (ASYNC) Rates: 44100 Data packet interval: 125 us Bits: 24 Interface 2 Altset 2 Format: S32_LE Channels: 2 Endpoint: 14 IN (ASYNC) Rates: 44100 Data packet interval: 125 us Bits: 24 $ arecord -l **** List of CAPTURE Hardware Devices **** card 1: Boutiq [Boutiq], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 $ arecord -L sysdefault:CARD=Boutiq Boutiq, USB Audio Default Audio Device front:CARD=Boutiq,DEV=0 Boutiq, USB Audio Front speakers surround21:CARD=Boutiq,DEV=0 Boutiq, USB Audio 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=Boutiq,DEV=0 Boutiq, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=Boutiq,DEV=0 Boutiq, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Boutiq,DEV=0 Boutiq, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Boutiq,DEV=0 Boutiq, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Boutiq,DEV=0 Boutiq, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=Boutiq,DEV=0 Boutiq, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct sample mixing device dsnoop:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct sample snooping device hw:CARD=Boutiq,DEV=0 Boutiq, USB Audio Direct hardware device without any conversions plughw:CARD=Boutiq,DEV=0 Boutiq, USB Audio Hardware device with all software conversions usbstream:CARD=Boutiq Boutiq USB Stream Output $ amidi -l Dir Device Name IO hw:1,0,0 Boutiq MIDI 1 $ aconnect -l client 0: 'System' [type=kernel] 0 'Timer ' 1 'Announce ' client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'Boutiq' [type=kernel,card=1] 0 'Boutiq MIDI 1 '
dmesgを確認していなければ、一見するとAUDIO/MIDI共に普通に動作しそうな雰囲気ですが、残念ながらUSB-AUDIOは機能しません。
- aplayでBoutiqを指定すると"audio open error: Device or resource busy"で再生できない。
- arecordでBoutiqを指定すると"Unable to install hw params"で録音できない。
過去にALSAにJP-08用のパッチが当たっていた時期があるようですが、今は削除されているようです。当該パッチのPIDをJU-06の0x01B5にして適用すればUSB-AUDIOも動かせるのかもしれません*5。
USB-MIDIについてはRaw MIDI、ALSA Sequencer共に正常に機能します。
なお、これらの挙動はJU-06 FirmwareがJU-06 Ver.1.21(投稿時点で最新)で確認したものです。
以上。
*1:JU-06と共に、JUPITER-8を再現したJP-08、JX-3Pを再現したJX-03の合計3モデルがリリースされましたが、いずれも数量限定で生産され既に終売しています。後にD-50を再現したD-05が発売されたり、今月(2021/12)にはJD-800を再現したJD-08がリリースされたりと、Roland Boutiqueシリーズはアナログシンセサイザーをモデリングした製品に限らずラインアップを拡充し続けています。
*2:互換チップが海外で小数生産されたような話も聞きますが、安価に入手できるものではないので…自分で交換しようとして破壊してしまう可能性なども考慮すると躊躇します。
*3:Linux 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64
*4:スライダ(可変抵抗)の出力電圧をA/D変換した時点から内部処理まで8bit値として扱い、MIDI出力する際に最下位1bitを切り捨ててると考えるのが自然でしょう。
*5:未確認。そもそもJP-08用のパッチが削除された経緯を追っていないので、何か問題があるのかもしれません。