MISUCO (PRO) is a multitouch synthesizer controller with microtonal capabilities. It transmits OSC signals by WLAN which can be used to play and control various types of software synthesizers. OSC can also be translated to MIDI signals on a host computer. MISUCO has also a built in simple synthesizer.
The focus of MISUCO is to use the maximum of the touchscreen area for the musical performance. MISUCO has some microtonal features hardly found on any synthesizer.
In the main screen you can switch between presets. One preset consists of scale and sound setting. MISUCO PRO provides 200 scale- and 200 sound-presets, which can be user-defined and stored in a file.
In this screen you can also switch to microtonal-, edit- and fullscreen mode.
The system info shows how many frames the system was capable to paint in one second. This decreases when the internal synthesizer uses cpu power. If it falls under a certain value (15 fps) the number of voices is decreased, to save cpu power. On this line you see also the frequency of the currently played notes.
If you switch to the microtonal mode, MISUCO creates frequency transition areas between the note areas. There you can explore the microtonal spectrum between the notes. The term of microtonality refers to a finer frequency resolution than 12 semitones in an octave, as it is usual on instruments like pianos and synthesizers.
In edit mode you can switch between different edit screens and edit different parameters.
You can leave edit mode by pressing the edit button again.
Anything you change in edit mode is immediately applied to the preset, but lost, if you quit and restart the app, unless you save.
You can save your changes to the presets and configuration in a file with the save button. If you would like to discard all changes, quit MISUCO from the operating system. On next restart the previously saved settings are loaded. On an iOS device you can transfer the program file to your computer in iTunes.
In the scale edit screen you can construct your desired scales by selecting a base note (1) and some of the 11 overtones (3). You can hear a sound playing while pressing the buttons. So you can quickly adapt to an existing melody by press-and-listen.
There is a link button (2) to the online scales archive of MISUCO. It will open a web browser and direct you to the entry of the currently selected scale in the scales archive. The archive is still in a beginning phase and should soon be more useful, as more people use it and provide comments to the scales.
In this screen you can configure the octave range of the performance area. Also it is possible to divide the performance area into several rows.
internal synthesizer parameterMISUCO has a very simple built in synth. Its purpose is mainly to demonstrate the app when no external software synth is available. We also have decided to not get rid of the dirty sound which occurs while clipping, for now.
The polyphonic synthesizer has 10 voices and consists of one oscillator (square, sawtooth, sine, triangle, noise), one amplifier envelope and one resonating filter. It has the capability to modulate the filter frequency and resonance by using the performance area as Y-Controller.
The synthesizer has 200 memory spaces for sound presets. Through separate sound select switch it is possible to assign the same sound to several scale presets. Also on each sound preset switch there is a program change event transmitted. By default each scale preset has assigned the sound present with the same number.
microtuningHere a microtuning can be applied. The resulting frequencies are transmitted by osc as frequency value itself, midi note & pitch value. So you could even play the microtuning you assign here on a regular midi expander/synthesizer, provided the pitch range of that device is matching.
MISUCO sends OSC/UDP units to the ip address and port that can be configured. The default ip 255.255.255.255 broadcasts to all the available ips in the internet. Usually this address is blocked by the local router and it can be used as general purpose broadcast address. So usually you do not have to change this setting. Except you might want to set the port to 57110 when you work with supercollider (transmitter type 4).
In Reaktor (transmitter type 2) or puredata (transmitter type 4) you can listen to port 3150 which is the default destination port for MISUCO.
Transmitter type 1 is a mix of type 2 and 3 and should be compatible with both. It is mainly intended for the demo version to make configuration easier. It is recommended to rather use type 2 to 4 if you work only with one specific software, because these protocols are optimized and performing slightly better.
The channel is applied on the osc layer as a tool to support multiple controller and synthesizer setup in an environment with software, that should listen to several controllers but has only one ip port available. Namely Reaktor can listen only to one ip port. The setup requires a unique channel number on each controller which has to be set manually. Look at the example files to get a deeper understanding on the details.
The error correction is required in wireless networks, because some osc message get lost. This is bad for “note off” messages because this will lead in never ending “hanging” notes. A very simple solution is to repeat the “note off” message several times. The error correction parameter indicates how many times a “note off” message is sent. If you have hanging notes, increase the parameter. We made good experience on our tests with a value of 4. With a lower value we experienced hanging notes.
Controlling MISUCO by OSC
MISUCO receives OSC messages on port 3333. This is useful to integrate external controllers and sequencing systems. More details are in the implementation chart and puredata examples.
|Path||Command||Parameter||p1 range||p1 function||p2 range||p2 function||p3 range||p3 function|
|/ignore||ignore one ip||1||String||ip to ignore|
|/listen||listen to one ip||1||String||ip to listen to|
|/dest||set destination||3||0…n||sender||String||ip destination||0…65535||destination port|
|/add_sender||add sender||1||0…4||sender type|
|/del_sender||delete sender||1||0…n||index of sender to delete|
|/offrep||note off repeat count||1||0…10||how often are note off repeated|
|/dim||individually dimension rows||1…32||1..32||columns row 1||1…32||columns row 2||…|
|/dxy||dimension x/y grid||2||1…32||number of columns||1…32||number of rows|
|/f||set multiple segment frequencies, sets also midinote and pitch||1…1024||1.0…50175.0||frequency segment 1||1.0…50175.0||frequency segment 2||…|
|/f_s||set single segment frequency||2||0…1023||number of segment||1.0…50175.0||frequency of segment|
|/f_a||set all segments to same frequency||1||1.0…50175.0||frequency|
|/mnote||set multiple frequencies midinote, sets frequency, sets pitch to 0||1…1024||1…151||midinote of segment 1||1…151||midinote of segment 2||…|
|/mnote_s||set single segment midinote||2||0…1023||number of segment||1…151||midinote of segment|
|/mnote_a||set all segments to same midinote||1||1…151|
|/type||set multiple segment types (0: note, 1: transition)||1…1024||0…1||type of segment 1||0…1||type of segment 2||…|
|/type_s||set single segment type||2||0…1023||number of segment||0…1||type of segment|
|/type_0||set all segments to type 0 (1 is not possible, since requires two 0 neighbours)||0|
|/chan||set multiple segment channels||1…1024||0…15||channel of segment 1||0…15||channel of segment 2||…|
|/chan_s||set single segment channel||2||0…1023||number of segment||0…15||channel of segment|
|/chan_a||set all segments to channel||1||0…15||channel|
|/ctlx||set multiple segment x controller||1…1024||0…127||x-controller of segment 1||0…127||x-controller of segment 2||…|
|/ctlx_s||set single segment x controller||2||0…1023||number of segment||0…127||x-controller of segment|
|/cltx_a||set all segments x controller||1||1…127||controller|
|/ctly||set multiple segment y controller||1…1024||0…127||y-controller of segment 1||0…127||y-controller of segment 2||…|
|/ctly_s||set single segment y controller||2||0…1023||number of segment||0…127||y-controller of segment|
|/clty_a||set all segments y controller||1||1…127||controller|
|/txt||set multiple segments text||1…1024||String||text of segment 1||String||text of segment 2||…|
|/txt_s||set single segment text||2||0…1023||number of segment||String||text of segment|
|/clrtxt_s||clear single segment text||1||0…1023||number of segment|
|/clrtxt_a||clear all segments text||0|
|/cent_s||finetune single note||2||0…11||note to finetune||-200.0…200.0||fine tuning value in cent|
|/cent||finetune all notes||12||-200.0…200.0||finetuning note 1||-200.0…200.0||finetuning note 2||…|
|/bscale_s||set note in binary scale||2||0…11||note to set||true|false|
|/bscale||set the whole binary scale||12||true|false||bscale note 1||true|false||bscale note 2||…|
|/basenote||set the basenote of the scale generator||1||0…11|
|/baseoct||set the base octave of the scale generator||1||0…10|
|/topoct||set the top octave of the scale generator||1||0…10|
|/reset||go back to the gui programming mode||0|
|/rows||set number of rows||1||1…10||number of rows|
|/pc||set program||1||0…199||progmem to set|
|/save||writes program memory||0|
|/layout||changes the layout||1||0…5||number of layout, 0 is mainly used as full screen mode|