No announcement yet.

Confused - assigning midi contollers with wiimote & oscultar

  • Filter
  • Time
  • Show
Clear All
new posts

  • Confused - assigning midi contollers with wiimote & oscultar

    I'm using the Nitundo Nunchuck as my controllor - every message under the wii reveives a signal - but no sound. Under the nunchuck - no signal or sound is received. I also Ardour - I thought that I maybe able to use that program to assign these controllors - there no documention that I can find to step up the wilmote with nunchuck to get this to work. Can anyone help?

  • #2
    Hey Gregg,

    I'm sorry but I don't understand what you are trying to do.
    Could you please give a more detailed description?



    • #3
      Midi Contollors using CSound

      I'm using Csound instead of Logic to play sound (s) from a nunchuck - like a instrument.
      In the OScultor under the wii mess (pane) - it shows that it's receiving a signal of sound. Under the nunchuck mess (pane) there is signal. I've tried acouple different things to produce the sound - with no success.

      With additional info can you help?


      • #4
        When you connect a Wiimote, you will receive messages that represent the state of the device, i.e. its orientation, buttons, etc. It does not produce any sound on its own. What you need to do then is to map those messages to events, like MIDI Control Changes (MIDI CC) or MIDI Notes, and configure Csound to listen to those events.

        I don't know Csound enough to guide you through using it with MIDI, but it seems google has results on how to control Csound from MIDI Events.

        Csound also has OSC support, therefore you can use OSC Routing event to send the Wiimote messages to Csound. If you configure Csound to listen for OSC messages on port 9000, then you can use the template called "Wiimote to Max" in the Samples Library folder that comes along with OSCulator. Although this template is made to be used with Max, it is actually usable with any OSC enabled client.



        • #5
          REL: Thanx for the Reply

          I'll give a try - mapping events - I've never done this before - it might challege.

          I get back to you after I give it try to let you know the outcome.


          • #6
            If you can use Csound, I'm sure selecting MIDI CC form the popup menus will be super easy.


            • #7
              MIDI Assign Controllors

              Cam - What's Up? Since our last talk I found something that maybe what I was looking for to help with listening & assigning controllors - as was mentioned before.
              In Quecsound are the examples from the toolbar there was info about midi assigning & other midi - i.e. receiving notes, synth, controllor data. Here a screenshot of what midi assign has - /*Getting started.. Realtime Interaction: MIDI Assign Controllers

              In the example below, instrument 100 (which is "always on") receives the MIDI control data and sends it as global k-variables (gk...). You can choose the MIDI channel number and the controller numbers via the spinboxes in the widget panel. You can even change these numbers during the performance. As they are i-values, the opcodes 'reinit' and 'rireturn' are used to put the changes into force (for another examples, see Examples->Reinit_Example).

              In comparison to the example before, the sliders are not 'invalue'-ed to the instruments, so the only way to control the synth is via MIDI-CC's. The GUI is just for displaying, so 'outvalue' is used to send the CC-values to the Widget GUI.

              All the note-on-/note-off-messages must be sent on MIDI channel 1 (or you have to change the massign statement in the orchestra header). The statement massign 1, 101 sends all these messages to instrument 101. Each note here is added to the global audio variable -gaOut-.

              Instrument 102 adds the global feedback delay and the reverb, and finally zeros the -gaOut- variable for the next k-cycle.

              --midi-key-cps=4 --midi-velocity=5

              sr = 44100
              ksmps = 128
              nchnls = 2
              0dbfs = 1

              gaOut init 0.0
              massign 1, 101 ; assign all incoming midi from midi-chn 1 (= keyboard) to instr 101 (Sawthooth Oscillator)

              ; Get information for MIDI Channel and Controller Numbers from the Widget Panel
              kMidiChn_slider invalue "#midichn_slider" ; receive midi channel for the sliders
              kCtrlNo_filt_freq invalue "ctrl#filt_freq" ; receive controller number for filter frequency
              kCtrlNo_DelTime invalue "ctrl#_time_delay" ; receive controller number for delay time
              kCtrlNo_Feedback invalue "ctrl#_feedb_delay" ; receive controller number for delay time
              kCtrlNo_d_w_delay invalue "ctrl#_d_w_delay" ; receive controller number for delay wet-dry-mix
              kCtrlNo_d_w_reverb invalue "ctrl#_d_w_reverb" ; receive controller number for reverb wet-dry-mix
              ; Receive Values from the MIDI Sliders as global k-Variables
              midivalues: ;begin of a possible reinit section
              gkFilterCC1 ctrl7 i(kMidiChn_slider), i(kCtrlNo_filt_freq), 10, 5000 ; read 7-bit MIDI CC data and map to a range between 10-5000
              gkDelTime ctrl7 i(kMidiChn_slider), i(kCtrlNo_DelTime), 0.05, 1
              gkFeedback ctrl7 i(kMidiChn_slider), i(kCtrlNo_Feedback), 0.05, 1
              gkDryWetDelay ctrl7 i(kMidiChn_slider), i(kCtrlNo_d_w_delay), 0, 1
              gkDryWetReverb ctrl7 i(kMidiChn_slider), i(kCtrlNo_d_w_reverb), 0, 1
              rireturn; end of a possible reinit section

              ; Reinit the label "midivalues" only, when a MIDI Channel or any of the CC Number assignments have changed
              kchanged changed kMidiChn_slider, kCtrlNo_filt_freq, kCtrlNo_DelTime, kCtrlNo_Feedback, kCtrlNo_d_w_delay, kCtrlNo_d_w_reverb
              if kchanged == 1 then
              reinit midivalues
              ; Send the MIDI-Values to the Widget Panel
              outvalue "filter_freq", gkFilterCC1
              outvalue "feedb_delay", gkFeedback
              outvalue "d_w_delay", gkDryWetDelay
              outvalue "time_delay", gkDelTime
              outvalue "d_w_reverb", gkDryWetReverb

              instr 101 ; Sawthooth Oscillator triggered with notes on MIDI CH: 1
              icps = p4
              iamp = p5/127
              kFfreq port gkFilterCC1, 0.05
              aSrc oscili iamp, icps, 1
              aFiltered moogvcf aSrc, kFfreq, 0.1
              aEnv madsr 0.01, 0.1, 0.9, 0.01
              gaOut = gaOut + aFiltered*aEnv

              instr 102; Global Feedback Delay and Reverb
              ; DELAY Section
              kDelTime port gkDelTime, 0.05
              aDelTime = a(kDelTime)
              aDelay delayr 1
              aWet deltapi aDelTime
              delayw gaOut+(aWet*gkFeedback)
              gaOut = (1-gkDryWetDelay) * gaOut + (gkDryWetDelay * aWet)

              ; REVERB Section
              kroomsize init 0.4
              khfdamp init 0.8
              aWetL, aWetR freeverb gaOut, gaOut, kroomsize, khfdamp
              aOutL = (1-gkDryWetReverb) * gaOut + (gkDryWetReverb * aWetL)
              aOutR = (1-gkDryWetReverb) * gaOut + (gkDryWetReverb * aWetR)
              outs aOutL, aOutR
              gaOut = 0.0

              f 1 0 256 7 0 128 1 0 -1 128 0
              i 100 0 3600 ; the MIDI CCs will be received for one hour
              i 102 0 3600 ; feedback-delay and reverb run for one hour
              ; written by Joachim Heintz & Alex Hofmann (Dec. 2009) - Incontri HMT-Hannover

              From you see here is this what make the osc & csound talk to each other to play sounds? If, possible - from reading this - could you give the steps to correctly assign the controllors - I'm not really tech savvy as you probably guested. Thanx - Gregg