• kosuke16

    You are right. I did the scaling by mesuring with a tuner and substracting the correct value to the final float. But anyway, the easiest way is to tune the synths everytime I would need to use them in a chromatic world, which is not always the case. I know it isn't an easy/quick approach of the issue, but at the same time, the patch is just for me, so I don't really care. And it is way easier to just turn a physical frequency knob to offset the synth than to calculate everything for every synth at only one frequency knob position and be stuck with that mighty and important knob in only one position.

    TBH, so far the basic use I imagined for the patch isn't very interesting but it makes some very nice noises and textures where pitch accuracy isn't that important.

    posted in technical issues read more
  • kosuke16

    Thank you for your reply. It is in fact a log 2 that should be inserted before the scaling. I was pointed to that function on a dev forum mentionning its existence in C# and thought I would try it in PD. Here is the correct patch for what I am trying to achieve. I use 0.203 as it is the float I need to get one octave higher and it is the same between the different octaves so this works.

    Hertz to volts.pd

    posted in technical issues read more
  • kosuke16

    Hello,

    I am trying to find a way to convert frequency into a linear scale going from -5 to +5 in float. The goal is to generate a frequency in hertz and onvert it to a float to get a control voltage. I tried entering the frequency value to pow, scale or exp with no success. Is there an object for that ? Or a mathemagic expression ? I never did any log/exp math, so I have no idea how to do it.

    Thank you.

    posted in technical issues read more
  • kosuke16

    Whale is right, my bad. I tried it only with the numbers, no audio so while the numbers where good, the timing wasn’t. Note message not being continuous, you have to repack it so it is send at the same time than the velocity to make a coherent list of two values for noteout.

    posted in technical issues read more
  • kosuke16

    It is doing exactly that, or there is something I do not understand in what you are trying to achieve.

    posted in technical issues read more
  • kosuke16

    Maybe this does what you want ?

    Key switch.pd

    1 - Moses splits the notes at the value defined by the slider to send only the note values of your right hand to the noteout object.

    2 - I pack three floats : note number, split point, all incoming velocity value.

    3 - The expression looks if the note value ($f1) is above or below the split point ($f2) : if above (right hand notes pressed), it outputs a zero, if below (left hand) it outputs the notein velocity ($f3).

    4 - So you get : right hand : note values, left hand : velocity values.

    posted in technical issues read more
  • kosuke16

    @seb-harmonik.ar Following your reply, I read a lua tutorial today. It seems very interesting and in a way more direct than PD itself. But I have much to learn about the existing libraries already, objects and logical thought process before going into text programming. And I also have to make music sometimes. I rediscovered my old synth with the midi/CV patch I made.

    My next project is a simple sequencer based on EDO scales, I think it will bring me further into the arrays / mathematical side of PD. Lots of head scratching to be had. Then I have to learn to put everything into subpatches to build my midi/CV interface according to my needs. Then I have to tweak it and make a version for each of my other synths because tuning, gate voltage etc…

    The rabbit hole is deep enough to delay the learning lua a bit for now.

    posted in technical issues read more
  • kosuke16

    @seb-harmonik.ar Thank you ! The mono object in else library does exactly that indeed. The only downside (if one can call it a downside) is that it is working so well by itself that I didn't have to learn anything or scratch my head gazing at the voïd of my logical sense to implement it. It seems to be a fantastic library though.

    posted in technical issues read more
  • kosuke16

    Hello,

    I would like to be able to do trills on my midi keyboard like I do on an analog synth : keeping one key pressed down while only pushing the second one. Since it is an analogsynth, the ouput voltage changes when I release the trilling key, but a midi note beeing a one shot message, I can't achieve the same result. I tried to find another midi controller that would send continuous messages as long as a key is depressed but couldn't find one. Aftertouch would be good for that I suppose, but it needs some pressure not compatible with natural playing. Anyway, I tried to alternatively write on the two indexes of an array with the hope that I could somehow get the tabread object to go back to the previous note, but since there is no way of checking if a continuous message is sent, there is no way to tell PD to stop writing at say index 0 because that note is held, just write index 1 and alternate reading from 0 to 1 if that makes sense.

    I tried to analyse the miniwoog patch to see if I could find a solution in there somewhere as it seems to support all kind of note priority and legato mode but couldn't find anything that I would understand.

    Here is the patch :
    Key input.pd

    Thank you for any help.

    posted in technical issues read more
  • kosuke16

    @alexandros Hello ! I have already found and read you tutorial. IThank you for doing that, it helped me understand some stuff.

    posted in technical issues read more
  • kosuke16

    Yes there is a split~ object but it is more about cutting a message with several values in it.

    I can manage the selection of upper/lower parts of a waveform with <~ or >~ outputting 1 and 0 as gates. It works fine amplifying them separately, but it creates an abrupt breakpoint where the two offsetted parts meet in time. I also managed to get a kind of sine-ish waveform by adding a slew in the square LFO. It is wonky, but I like the sonic result. I also thought about offsetting the CV pitch itself to account for the range threshold. The fact is, the extremes of the full LFO modulation are not so tonal anymore so the accuracy of the main pitch isn't as important as the LFO range at that point if that makes sense.

    I also have to try the LFO mixing as you suggested, it should be fun.

    Here is the patch so far.

    MidiCV OK v2.pd

    posted in technical issues read more
  • kosuke16

    Thank you ! I managed to do what I wanted with the square oscillator. It was quite easy though because the positive and negative amplification of the wave were obvious. The other ones are quite close of those in the tutorial I found, so I will have to investigate more, it can't be that complicated. Anyway, here is the patch.

    LFO square.pd

    Now I have to wrap my head around the triangle one.

    About data/signal rate objects, my first attempt was with osc~, but regarding my issue with waveforme values control, vline~ was the only solution I could come up with. I like the easy flexibility of vline~ as a function generator though. In the variable LFO patch, playing with the base rate multiplicators for example gives cool results coupled with curve adjustments. It is also cool to disconnect some vline~and not others. I will keep it for that. But for basic playability a mathematical oscillator is better for sure.

    posted in technical issues read more
  • kosuke16

    Hello,

    In the context of a MIDI to CV converter, I am trying to limit independantly the lower and upper points of a waveform. The reason for that is that when I play high pitches, the LFO added to the keyboard pitch makes the final value go over 1, creating a kind of high pitched plateau that I would like to avoid. On the other hand, I would like to allow the lower part of the LFO wave to continue its course, so the waveform would be asymetrical in a way, for example going from -1 to +0.2. I achieved this with different vline~ objects, by setting two $ for posMax and negMax and it works fine. Here is the patch.

    Variable LFO.pd

    Now my issue with hat solution is that it doesn't play smoothly when adjusting the LFO rate, I suppose due to the fact that the different vline~ have to update while playing and they don't like it. Anyway, I am back to square one because playability and modulation possibility for the LFO speed is a must.

    My math knowledge is not enough to figure out what kind of equation I should write to mathematically create the waveforms. Or maybe there is another way ? I went through the oscillators creation tutorial by Alexandro Drymonitis but couldn't find a way to adapt his patches so I could control the positive and negative parts of the waveforme independantly.

    If anyone could put me in the right direction, it would be great.

    Thank you.

    posted in technical issues read more
  • kosuke16

    I managed to do it by simply sending a number in the dac~ object.

    If it can help anyone :

    Notein
    expr (($f1-36)*0.01675)-0.201)
    dac~

    In the expression :

    $f1 is the midi note number
    0.01675 is the value for a semitone step. This is an approximation due to the fact that when I measured the voltage a the output of my soundcard, it wasn't consistent octave to octave, so I settled for this for now. I have yet to measure the deviation with a tuner.
    -201 is a kind of octave switch. 0.201 is the value for an octave that I settled for that was giving me a steady division for a semitone step. If I substract it at the end of the expression, it allows for a lower octave range by offsetting the value. Example : do not put it in the expression, you get the straight value. -0.201 gives you an octave lower than the setting on your synth (16' becomes 32'). -0.402 outputs two octaves lower than the setting on your synth. Adding 0.201 gets you in the other way.

    posted in I/O hardware diyread more
  • kosuke16

    Hello,

    I am new to PD and would like to program a midi to cv converter. I understood and got some interesting results with the basic functions but there is one simple thing that puzzles me : how to get a static voltage out for basic pitch control ? Is there a special object other than dac to output control voltages from enveloppes or other linear sources ? Is there a special type of carrier object that will convey the voltage without involving some oscillation ?

    Thank you.

    posted in I/O hardware diyread more
Internal error.

Oops! Looks like something went wrong!